微型计算机原理及其接口技术,帮个忙在0100H单元和010AH单元开始,存放两个各为10个字节的BCD数(地址最低处放的是最低字节),求出它们的和,并且把和存入0114H开始的存储单元中.
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/22 15:34:32
微型计算机原理及其接口技术,帮个忙在0100H单元和010AH单元开始,存放两个各为10个字节的BCD数(地址最低处放的是最低字节),求出它们的和,并且把和存入0114H开始的存储单元中.
微型计算机原理及其接口技术,帮个忙
在0100H单元和010AH单元开始,存放两个各为10个字节的BCD数(地址最低处放的是最低字节),求出它们的和,并且把和存入0114H开始的存储单元中.
微型计算机原理及其接口技术,帮个忙在0100H单元和010AH单元开始,存放两个各为10个字节的BCD数(地址最低处放的是最低字节),求出它们的和,并且把和存入0114H开始的存储单元中.
assume cs:code,ds:data
data segment
org 0100h
db 10 dup(?) ;如果要验证,可以放10个具体的BCD数,作为第一个10字节的BCD数
db 10 dup(?) ;放10个具体的BCD数,作为第二个10字节的BCD数
db 11 dup(?) ;因为相加之后可能最高位有进位,所以此处用了11个字节存结果
data ends
code segment
start:
mov ax,data
mov ds,ax
mov si,0100h
clc ;对CF清0,方便后面ADC的使用
mov cx,10
s0:
mov al,[si]
adc al,[si+10] ;因为彼此之间相差10个字节单元,所以只需要用一个寄存器就可
daa
mov [si+20],al
inc si
loop s0
adc byte ptr [si+20],0 把最后可能的进位存入最高字节
mov ax,4c00h
int 21h
code ends
end start