- •Учебная дисциплина: "Организация эвм и систем"
- •Реферативный материал. Двоично-десятичная система счисления.
- •Преобразование двоичных чисел в двоично-десятичные.
- •Форматы представления десятичных чисел
- •Ascii-коды десятичных цифр
- •Операции двоично-десятичной арифметики
- •Сложение
- •Вычитание
- •Описание программы-эмулятора.
- •Авторское описание эмулятора
- •Обоснование выбора
- •Практическая часть. Алгоритм решения задачи
- •Полный листинг программы с комментариями. Процедура записи в память служебных фраз.
- •Вход в главную часть программы.
- •Процедура ввода исходных данных.
- •Процедура преобразования исходного массива 16ричных констант в их 2-10 коды.
- •Процедура преобразования 2-10 кодов в коды кои-7.
- •Выход из процедуры кои-7 преобразования.
- •Процедура вывода на экран результатов 2-10 преобразования.
- •Процедура вывода на экран результатов преобразования в коды кои-7.
- •Выводы.
- •Список использованных источников.
Процедура вывода на экран результатов 2-10 преобразования.
Распределение памяти:
B
C
D
E
H
L
Счётчик цикла.
Адрес текущего читаемого 2-10 числа.
Адрес |
Данные |
Ассемблерный код |
Комментарий |
4200 4201 4202 |
11 0A 00 |
LXI D,000A |
Создание в <E> счётчика цикла чтения-вывода. |
4203 4204 4205 |
21 00 60 |
LXI H,6000 |
Загрузка в <H,L> адреса с которого начнётся последовательное чтение результатов 2-10 преобразования. |
4206 4207 4208 |
01 00 36 |
LXI B,3600 |
Загрузка в <B,C> адреса, по которому записана фраза «Результаты преобразования в 2-10 коды». |
4209 420A 420B |
CD 4C 00 |
CALL 004C |
Вызов процедуры вывода на экран фразы с адреса в паре <B,C> до нулевого значения. |
420C 420D 420E |
CD 49 00 |
CALL 0049 |
Вызов процедуры перехода на новую строку. |
420F 4210 4211 |
01 00 37 |
LXI B,3800 |
Загрузка в <B,C> адреса, по которому записана фраза «, », то есть запятая и пробел. |
4212 |
23 |
INX H |
Переход к следующему адресу чтения. |
4213 |
7E |
MOV A,M |
Чтение из памяти в <A> старшего байта 2-10 ч. |
4214 4215 4216 |
CD 61 00 |
CALL 0061 |
Вывод содержимого аккумулятора (старшего байта 2-10 числа на экран). |
4217 |
2B |
DCX H |
Переход к предыдущему адресу чтения. |
4218 |
7E |
MOV A,M |
Чтение младшего байта 2-10 числа в <A>. |
4219 421A 421B |
CD 61 00 |
CALL 0061 |
Вызов процедуры вывода содержимого <A> (младшего байта 2-10 числа) на экран. |
421C |
1D |
DCR E |
Уменьшение счётчика цикла. |
421D 421E 421F |
CA 28 42 |
JZ 4228 |
Если он стал нулём, то выход из данной процедуры на адрес 4228. |
4220 4221 4222 |
CD 4C 00 |
CALL 004C |
Вызов процедуры вывода на экран фразы по адресу в <B,C> до нуля. В данном случае это будет вывод на экран «, ». |
4223 |
23 |
INX H |
Переход к следующему адресу чтения. |
4224 |
23 |
INX H |
Переход к следующему адресу чтения. |
4225 4226 4227 |
C3 12 42 |
JMP 4212 |
Возврат к началу процедуры чтения-вывода 2-10 кодов на экран. |
4228 4229 422A |
CD 4C 00 |
CALL 004C |
Вызов процедуры перехода на новую строку. |
Процедура вывода на экран результатов преобразования в коды кои-7.
Распределение памяти:
B
C
D
E
H
L
Счётчик цикла.
Адрес текущего читаемого числа-кода КОИ-7.
Адрес |
Данные |
Ассемблерный код |
Комментарий |
4230 4231 4232 |
11 0A 00 |
LXI D,000A |
Создание в <E> счётчика цикла чтения-вывода. |
4233 4234 4235 |
21 00 70 |
LXI H,7000 |
Загрузка в <H,L> адреса, начиная с которого будет произведено чтение кодов КОИ-7. |
4236 4237 4238 |
01 00 37 |
LXI B,3700 |
Загрузка в <B,C> адреса, начиная с которого записана фраза «Результаты преобразования в коды КОИ-7» |
4239 423A 423B |
CD 4C 00 |
CALL 004C |
Вывод фразы начиная с адреса в <B,C> до нуля. В данном случае служебной фразы. |
423C 423D 423E |
01 00 38 |
LXI B,3800 |
Загрузка в <B,C> адреса с которого записана фраза «, ». |
423F 4240 4241 |
CD 49 00 |
CALL 0049 |
Вызов процедуры перехода на новую строку. |
4242 |
7E |
MOV A,M |
Чтение из памяти кода КОИ-7 сотен числа. |
4243 4244 4245 |
CD 61 00 |
CALL 0061 |
Вывод КОИ-7 кода сотен 2-10 числа на экран. |
4246 |
23 |
INX H |
Переход к следующему адресу чтения. |
4247 |
7E |
MOV A,M |
Чтение из памяти кода КОИ-7 десятков числа. |
4248 4249 424A |
CD 61 00 |
CALL 0061 |
Вывод на экран кода КОИ-7 десятков 2-10 числа. |
424B |
23 |
INX H |
Переход к следующему адресу чтения. |
424C |
7E |
MOV A,M |
Чтение из памяти кода КОИ-7 единиц числа. |
424D 424E 424F |
CD 61 00 |
CALL 0061 |
Вывод КОИ-7 кода единиц числа на экран. |
4250 |
1D |
DCR E |
Уменьшение счётчика цикла. |
4251 4252 4253 |
CA 40 00 |
JZ 0040 |
Если он становится нулевым, то выход из данной процедуры на адрес завершения программы и выхода в MONID. |
4254 4255 4256 |
CD 4С 00 |
CALL 004С |
Вызов процедуры вывода на экран фразы с адреса в <B,C>. В данном случае это «, ». |
4257 |
23 |
INX H |
Переход к следующему адресу чтения. |
4258 4259 425A |
C3 42 42 |
JMP 4242 |
Переход к началу процедуры. |