汇编-求两个数之和

该博客详细介绍了使用汇编语言进行两个十六进制数相加的程序设计。程序首先定义了两个加数ADD1和ADD2,以及一个存放结果的SUM数组和存储加数长度的CONT。然后通过初始化数据段和附加段寄存器,利用循环结构进行逐字节相加,并将结果存入SUM数组中。最后,通过在调试模式下查看BX寄存器的变化来验证程序结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

代码:
DATA SEGMENT
;定义字节类型数据ADD1,ADD2,SUM和CONT(存放两个加数的长度)
ADD1 DB 11H,11H,11H,11H,11H,11H
ADD2 DB 66H,55H,44H,33H,22H,11H
SUM DB 6 DUP(0)
CONT DB 3
DATA ENDS

STACK SEGMENT PARA STACK ‘STACK’
DB 100 DUP(?);定义100个未经初始化的字节
STACK ENDS

CODES SEGMENT
ASSUME CS:CODES,DS:DATA,ES:DATA,SS:STACK
MADDB:
MOV AX,DATA
MOV DS,AX;初始化数据段寄存器
MOV ES,AX;初始化附加段寄存器
MOV SI,OFFSET ADD1;将ADD1的偏移地址存入SI中
MOV DI,OFFSET ADD2;将ADD2的偏移地址存入DI中
MOV BX,OFFSET SUM;将SUM的偏移地址存入BX中
MOV CL,BYTE PTR CONT;CL在当前时刻强制设置为字节类型之后,赋值为CONT
MOV CH,0;初始化相加字长度
CLCMADDB1:MOV AX,[SI]
ADC AX,[DI];16位相加
INC SI;SI+1
INC SI
INC DI
INC DI
MOV [BX],AX;相加结果送至结果单元
INC BX
INC BX
LOOP CLCMADDB1;循环执行
HLT;处理器“暂停”指令
CODES ENDS
END MADDB

如何查验实验结果:
1.在调试模式下输入t,在这里插入图片描述
程序执行一条指令
2.因为SUM的偏移地址存放在BX中,而程序后面BX的地址发生变化,所以要记下BX的第一次变化的值
3.输入d 000c 即可出现结果
(000c是此程序在运行时BX的第一个值)
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值