- •Исследование процессов ввода/вывода информации и системы команд микропроцессоров семесйства intel 80×i86
- •Введение
- •1.Цель работ
- •2.1. Архитектура микропроцессора Intel 8086.
- •2.2. Адресация памяти и данных.
- •2.3. Синтаксис операндов языка assembler
- •2.4. Команды передачи данных.
- •Mov ax,segment
- •3) Mov [bx],dx переслать (dx) в ячейку адресованную (вх)
- •Mov al,es:[si]; ds заменен на es
- •Команды lea, lds, les.
- •Lea reg, memr
- •Команда xchg
- •Стековые команды push и рор
- •2.5 Префикс программного сегмента (psp)
- •2.6 Арифметические команды
- •Команды сложения и вычитания
- •0015 65А0
- •0037 1D3e
- •0004 В837
- •0001 F0f8
- •Команды расширения знака.
- •Команды inc, dec, neg, cmp.
- •Команды двоичного умножения и деления.
- •Дополнительные сведения.
- •2.7 Основные правила при разработке программ на языке assembler.
- •Int 21h
- •Int 21h
- •Int 21h
- •Int 21h
- •Int 21h
- •Int 21h
- •Int 21h
- •3. Лабораторные работы
- •Контрольные вопросы
- •Лабораторная работа № 2
- •Контрольные вопросы
- •Лабораторная работа № 3
- •Дополнительная информация для составления программы по данному заданию.
- •Лабораторная работа № 4
- •Контрольные вопросы
- •Лабораторная работа № 5
- •Контрольные вопросы
- •Лабораторная работа № 6
- •Контрольные вопросы
- •Лабораторная работа № 7
- •Рекомендации по выполнению лабораторной работы.
- •4.1. Тексты подпрограмм вывода на экран.
- •Int 21h
- •Int 21h
- •Контрольные вопросы
- •Лабораторная работа № 8
- •Контрольные вопросы
- •Лабораторная работа № 9
- •Контрольные вопросы
- •Лабораторная работа № 10
- •Контрольные вопросы
- •Контрольные вопросы
- •Лабораторная работа № 14
- •Контрольные вопросы
- •6. Требования к отчетам
- •7. Библиографический список
Рекомендации по выполнению лабораторной работы.
Ниже приведены фрагменты рабочих программ для вывода чисел в шестнадцатеричной форме на экран монитора. Вам необходимо скопировать необходимые тексты подпрограмм в тело вашей программы. В тех местах вашей программы, где вы собираетесь вывести число на экран монитора, необходимо сформировать входные переменные для соответствующих подпрограмм и вызвать подпрограмму на выполнение:
CALL имя подпрограммы
Рекомендуется выводить результаты различных вычислений с новой строки.
4.1. Тексты подпрограмм вывода на экран.
Данная подпрограмма выводит на экран один нибл.
Вход: al – содержит в младшей половине выводимый нибл, старшая половина регистра игнорируется.
Выход: нет, все регистры сохраняют свои первоначальные значения.
DisplayNibl PROC NEAR; ближняя процедура запоминания
push ax ; изменяемых регистров
push dx
and al,0fh ; очистка старшего нибла
add al,’0’ ; формирование символа
cmp al,’9’
jbe dn1
add al,7
dn1: mov ah,2 ; функция DOSа – вывод символа на экран
mov dl,al
int 21h ; выполнить функцию DOS
pop dx ; восстановление используемых регистров
pop ax
ret ; возврат из подпрограммы
DisplayNibl ENDP
Данная подпрограмма выводит на экран один байт.
Вход: al – содержит выводимый байт.
Выход: нет, все регистры сохраняют свои первоначальные значения.
DisplayByte PROC NEAR; ближняя процедура запоминания
; изменяемых регистров
push ax
push cx
push ax
mov cl,4 ; подготовка для вывода на экран старшего нибла
ror ax,cl
call DisplayNibl; вывод нибла на экран
pop ax ; восстановление младшего нибла
call DisplayNibl; вывод нибла на экран
pop cx ; восстановление используемых регистров
pop ax
ret ; возврат из подпрограммы
DisplayByte ENDP
Данная подпрограмма выводит на экран одно слово.
Вход: aх – содержит выводимое слово.
Выход: нет, все регистры сохраняют свои первоначальные значения.
DisplayWord PROC NEAR; ближняя процедура запоминания
; изменяемых регистров
push ax
push ax
xchg ah,al ; подготовка и вывод старшего байта
call DisplayByte
pop ax ; подготовка и вывод младшего байта
call DisplayByte
pop ax
ret ; возврат из подпрограммы
DisplayWord ENDP
Данная подпрограмма выводит на экран двойное слово.
Вход: ах – содержит младшее выводимое слово,
dx – содержит старшее выводимое слово.
Выход: нет, все регистры сохраняют свои первоначальные значения
DisplayDWord PROC NEAR; ближняя процедура запоминания
; изменяемых регистров
push ax
push dx
xchg ax,dx ; подготовка и вывод старшего слова
call DisplayWord ; подготовка и вывод младшего слова
mov ax,dx
call DisplayWord
pop dx
pop ax
ret ; возврат из подпрограммы
DisplayDWord ENDP
Данная подпрограмма выполняет возврат коретки.
Вход: нет.
Выход: нет, все регистры сохраняют свои первоначальные значения.
DisplayEndString PROC NEAR; ближняя процедура запоминания
; изменяемых регистров
push ax
push dx
mov ah,2
mov dl,13 ; возврат каретки