Вывод числа на экран - Assembler (224603)
Формулировка задачи:
Здравствуйте, у меня есть задача сложить два числа и вывести результат на консоль. TASM.
мой код Не могу вывести переменную rez на экран.
вроде вот вывод на экран, но выводит какую-то дичь. Пробовал выводить через 9 функцию из прерывания 21h, но там вообще какая-то жесткая дичь.
Вообщем, мне нужная простая часть кода(не нужно писать новый код), которая выводит rez на экран. Смотрел другие обсуждения по этой теме, там все для меня сложно, ничего не понятно, не прошло еще даже недели, с тех пор как я начал изучать ассемблер.
data segment a db 5 b db 4 rez db 0 data ends code segment start: assume cs:code, ds:data mov ax, data mov ds, ax mov bl, a add bl, b mov rez, bl mov ah, 02 mov dl, rez int 21h mov ax, 4c00h int 21h code ends end start
mov ah, 02 mov dl, rez int 21h
Решение задачи: «Вывод числа на экран»
textual
Листинг программы
OutInt proc aam add ax,3030h mov dl,ah mov dh,al mov ah,02 int 21h mov dl,dh int 21h OutInt endp
Объяснение кода листинга программы
Список действий в коде:
- aam - Команда умножения на 10 (перед числами 8 или 9 умножает на 10, перед числами 4, 5, 6, 7 - на 100, 1000 и т.д.)
- add ax,3030h - Переменная
ax
увеличивается на 3030 (13 строка кода) - mov dl,ah - В регистр
dl
записывается значение переменнойah
(15 строка кода) - mov dh,al - В регистр
dh
записывается значение переменнойal
(16 строка кода) - mov ah,02 - Переменная
ah
устанавливается в значение 2 (18 строка кода) - int 21h - Выполняется interrupt 21h, который предназначен для вывода символов на экран (19 строка кода)
- mov dl,dh - В регистр
dl
записывается значение переменнойdh
(20 строка кода) - int 21h - Выполняется interrupt 21h, который предназначен для вывода символов на экран (21 строка кода)
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д