横马江山 发表于 2012-10-17 15:13:04

求大神指点……6真心搞不出来呃

设计程序,实现从键盘上输入一个加减混合运算式,输入等号后,在下一行显示十进制计算结果。
显示示例: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:,al
    mov al,0
    mov ds:,al
    mov ds:,al
    mov bx,2
x1: add ds:,al
    mov al,0
x11:mov ch,ds:
    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:,al
    mov al,0
x21:mov ch,ds:
    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:,al
    mov al,0
x31:mov ch,ds:
    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:,al
    mov al,0
x41:mov ch,ds:
    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:
   add ah,al
   mov ds:,ah
   jmp x
b: add ds:,al
   jmp x







   
   
      
x: mov al,ds:
   mov ah,ds:
   sub al,ah
   sub al,30h
   mov ah,2
   int 21h

   
   

    MOV AH,4CH
    INT 21H
CODES ENDS
    END START







页: [1]
查看完整版本: 求大神指点……6真心搞不出来呃