Здравствуйте! Извините, что пришел с таким(возможно очень легким или тупым вопросом, но я, если честно не могу сделать) вопросом. Если кто может помочь или что то подсазать, будьте добры помогите вот с такой задачкой. Я с портами пока не умею работать, а хотелось бы понять и научиться. Заранее большое спасибо. Тема: Состав и структура системы ввода-вывода современного ПК. Тема: Программирование основных режимов обмена интерфейса IEEE-488 (канал общего пользования). Контроллер, управляющий обменом по шине IEEE488, использует три порта ввода-вывода процессора. - порт 0200h, определяющий режим работы контроллера "говорящий" - "слушающий". Нулевое значение записываемого в порт байта означает режим "говорящий"; ненулевое - режим "слушающий". - порт 0202h обеспечивает управление линиями синхронизации и управления либо прием сигналов по этим линиям в соответствии с таблицей 1. Табл.1. Номер бита 7 6 5 4 3 2 1 0 Линия УП СД ГП ДП ЗО ДУ ОИ КП - порт 0204h обеспечивает установление байта данных на линиях данных. Задание для выполнения лабораторной работы: 1 Разработать алгоритмы и соответствующие программные процедуры на языке высокого уровня информационного обмена по шине IEEE488: - вывода байта данных; - ввода байта данных; - вывода байта команды. Надо написать как бы три блока для ввода байта данных, для вывода и для ввода байта команд. Вот мои попытка(3 моих блока, которые я пытался сделать) Код (Text): ; ВВОД БАЙТА ДАННЫХ ; ;ВЫПОЛНИЛ: студент группы 4-СKC-76 Бессмельцкв Андрей ;-------Сегмент данных------------------------------------- DATASG SEGMENT PARA 'Data' DATASG ENDS ;-----------Конец сегмента данных-------------------------- ;--------------------Сегмент стека------------------------- STK SEGMENT STACK DB 256 DUP ('?') STK ENDS ;---------------Конец сегмента стека----------------------- ;------------------------Сегмент кода--------------------- CODE SEGMENT PARA PUBLIC 'CODE' MAIN PROC FAR ASSUME CS:CODE, DS:DATASG, ES:DATASG, SS:STK XOR AL,AL ; устанавливаем на адаптере 0, MOV DX,0200h ; показываем, что контроллер cлушатель MOV DX,0204h IN AL,DX ;вводим байт CODE ENDS MAIN ENDP END MAIN ; ВЫВОД БАЙТА ДАННЫХ ; ;ВЫПОЛНИЛ: студент группы 4-СKC-76 Бессмельцкв Андрей ;-------Сегмент данных------------------------------------- DATASG SEGMENT PARA 'Data' DATASG ENDS ;-----------Конец сегмента данных-------------------------- ;--------------------Сегмент стека------------------------- STK SEGMENT STACK DB 256 DUP ('?') STK ENDS ;---------------Конец сегмента стека----------------------- ;------------------------Сегмент кода--------------------- CODE SEGMENT PARA PUBLIC 'CODE' MAIN PROC FAR ASSUME CS:CODE, DS:DATASG, ES:DATASG, SS:STK XOR AL,AL ; устанавливаем на адаптере 0, MOV DX,0200h ; показываем, что контроллер говорящий MOV AL,10010101b ; заносим байт данных MOV DX,0204h OUT DX,AL ; байт данных на шине CODE ENDS MAIN ENDP END MAIN ; ВЫВОД БАЙТА КОМАНДЫ ; ;ВЫПОЛНИЛ: студент группы 4-СKC-76 Бессмельцкв Андрей ;-------Сегмент данных------------------------------------- DATASG SEGMENT PARA 'Data' DATASG ENDS ;-----------Конец сегмента данных-------------------------- ;--------------------Сегмент стека------------------------- STK SEGMENT STACK DB 256 DUP ('?') STK ENDS ;---------------Конец сегмента стека----------------------- ;------------------------Сегмент кода--------------------- CODE SEGMENT PARA PUBLIC 'CODE' MAIN PROC FAR ASSUME CS:CODE, DS:DATASG, ES:DATASG, SS:STK XOR AL,AL ; устанавливаем 0, MOV DX,0202h IN AL,DX AND AL,7Fh OUT DX,AL ;выыодим байт XOR AL,AL MOV DX,0204h MOV AL,10110101b IN AL,DX CODE ENDS MAIN ENDP END MAIN