Программирование на языке АССЕМБЛЕРА. Мещерякова Э.В. - 8 стр.

UptoLike

Составители: 

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].