|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
设计程序,实现从键盘上输入一个加减混合运算式,输入等号后,在下一行显示十进制计算结果。
显示示例:input:3+5+7+8=
23
这是我的课程设计题目,我编了两天了,也没有想出一个好的算法。真心不是计算机专业的搞编程麻烦。以下是我的源程序,但是运算不出来的。
求大神指导:DATAS SEGMENT
d db 200
DATAS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS
START:
MOV AX,DATAS
MOV DS,AX
mov dx,offset d
mov ah,0ah
int 21h ;键盘输入
mov dl,0ah
mov ah,2
int 21h
mov al,10
mov ds:[199],al
mov al,0
mov ds:[198],al
mov ds:[197],al
mov bx,2
x1: add ds:[197],al
mov al,0
x11:mov ch,ds:[bx]
inc bx
cmp ch,2bh ;+
jz x1
cmp ch,2dh ;-
jz x2
cmp ch,3dh ;=
jz a
sub ch,30h ;asc转换十进制数
mov cl,ch
mul byte ptr ds:199
add al,cl ;数字组合
jmp x11
x2: add ds:[197],al
mov al,0
x21:mov ch,ds:[bx]
inc bx
cmp ch,2bh ;+
jz x3
cmp ch,2dh ;-
jz x2
cmp ch,3dh ;=
jz b
sub ch,30h ;asc转换十进制数
mov cl,ch
mul byte ptr ds:199
add al,cl ;数字组合
jmp x21
x3: add ds:[198],al
mov al,0
x31:mov ch,ds:[bx]
inc bx
cmp ch,2bh ;+
jz x1
cmp ch,2dh ;-
jz x2
cmp ch,3dh ;=
jz a
sub ch,30h ;asc转换十进制数
mov cl,ch
mul byte ptr ds:199
add al,cl ;数字组合
jmp x31
x4: add ds:[198],al
mov al,0
x41:mov ch,ds:[bx]
inc bx
cmp ch,2bh ;+
jz x3
cmp ch,2dh ;-
jz x4
cmp ch,3dh ;=
jz b
sub ch,30h ;asc转换十进制数
mov cl,ch
mul byte ptr ds:199
add al,cl ;数字组合
jmp x41
a: mov ah,ds:[197]
add ah,al
mov ds:[197],ah
jmp x
b: add ds:[198],al
jmp x
x: mov al,ds:[197]
mov ah,ds:[198]
sub al,ah
sub al,30h
mov ah,2
int 21h
MOV AH,4CH
INT 21H
CODES ENDS
END START
|
|