回 帖 发 新 帖 刷新版面

主题:自己编写的一个加减法程序

stack segment stack
     dw 100 dup(?)
stack ends
data segment
x1     db 4 dup(?)
x2     db 4 dup(?)
stack segment stack
     dw 100 dup(?)
stack ends
data segment
x1     db 4 dup(?)
x2     db 4 dup(?)
x3     db 5 dup(?)
data ends
code segment
     assume cs:code,ds:data,ss:stack
main proc far
     push ds
     xor ax,ax
     push ax
     mov ax,data
     mov ds,ax
     lea si,x1
     mov cx,4
     call shuru;输入第一个四位十进制数
     mov ah,8;输入0或1选择输出加减号
     int  21h
     cmp al,30h
     je again1
     cmp al,31h
     je again2     
again1:mov dl,'+'
     mov ah,2
     int 21h
     jmp jinru
again2:mov dl,'-'
     mov ah,2
     int 21h
jinru:lea si,x2;输入第二个四位十进制数
     mov cx,4
     call shuru
     mov dl,'='
     mov ah,2
     int 21h
     lea si,x1+3
     lea di,x2+3
     lea bx,x3+4
     mov cx,4
     clc     
     mov ah,8;输入数字选择进行加法还是减法运算
     int  21h
     cmp al,30h
     je yunsuan1
yunsuan2:mov al,[si]
      sbb al,[di]
      aas
      mov [bx],al
      dec si
      dec di
      dec bx
      loop yunsuan2
      jmp next3
yunsuan1:mov al,[si]
      adc al,[di]
      aaa
      mov [bx],al
      dec si
      dec di
      dec bx
      loop yunsuan1 
next3:mov al,0
      adc al,0
      mov [bx],al
      mov cx,5
next2:mov dl,[bx];显示输出x3中的数
      or dl,30h
      mov ah,2
      int 21h
      inc bx
      loop next2
      mov ah,4ch
      int 21h
main endp
     shuru proc near
next:mov ah,1
     int 21h     
     cmp al,30h
     jb next
     cmp al,39h
     ja next
     and al,0fh
     mov [si],al
     inc si
     loop next
     ret
shuru endp
code ends
     end main

回复列表 (共2个回复)

沙发

你输入的子程序我怎么没有找到、?

板凳


不好意思,上次随便写了一下,把这段写掉了。我已经加上去了

我来回复

您尚未登录,请登录后再回复。点此登录或注册