汇编实现从键盘输入两个10进制的2位整数的和

此篇博客详细介绍了如何使用汇编语言编写一个程序,从键盘接收两个2位十进制整数,然后计算它们的和,并将结果显示在屏幕上。通过DOS调用和基本算术操作,展示了底层编程的基本步骤。
; 编程实现从键盘输入两个10进制的2位整数的和。

stack segment
db 10 dup(?)  ;定义10个不确定的值“?”放入指定的内存单元。
stack ends


data segment
;显示提示语句
    string_1 db 'input num a: $'
    string_2 db 0ah,0dh,'input num b: $'  ;0dh 表示回车符号,这只是一个表示这一行终止的符号,不可见的,
    string_3 db 0ah,0dh,'a+b= $'   ;0Ah表示换行,就是跳转到下一行,两者同时用表示回车换行!
    A1 DB ?
    A2 DB ?
    SUM DB ?
data ends



assume cs:code
code segment
start:
    mov ax,data
    mov ds,ax
    
    ;显示提示
    lea dx,string_1  ;lea将有效地址传送到指定的的寄存器
    mov ah,09h    ;实现DOS调用中的09号功能,就是在屏幕上显示字符串
    int 21h     ;是命令系统工作的意思,至于做什么工作,就看你往AH里面放了什么代码。
    
    
    ;输入第一个数的十位
    mov ah,01h  ;调用DOS,从键盘输入字符并存放在al。
    int 21h
    mov bl,al
    sub bl,30h   ;输入了一个数后,这是一个字符,如果你要变成10进制的数,就要减去30h
    
    
    ;输入第一个数的个位
    mov ah,01h  ;调用DOS,从键盘输入字符并存放在al。
    int 21h
    sub al,30h
    mov bh,al
    
    mov al,10
    mul bl     ;BL*AL=AX 第一个数的十位乘十 存放在AX中 
    add al,bh  ;八位和十六位类型不匹配,所以个位加到AL中 
    mov A1,al  ;将第一位数字存放在A1里面
    lea dx,string_2
    mov ah,09h
    int 21h
    ;输入第二个数的十位
    mov ah,01h
    int 21h
    mov bl,al
    sub bl,30h
    
    ;输入第二个数的个位
    mov ah,01h
    int 21h
    sub al,30h
    mov bh,al
    mov al,10
    mul bl      ;BL*AL=AX 第二个数的十位乘十 存放在AX中 
    add al,bh   ;八位和十六位类型不匹配,所以个位加到AL中 
    mov A2,al   ;将第二位数字存放在A2里面
    mov al,A1
    add al,A2   ;A1 A2相加
    
    lea dx,string_3
    mov ah,09h
    int 21h
    
    mov ah,0
    mov bl,10
    div bl      ;AX/BL=AL...AH
    mov bh,ah   ;个位放在BH里面
    add bh,30h  ;个位转化为ASCII码
    
    mov ah,0
    div bl      ;AL里面的百位十位再除以十 AX(AL)/10=AL...AH
    mov cx,ax
    add cx,3030h

    
    ;输出百位
    mov ah,2
    mov dl,cl
    int 21h
    
    ;输出十位
    mov ah,2
    mov dl,ch
    int 21h
    
    ;输出个位
    mov ah,2
    mov dl,bh
    int 21h
    mov ax,4c00h
    int 21h
    
code ends
end start

在这里插入图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值