Послать Значение В Порт Lpt

Тема в разделе "C/C++/C#", создана пользователем sland, 30 дек 2013.

  1. sland

    sland New Member

    Регистрация:
    30 дек 2013
    Сообщения:
    1
    Симпатии:
    0
    Здравствуйте!
    Мне нужно в среде CodeBlocks послать значение в порт LPT. Можно и на Си (но в этой среде), но лучше - ассемблерной вставкой. Похоже, что ассемблерная вставка там поодерживается из отдельных файлов. Мне тут не принципиально - пусть так. Задача чисто учебная - написание кода на ассемблере и на Си, отправка значения в порт (для управления внешними устройствами).
    Нашел много литературы с радиолюбительских сайтов, где описывается как послать число в порт LPT. Получается, что самое сложное у них - это перевести число между системами счисления и собрать схему. А у меня не получается другое - именно послать в порт значение, хотя бы любое. То синтаксис ассемблера не тот (но мне не важно - AT&T или Intel, т.к. программка всего из 7 строчек), то команда Си не такая.

    Помогите, пожалуйста, реальным примером для написания кода на Си или вставкой кода ассемблера в Си.

    Ну вот пример.
    На Ассемблере:
    push dx
    push ax
    mov dx, 0x0378h
    mov al, data
    out dx, al
    pop ax
    pop dx



    Или на Си:
    include <stdio.h>
    #include <stdlib.h>
    #include <unistd.h>
    #include <sys/io.h>
    #define BASE 0x378
    #define TIME 100000
    int main ()
    {
    int x = 0x0F;
    int y = 0x00;
    if (ioperm (BASE, 1, 1))
    {
    perror ("ioperm()");
    exit (77);
    }
    outb (x, BASE);
    return 0;
    }

    Заранее спасибо.
     
Загрузка...

Поделиться этой страницей