Как вывести переменную в консоль - Assembler
Формулировка задачи:
Помогите, пожалуйста, поставленную задачу решил, а вот в консоль значение вывести не могу... Как вывести то?
data segment ; ab db 10,13, 'a bigger then b$' am db 10,13, 'b bigger then a$' mes1 db 'a = $' mes2 db 10, 13, 'b = $' mes_e db 10, 13, 'x = -10$' minus db '-$' s db a db ? b db ? x db ? x1 db ? data ends code segment start: assume cs:code, ds: data mov ax, data mov ds, ax mov ah,9 mov dx, offset mes1 int 21h mov ah, 01 int 21h mov a, al mov ah,9 mov dx, offset mes2 int 21h mov ah, 01 int 21h mov b, al mov ah, 09 lea dx, mes_e cmp a, al je equal jg bigger jl less lea dx, mes_e equal: int 21h jmp exit bigger: mov ah, 0 mov al, b div a mov x, 1 sub x, al mov ah,9 mov dx, offset ab int 21h jmp exit less: mov al, a mov x, al mov al, 5 sub x, al mov al, b mov ah, 0 mov al, x div b mov x, al ;;;;;;; ;; mov ah,9 mov dx, offset am int 21h jmp exit exit: mov ax, 4c00h int 21h code ends end start
Решение задачи: «Как вывести переменную в консоль»
textual
Листинг программы
mov ah, 0 mov al, b div a
Объяснение кода листинга программы
mov ah, 0
- Переменнаяah
устанавливается равной 0. Это может использоваться для очистки регистра или флага.mov al, b
- Переменнаяal
копирует значение переменнойb
.al
обычно используется для хранения байтового значения.div a
- Деление переменнойal
на переменнуюah
происходит с возвратом частного и остатка. Здесьa
иah
должны быть неравны нулю.ah
используется как делитель, аal
используется как делимое. Результат деления сохраняется в регистреal
, а остаток сохраняется в регистреah
. Еслиah
равен 0, то это деление на ноль, и результат будет некорректным.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д