需要帮助,如何添加两个数字,然后打印结果这里是我的代码
.MODEL SMALL
.STACK 200H
.DATA
NUM1 DB 12
NUM2 DB 3
VAL DB ?
MSG1 DB "The sum is : $"
.CODE
BEGIN PROC
MOV AX, @DATA
MOV DS, AX
MOV AL, NUM1
ADD AL, NUM2
MOV VAL, AL
LEA DX, MSG1
MOV AH, 9
INT 21H
MOV AH, 2
MOV DL, VAL
INT 21H
MOV AX, 4C00H
INT 21H
BEGIN ENDP
END BEGIN
我得到一个输出
The sum is 0
我的代码有什么错误?
3条答案
按热度按时间qacovj5a1#
通过不断地将值除以10,您将得到余数中的个位数-但顺序是错误的(从最后到第一)。要按“正确”的顺序打印(从第一个到最后一个),你可以通过
PUSH
ing和POP
ing反转它们(关键字:LIFO =后进先出):62o28rlo2#
你不能这样做,你不会看到数字,你必须得到ASCII表示十六进制值的数字,这代表你的结果。非常基本的基础知识。让我看看链接。
标签:How to convert from 4-bit hexadecimal to 7-bit ASCII?
vsnjm48y3#
section .data num1 db 10 num2 db 20 result db 0
section .text global _start
_start:;将numl和num 2的值移动到寄存器mov al,byte [numl] mov bl,byte [num 2]中