ВУЗ:
Составители:
Рубрика:
8
Двоичный код 16-разрядного регистра может соответствовать любому
4-разрядному десятичному числу (от 0 до 9999). В формате 32-разрядного кода
(двойное слово) могут быть представлены десятичные числа в диапазоне от 0 до
2*10^9.
Для преобразования в ASCII коды 32-разрядных двоичных чисел, соот-
ветствующих не более, чем 8 десятичным разрядам (до 99 999 999), можно пред-
ложить следующий прием.
Исходное двоичное слово поместим в DX:AX и разделим на 10 000D.
При этом и частное и остаток не будут превышать 4 десятичных разрядов. Част-
ное из AX следует временно сохранить в оперативной памяти (можно в стеке), а
остаток из DX переместить в AX и преобразовать по приведенному выше алго-
ритму в четыре младшие десятичные цифры. Затем восстановить
из памяти в
AX частное и преобразовать его в четыре старшие десятичные цифры.
Следует заметить, что для анализа знака исходного числа (до преобра-
зования) следует использовать его старшую часть, т.е. содержимое DX. Для из-
менения знака отрицательного числа вместо команды NEG необходимо преобра-
зовать число из дополнительного кода в прямой с инверсией
знакового разряда:
NOT DX ; инверсия старшего слова и знакового разряда.
NOT AX ; инверсия младшего слова.
ADD AX, 0001H ; +1 к младшему разряду двойного слова.
ADC DX, 0000H ;учет возможного переноса от предыдущей
;операции.
3.4. Использование системных прерываний в экранных операциях
Программы на языке Ассемблера, реализующие операции ввода/вывода,
используют функции системных прерываний.
Команда системного прерывания INT 21H передает управление в
DOS
для выполнения широкого набора функций, в том числе и связанных с опера-
циями ввода/вывода. Наиболее часто используемые функции прерывания
INT 21H представлены в Таблице 3.1
Команда системного прерывния INT 10H осуществляет передачу управ-
ления в BIOS для реализации операций ввода с клавиатуры и вывода на экран.
Наиболее часто используемые функции прерывания INT 10H представлены в
Таблице 3.2.
Полный перечень функций прерываний INT 10H и INT 21H можно най-
ти в [6,7].
8 Двоичный код 16-разрядного регистра может соответствовать любому 4-разрядному десятичному числу (от 0 до 9999). В формате 32-разрядного кода (двойное слово) могут быть представлены десятичные числа в диапазоне от 0 до 2*10^9. Для преобразования в ASCII коды 32-разрядных двоичных чисел, соот- ветствующих не более, чем 8 десятичным разрядам (до 99 999 999), можно пред- ложить следующий прием. Исходное двоичное слово поместим в DX:AX и разделим на 10 000D. При этом и частное и остаток не будут превышать 4 десятичных разрядов. Част- ное из AX следует временно сохранить в оперативной памяти (можно в стеке), а остаток из DX переместить в AX и преобразовать по приведенному выше алго- ритму в четыре младшие десятичные цифры. Затем восстановить из памяти в AX частное и преобразовать его в четыре старшие десятичные цифры. Следует заметить, что для анализа знака исходного числа (до преобра- зования) следует использовать его старшую часть, т.е. содержимое DX. Для из- менения знака отрицательного числа вместо команды NEG необходимо преобра- зовать число из дополнительного кода в прямой с инверсией знакового разряда: NOT DX ; инверсия старшего слова и знакового разряда. NOT AX ; инверсия младшего слова. ADD AX, 0001H ; +1 к младшему разряду двойного слова. ADC DX, 0000H ;учет возможного переноса от предыдущей ;операции. 3.4. Использование системных прерываний в экранных операциях Программы на языке Ассемблера, реализующие операции ввода/вывода, используют функции системных прерываний. Команда системного прерывания INT 21H передает управление в DOS для выполнения широкого набора функций, в том числе и связанных с опера- циями ввода/вывода. Наиболее часто используемые функции прерывания INT 21H представлены в Таблице 3.1 Команда системного прерывния INT 10H осуществляет передачу управ- ления в BIOS для реализации операций ввода с клавиатуры и вывода на экран. Наиболее часто используемые функции прерывания INT 10H представлены в Таблице 3.2. Полный перечень функций прерываний INT 10H и INT 21H можно най- ти в [6,7].
Страницы
- « первая
- ‹ предыдущая
- …
- 6
- 7
- 8
- 9
- 10
- …
- следующая ›
- последняя »