
- •Учебная дисциплина: "Организация эвм и систем"
- •Реферативный материал. Двоично-десятичная система счисления.
- •Преобразование двоичных чисел в двоично-десятичные.
- •Форматы представления десятичных чисел
- •Ascii-коды десятичных цифр
- •Операции двоично-десятичной арифметики
- •Сложение
- •Вычитание
- •Описание программы-эмулятора.
- •Авторское описание эмулятора
- •Обоснование выбора
- •Практическая часть. Алгоритм решения задачи
- •Полный листинг программы с комментариями. Процедура записи в память служебных фраз.
- •Вход в главную часть программы.
- •Процедура ввода исходных данных.
- •Процедура преобразования исходного массива 16ричных констант в их 2-10 коды.
- •Процедура преобразования 2-10 кодов в коды кои-7.
- •Выход из процедуры кои-7 преобразования.
- •Процедура вывода на экран результатов 2-10 преобразования.
- •Процедура вывода на экран результатов преобразования в коды кои-7.
- •Выводы.
- •Список использованных источников.
Процедура преобразования 2-10 кодов в коды кои-7.
Распределение памяти:
B
C
D
E
H
L
Адрес текущего записываемого кода КОИ-7.
Адрес текущего читаемого из памяти 2-10 числа.
Адрес |
Данные |
Ассемблерный код |
Комментарий |
4100 4101 4102 |
21 00 60 |
LXI H,6000 |
Загрузка в пару <H,L> адреса, начиная с которого будет произведено чтение 2-10 кодов. |
4103 4104 4105 |
01 0A 00 |
LXI B,000A |
Создание в <C> счётчика цикла чтения-преобразования-записи. |
4106 4107 4108 |
11 00 70 |
LXI D,7000 |
Загрузка в пару <D,E> адреса, начиная с которого будет произведена запись кодов КОИ-7. |
4109 |
7E |
MOV A,M |
Чтение из памяти младшего байта 2-10 числа. |
410A 410B |
E6 F0 |
ANI F0 |
Выделение из младшей части числа только десятков. (лог. умнож. на число F0) |
410C |
1F |
RAR |
4-х кратный сдвиг аккумулятора вправо. Для того, чтобы десятки 2-10 числа оказались справа от нуля. |
410D |
1F |
RAR | |
410E |
1F |
RAR | |
410F |
1F |
RAR | |
4110 4111 |
F6 30 |
ORI 30 |
Сложение аккумулятора с 30кой, чтобы получить код КОИ-7. |
4112 |
13 |
INX D |
Переход к следующему адресу записи. |
4113 |
12 |
STAX D |
Запись кода КОИ-7 десятков 2-10 числа. |
4114 |
13 |
INX D |
Переход к следующему адресу записи. |
4115 |
7E |
MOV A,M |
Чтение младшего байта 2-10 числа. |
4116 4117 |
E6 0F |
ANI 0F |
Выделение из младшей части только единиц. (логич. умножение на число 0F) |
4118 4119 |
F6 30 |
ORI 30 |
Сложение аккумулятора с 30кой для получения кода КОИ-7 единиц 2-10 числа. |
411A |
12 |
STAX D |
Запись кода КОИ-7 единиц 2-10 числа в память. |
411B |
1B |
DCX D |
Переход к предыдущему адресу записи. |
411C |
1B |
DCX D |
Переход к предыдущему адресу записи. |
411D |
23 |
INX H |
Переход к следующему адресу чтения. |
411E |
7E |
MOV A,M |
Чтение в <A> старшего байта 2-10 числа. |
411F 4120 |
F6 30 |
ORI 30 |
Сложение <A> с 30кой для получения кода КОИ-7 сотен 2-10 числа. |
4121 |
12 |
STAX D |
Запись КОИ-7 кода сотен 2-10 числа в память. |
4122 |
0D |
DCR C |
Уменьшение счётчика цикла. |
4123 4124 4125 |
CA 30 41 |
JZ 4130 |
При нулевом значении счётчика цикла, необходимо прекратить выполнение текущей процедуры. |
4126 |
23 |
INX H |
Переход к следующему адресу чтения. |
4127 |
13 |
INX D |
Переход к следующему адресу записи. |
4128 |
13 |
INX D |
Переход к следующему адресу записи. |
4129 |
13 |
INX D |
Переход к следующему адресу записи. |
412A 412B 412C |
C3 09 41 |
JMP 4109 |
Переход к началу процедуры преобразования 2-10 чисел в коды КОИ-7. |
Выход из процедуры кои-7 преобразования.
Адрес |
Данные |
Ассемблерный код |
Комментарий |
4130 4131 4132 |
C3 00 42 |
JMP 4200 |
Переход к началу процедуры вывода результатов 2-10 преобразования на экран. |