我汇编初学,写了个程序,有问题,请各位高手指教
题目:用命令行参数实现两个一位数的加减乘除,
例如:
C:\>math 3*4
回车后显示:
3*4=12
我的程序如下:
.model small
.stack
.data
buf db 5 dup(?)
.code
start: cld
mov si,80h
lodsb
mov cl,al
xor ch,ch
mov ax,@data
mov es,dx
mov di,offset buf
push cx
rep movsb
pop cx
push es
push ds
mov si,offset buf
jcxz over
next: lodsb
mov dl,al
mov ah,2h
int 21h
loop next
mov dl,"="
mov ah,2h
int 21h
mov si,offset buf
inc si
mov dl,[si]
sub dl,30h
mov dh,[si+2]
sub dh,30h
cmp buf[si+1],'+'
je addp
jmp over
cmp buf[si+1],'-'
je subp
cmp buf[si+1],'*'
je mulp
cmp buf[si+1],'/'
je divp
addp: add dl,dh
jmp disp
subp: sub dl,dh
jmp disp
mulp: mul dl,dh
jmp disp
divp: div dl,dh
jmp disp
disp: add dl,30h
mov ah,2h
int 21h
over: mov ah,4ch
int 21h
end start
这个程序有问题,请大家帮我改改。
还有一个问题,如果想将题目改成两个4位的整数的四则运算该怎么写?高手们帮帮我,谢谢大家。