为什么结果不对啊请帮忙指正,十进制和十六进制如何表示
data segment ;显示提示语句
string_1 db 'input num a: $'
string_2 db 0ah,0dh,'input num b: $'
string_3 db 0ah,0dh,'a or b= $'
data ends
code segment
assume cs:code,ds:data,ss:stack
start:
mov ax,data
mov ds,ax
;显示提示
lea dx,string_1
mov ah,09h
int 21h
;读取第一个数
mov ah,01h
int 21h
sub al,30h
mov bl,al
lea dx,string_2
mov ah,09h
int 21h
;读取第二个数
mov ah,01h
int 21h
sub al,30h
lea dx,string_3
mov ah,09h
int 21h
xor ah,ah
or al,bl
a(三个a)
push ax; 保护ax
;输出结果的高位
add ah,30h
mov dl,ah
mov ah,02h
int 21h
pop ax
;输出结果的低位
add al,30h
mov dl,al
mov ah,02h
int 21h
mov ax,4c00h
int 21h
code ends
end start
是不是输入的测试数据有问题?十进制数可以直接输入,十六进制数需要在前面加上0x或者h表示。例如,十进制的10可以直接输入10,十六进制的10可以输入0x10或者10h。