Главная страница
Навигация по странице:

  • ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)

  • Цель работы

  • Выполнение работы Работа с принтером через прерывание 17H

  • Работа с принтером через прерывание 21H

  • Работа с выводом данных в порт LPT Для вывода данных в порт используется команда out dx , ax

  • Отчет Лабораторная 4. Лабораторная работа 4 Адаптер параллельного интерфейса Centronics


    Скачать 48 Kb.
    НазваниеЛабораторная работа 4 Адаптер параллельного интерфейса Centronics
    Дата23.10.2022
    Размер48 Kb.
    Формат файлаdoc
    Имя файлаОтчет Лабораторная 4.doc
    ТипЛабораторная работа
    #749415


    Министерство образования и науки Российской Федерации

    ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

    СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)

    Кафедра промышленной электроники (ПрЭ)

    Лабораторная работа № 4 «Адаптер параллельного интерфейса Centronics»

    по дисциплине

    Эксплуатация и развитие компьютерных сетей и систем.


    Выполнил:

    Студент ФДО
    Специальность: 210106
    « » 2014г.
    Проверил:


    2014
    Цель работы:

    Изучение и реализация принципов работы LPT-порта. Необходимо:

    1.Изучить структуру и принцип работы адаптера.

    2.Разработать программы, демонстрирующие взаимодействие с адаптером на уровнях:

    - прерывание DOS (INT 21h Fn05h);

    - прерывание BIOS (INT 17h);

    - портов ввода-вывода (адреса портов 378h, 278h и 3BCh).
    Выполнение работы

    Работа с принтером через прерывание 17H

    Рассмотрим принцип работы с принтером через прерывание 17Н. Для вывода символа на печать нам потребуется:

    Попробуем напечатать слово «Мама» с заглавной буквы.

    Для этого надо напечатать символы с кодами: 204, 224, 236, 224.

    Листинг 1 – Печать слова «Мама» с помощью прерывания 17H
    Program PRINTER17H;
    Begin

    writeln('Печать…');

    asm {начало ассемблерного блока}

    mov ah,01 {запроc инициализации принтера}

    mov dx,00h {выбор порта LPT1}

    int 17h {вызываем прерывание}
    mov ah,00h {запрос на вывод символа}

    mov al,204 {выведем символ «М»}

    mov dx,00h {на принтер номер 0 (через LPT1)}

    int 17h
    mov ah,00h {запрос на вывод символа}

    mov al,224 {выведем символ «а»}

    mov dx,00h {на принтер номер 0 (через LPT1)}

    int 17h

    mov ah,00h {запрос на вывод символа}

    mov al,236 {выведем символ «м»}

    mov dx,00h {на принтер номер 0 (через LPT1)}

    int 17h

    mov ah,00h {запрос на вывод символа}

    mov al,224 {выведем символ «а»}

    mov dx,00h {на принтер номер 0 (через LPT1)}

    int 17h
    end; {конец ассемблерного кода}

    end. {конец программы}

    Работа с принтером через прерывание 21H
    Для работы с принтером через прерывание 21Н нам потребуется:

    • Отправить запрос на вывод;

    • Выбрать номер принтера;

    • Выбрать строку для печати;

    • Указать число символов в строке для вывода.

    Попробуем так же напечатать слово Мама. Только теперь слово можно задать целиком и вывести сразу всю строку.
    Листинг 2 - Печать слова «Мама» с помощью прерывания 21H
    Program PRINTER21H;

    VAR print:String; {Строка которую будем печатать}

    Begin

    print:= 'Мама';

    asm

    mov ah,40h {Запрос на вывод}

    mov bx,04h {Будем выводить на принтер через LPT1}

    mov cx,4 {Всего 4 символа}

    lea dx,msg+1 {Печатаем строку}

    int 21h

    end;

    end.


    Работа с выводом данных в порт LPT
    Для вывода данных в порт используется команда out dx,ax

    Причем в dx помещается номер порта (у LPT1 порта это номер 378h), а в ax помещается байт для вывода в порт. Попробуем вывести 4 байта, таких же как в первой программе (ASCII коды, соответствующие слову «Мама»).

    Листинг 3 - Программа вывода через порта LPT

    Program OUT; {программа вывода данных в порт}

    Begin

    asm

    mov ax,204 {Байт данных для вывода}

    mov dx,378h {Номер порта для вывода}

    out dx,ax {Выводим данные в порт}

    mov ax,224 {Байт данных для вывода}

    mov dx,378h {Номер порта для вывода}

    out dx,ax {Выводим данные в порт}
    mov ax,236 {Байт данных для вывода}

    mov dx,378h {Номер порта для вывода}

    out dx,ax {Выводим данные в порт}
    mov ax,224 {Байт данных для вывода}

    mov dx,378h {Номер порта для вывода}

    out dx,ax {Выводим данные в порт}

    end;

    end.

    Заключение

    В ходе выполнения работы были разработаны программы для работы с LPT-портом через прерывания 17H, 21H и через обращение к номеру порта 378h.


    написать администратору сайта