在这一点上,我感到非常迷茫,这就是为什么我的代码看起来像这样
org 100h
start:
xor ax, ax
xor dx, dx
mov ah, 1
xor cx, cx
input:
int 21h
cmp al, '+'
jz sum
push ax
inc cx
jmp input
sum:
push bp
mov bp, sp
mov cx, [bp+4]
mov si, 6
xor ax, ax
sum_loop:
push bp
mov bp, sp
mov ax, [bp+6]
mov bx, [bp + 4]
add ax, bx
mov [result], ax
pop ax
loop sum_loop
pop bp;
ret
print:
mov al, [result]
mov bl, 10
div bl
mov [pt_one], ah
xor ah, ah
div bl
mov [pt_two], ah
xor ah, ah
add al, 48
mov dl, al
mov ah, 2
int 21h
mov al, [pt_two]
add al, 48
mov dl, al
mov ah, 2
int 21h
xor al, al
mov al, [pt_one]
add al, 48
mov dl, al
mov ah, 2
int 21h
mov ax, 4c00h
int 21h
section .data
pt_one db 1
pt_two db 1
result db 0
在这里,我确信输入部分可以正常工作,但我不知道是我的求和协议有问题还是我的打印方式有问题。求和时,我尝试添加 2 个下一个元素并将其添加到结果变量中,然后删除堆栈顶部。当我尝试此代码(通常我输入 123+)并输入 + 时,什么也没发生,老实说,我不知道如何修复它。