Написать программу перевода числа из десятичного представления в шестнадцатеричное - Assembler
Формулировка задачи:
Написать программу перевода числа из десятичного представления в шестнадцатеричное.
что-то вроде получилось
; masm dos com # .286 .model tiny .code start: mov ax,3 int 10h mov ax,0B800h mov es,ax mov di,0 mov ah,02h mov al,'$' mov cx,25 l1: push cx mov cx,80 rep stosw pop cx loop l1 int 16h ret; Выход end start
Решение задачи: «Написать программу перевода числа из десятичного представления в шестнадцатеричное»
textual
Листинг программы
start: mov ax,3 int 10h push 0B800h pop es mov di,0 mov ax,200h+'$' mov cx,80*25 rep stosw mov ah,0 int 16h ret
Объяснение кода листинга программы
mov ax,3
- Переменнаяax
содержит 3.int 10h
- Выполняется функция BIOS, которая выводит на экран число 3.push 0B800h
- Начинается выполнение командыpush
, которая сохраняет в стеке значение 0B800h (1001111000000000).pop es
- Командаpop
извлекает из стека значение, которое сохраняется в регистреes
.mov di,0
- Регистрdi
устанавливается равным 0.mov ax,200h+$
- В регистрax
записывается значение 200h (96) с символом$
(код символа доллара).mov cx,80*25
- Значение 80 умножается на 25 и записывается в регистрcx
.rep stosw
- Командаstosw
повторяется до тех пор, пока в регистреcx
не станет равным 0. При каждой итерации в буфер, на который указываетdi
, записывается значение из регистраax
.mov ah,0
- В регистрah
записывается 0.int 16h
- Выполняется функция BIOS, которая выводит на экран число 96.ret
- Код возвращает управление в вызывающую программу.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д