内存中有两个4字节以压缩的bcd_【汇编程序】循环程序设计方法 求A和B两个4字节BCD数之和 他们在内存中以压缩BCD码形式存放...

;循环程序设计方法 求A和B两个4字节BCD数之和 他们在内存中以压缩BCD码形式存放

;低字节在前 高字节在后 要求结果以同样形式存放以SUM的单元中

data segment

a db 44h,33h,22h,11h ;数A BCD数 加上后缀H

b db 88h,77h,66h,55h ;数B 格式同上

sum db 5 dup(?) ;存和(包含进位)

data ends

stack segment 'stack'

stapn db 100 dup(?)

top equ length stapn

stack ends

code segment

min proc far

assume cs:code,ds:data,es:data,ss:stack;使用串操作指令要设置附加段

start:mov ax,stack

mov ss,ax

mov sp,top

push ds

sub ax,ax

mov ds,ax ;设置数据段

mov es,ax ;设置附加段 与数据段相同

mov si,offset a ;si

mov bx,offset b ;bx

mov di,offset sum ;di

mov cx,length sum ;cx 和的长度(含进位位) 为5

dec cx ;循环次数为4

cld ;串操作做清方向标志 地址增量

clc ;进位位清0

mov ah,0 ;ah存最后一次进位 初值置0

get_sum:lods a ;al 从a取一个字节 si自动增1

adc al,[bx] ;与数B 相加 结果al

daa ;

inc bx

stos sum

loop get_sum

adc ah,0

mov al,ah

stosb

ret

main endp

code ends

end main

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值