微机代码(复习用)

data segment
    input db 'Please input number:$'
    output db 'the result is:$'
data ends
stack segment
    dw 128 dup(0)
stack ends
code segment
    assume cs:code,ds:data,ss:stack
start:
    mov ax,data
    mov ds,ax
    mov ah,9
    lea dx,input
    int 21h 
    
    mov bl,0
    mov ah,1
    int 21h
    
    and al,0fh
    
    mov cl,al
    add al,al
    add al,al
    add al,al
    add al,cl
    add al,cl    
    add bl,al ;十位乘以10 

    int 21h
    and al,0fh
    add bl,al
    sal bl,1
     
    mov ah,9
    lea dx,output
    int 21h
    
    cmp bl,100
    jnb output_hundred
    jmp output_ten
output_hundred:
    mov ah,2
    mov dl,'1'
    int 21h
    sub bl,100
output_ten:
    mov dl,0
f1:
    cmp bl,10
    jnb f2
    jmp output_ten_end
f2: 
    add dl,1
    sub bl,10
    jmp f1
output_ten_end:
    add dl,'0'
    mov ah,2
    int 21h
    add bl,'0'
    mov dl,bl
    int 21h
code ends
end start

修正一下

data segment
    input db 'Please input number:$'
    output db 'the result is:$'
data ends
stack segment
    dw 128 dup(0)
stack ends 
code segment
    assume cs:code,ds:data,ss:stack
start:
    mov ax,data
    mov ds,ax
    mov ah,9
    lea dx,input
    int 21h   ;请输入数字
    
    mov bl,0  ;输入第一个数字
    mov ah,1
    int 21h
    
    and al,0fh
    
    mov cl,al
    add al,al
    add al,al
    add al,al ;乘以8
    add al,cl 
    add al,cl ;加上两倍的数字   
    add bl,al ;十位乘以10 

    int 21h   ;输入第二个数字
    and al,0fh
    add bl,al
    sal bl,1
    
    ;设置光标的列号和行号
    mov ah,3
    mov bh,0
    int 10h
    
    inc dh
    mov dl,0
    mov ah,2
    int 10h

    mov ah,9
    lea dx,output
    int 21h   ;结果是
    
    cmp bl,100
    jnb output_hundred
    jmp output_ten
output_hundred:
    mov ah,2
    mov dl,'1'
    int 21h
    sub bl,100
output_ten:
    mov dl,0
f1:
    cmp bl,10
    jnb f2
    jmp output_ten_end
f2: 
    add dl,1
    sub bl,10
    jmp f1
output_ten_end:
    add dl,'0'
    mov ah,2
    int 21h
    add bl,'0'
    mov dl,bl
    int 21h
code ends
end start
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值