|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Лабораторная работа № 7”Исследование процесса суммирования на ПЭВМ однобайтовых чисел с использованием команды add al,[si]” В данной работе необходимо составить программу, которая выполняет следующие действия. В программе в области, определяемой оператором.DATA, организовать массив из двух однобайтовых чисел без знака. Затем программно сложить эти числа и результат сложения вывести на экран монитора, снабдив его соответствующим сообщением. Сумма должна занимать одно слово. Повторить то же самое для чисел со знаком. Отрицательный результат выводить на экран монитора, как в прямом, так и в дополнительном коде. Отметим, что отрицательные числа в ЭВМ автоматически представляются в дополнительном коде. Признаком отрицательного числа является наличие “1” в знаковом разряде числа. Рекомендации по выполнению лабораторной работы. Ниже приведены фрагменты рабочих программ для вывода чисел в шестнадцатеричной форме на экран монитора. Вам необходимо скопировать необходимые тексты подпрограмм в тело вашей программы. В тех местах вашей программы, где вы собираетесь вывести число на экран монитора, необходимо сформировать входные переменные для соответствующих подпрограмм и вызвать подпрограмму на выполнение:
CALL имя подпрограммы Рекомендуется выводить результаты различных вычислений с новой строки.
Тексты подпрограмм вывода на экран. Данная подпрограмма выводит на экран один нибл. Вход: 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; возврат каретки Int 21h mov dl,10; перевод строки Int 21h Pop dx Pop ax Ret Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.005 сек.) |