ВУЗ:
Составители:
Рубрика:
6
системой автоматически, загрузку адреса (номера) сегмента данных в регистр
DS следует запрограммировать. Пусть при описании сегмента данных ему при-
своено имя DATSEG . Поскольку непосредственная загрузка сегментного реги-
стра константой не разрешается, процесс косвенной загрузки DS будет таким:
MOV AX, DATSEG
MOV DS, AX
Далее размещается программа, реализующая основной алгоритм зада-
чи, а затем процедуры-подпрограммы, если
они есть.
3.3 Преобразование двоичного кода в код ASCII
Для вывода сообщений на экран дисплея или принтер все двоичнокоди-
рованные числа должны быть преобразованы в ASCII –коды (см Приложение,
с13, а также [3] ).
Процесс преобразования заключается в последовательном делении дво-
ичного числа на 10D и выделении остатков до тех пор, пока частное от деления
не окажется меньше делителя , т.е. десяти. Все остатки и последнее частное об-
разуют двоичные коды десятичных цифр, начиная с младшего разряда. Затем эти
коды преобразуются в формат ASCII вписыванием «3» (0011В) в старшую тет-
раду каждого байта.
Блок-схема описанного алгоритма представлена на рис.3.1.
Как известно, для выполнения операции деления исходное число
(де-
лимое), а затем частное всегда размещается в аккумуляторе (AX), остаток – в
регистре DX. Делитель – константа (10D) помещается в один из РОН. Область
памяти для хранения ASCII цифр можно адресовать косвенно через базовый
(BX) или индексные регистры (SI, DI). Причем исходное значение адреса долж-
но указывать на ячейку памяти (ЯП) для младшей цифры – старший адрес в со
-
ответствии с правилом хранения ASCII символов (старший знак по младшему
адресу) в отличие от принятого способа хранения обычных двоичных кодов
(младший байт по младшему адресу).
Приведенный алгоритм обеспечивает преобразование 16-разрядных
двоичных беззнаковых (положительных ) чисел. Если требуется преобразование
чисел со знаком, предварительно необходимо выявить знак числа. Для отрица-
тельных чисел следует до
преобразования изменить их знак (например, коман-
дой NEG), а после преобразования перед старшей цифрой в цепочку ASCII ко-
дов, сохраняемых в оперативной памяти, вписать знак «-» (код 2DH).
Примеры программной реализации преобразования 16-разрядного дво-
ичного кода в ASCII код и наоборот можно найти в [2, с. 199], [3, с. 218].
6 системой автоматически, загрузку адреса (номера) сегмента данных в регистр DS следует запрограммировать. Пусть при описании сегмента данных ему при- своено имя DATSEG . Поскольку непосредственная загрузка сегментного реги- стра константой не разрешается, процесс косвенной загрузки DS будет таким: MOV AX, DATSEG MOV DS, AX Далее размещается программа, реализующая основной алгоритм зада- чи, а затем процедуры-подпрограммы, если они есть. 3.3 Преобразование двоичного кода в код ASCII Для вывода сообщений на экран дисплея или принтер все двоичнокоди- рованные числа должны быть преобразованы в ASCII –коды (см Приложение, с13, а также [3] ). Процесс преобразования заключается в последовательном делении дво- ичного числа на 10D и выделении остатков до тех пор, пока частное от деления не окажется меньше делителя , т.е. десяти. Все остатки и последнее частное об- разуют двоичные коды десятичных цифр, начиная с младшего разряда. Затем эти коды преобразуются в формат ASCII вписыванием «3» (0011В) в старшую тет- раду каждого байта. Блок-схема описанного алгоритма представлена на рис.3.1. Как известно, для выполнения операции деления исходное число (де- лимое), а затем частное всегда размещается в аккумуляторе (AX), остаток – в регистре DX. Делитель – константа (10D) помещается в один из РОН. Область памяти для хранения ASCII цифр можно адресовать косвенно через базовый (BX) или индексные регистры (SI, DI). Причем исходное значение адреса долж- но указывать на ячейку памяти (ЯП) для младшей цифры – старший адрес в со- ответствии с правилом хранения ASCII символов (старший знак по младшему адресу) в отличие от принятого способа хранения обычных двоичных кодов (младший байт по младшему адресу). Приведенный алгоритм обеспечивает преобразование 16-разрядных двоичных беззнаковых (положительных ) чисел. Если требуется преобразование чисел со знаком, предварительно необходимо выявить знак числа. Для отрица- тельных чисел следует до преобразования изменить их знак (например, коман- дой NEG), а после преобразования перед старшей цифрой в цепочку ASCII ко- дов, сохраняемых в оперативной памяти, вписать знак «-» (код 2DH). Примеры программной реализации преобразования 16-разрядного дво- ичного кода в ASCII код и наоборот можно найти в [2, с. 199], [3, с. 218].
Страницы
- « первая
- ‹ предыдущая
- …
- 4
- 5
- 6
- 7
- 8
- …
- следующая ›
- последняя »