汇编语言-两位数减法(优化版)十位、个位、负数

DATAS SEGMENT

a1 db ?

a2 db ?

    ;此处输入数据段代码 

DATAS ENDS

STACKS SEGMENT

    ;此处输入堆栈段代码

STACKS ENDS

CODES SEGMENT

    ASSUME CS:CODES,DS:DATAS,SS:STACKS

START:

    MOV AX,DATAS

    MOV DS,AX

    ;此处输入代码段代码

A:    mov ah,1

    int 21h

    mov bl,al

    sub bl,30h

   

    mov ah,1

    int 21h

    sub al,30h

    mov bh,al

    

    mov al,10

    mov cl,bl

    mul cl;al*cl->ax 这里只取al就行

    add al,bh;十位+个位

    mov a1,al

   

    mov ah,2

    mov dl,'-'

    int 21h

    

    mov ah,1

    int 21h

    mov bl,al

    sub bl,30h

   

    mov ah,1

    int 21h

    sub al,30h

    mov bh,al

    

    mov al,10

    mov cl,bl

    mul cl;al*cl->ax 这里只取al就行

    add al,bh;十位+个位

    mov a2,al

   

   

    cmp a1,al

    jb K

   

    mov al,a1

    sub al,a2

   

   mov ah,0

   mov cl,10

   div cl

   mov bh,ah;bh个位已经算出

  

  

   mov ah,0;看看十位al

   div cl

  

   mov dl,0

   ;只考虑余数ah

   cmp dl,ah

   jb T

   JMP F

  T:mov bl,ah

   add bx,3030h

   

    mov ah,2

    mov dl,'='

    int 21h

   

    mov ah,2

    mov dl,bl

    int 21h

    mov ah,2

    mov dl,bh

    int 21h

   

    mov ah,2

    mov dl,13

    int 21h

    mov ah,2

    mov dl,10

    int 21h

   

    JMP A

 F:add bh,30h

  mov ah,2

    mov dl,'='

    int 21h

   

    mov ah,2

    mov dl,bh

    int 21h

  mov ah,2

    mov dl,13

    int 21h

    mov ah,2

    mov dl,10

    int 21h

   

    JMP A

 k:mov cl,a1

  mov dl,a2

  mov a2,cl

  mov a1,dl

   mov al,a1

    sub al,a2

   

   mov ah,0

   mov cl,10

   div cl

   mov bh,ah;bh个位已经算出

  

  

   mov ah,0;看看十位al

   div cl

  

   mov dl,0

   ;只考虑余数ah

   cmp dl,ah

   jb M

   JMP N

  M:mov bl,ah

   add bx,3030h

   

    mov ah,2

    mov dl,'='

    int 21h

   

    mov ah,2

    mov dl,'-'

    int 21h

   

    mov ah,2

    mov dl,bl

    int 21h

    mov ah,2

    mov dl,bh

    int 21h

   

    mov ah,2

    mov dl,13

    int 21h

    mov ah,2

    mov dl,10

    int 21h

   

    JMP A

 N:add bh,30h

  mov ah,2

    mov dl,'='

    int 21h

   

    mov ah,2

    mov dl,'-'

    int 21h

   

    mov ah,2

    mov dl,bh

    int 21h

  mov ah,2

    mov dl,13

    int 21h

    mov ah,2

    mov dl,10

    int 21h

  

    JMP A

   

    MOV AH,4CH

    INT 21H

CODES ENDS

    END START

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值