汇编语言 将数据区BUF1中的10个数,传送到数据区BUF2中并计算BUF1数据的累加和

本文介绍了一个简单的汇编语言程序实例,演示了如何进行数据块的拷贝及两个缓冲区中数据的累加操作。通过具体的代码片段展示了使用REP MOVSB指令进行数据拷贝的过程,以及通过循环累加实现对数据求和的方法。
摘要由CSDN通过智能技术生成
data segment 
    buf1 db '0123456789' 
data ends 

ext segment 
    buf2 db 10 dup(0) 
ext ends

assume cs:code,ds:data,es:ext 
code segment 
start: mov ax,data 
       mov ds,ax;源址 
       mov ax,ext 
       mov es,ax;目标段址 
       cld 
       lea si,buf1
       lea di,buf2
       mov cx,10 
       rep movsb;拷贝 
        
       mov ax,4c00h
       int 21h 
code ends 
end start

结果:
-d 0710:0
0710:0000  30 31 32 33 34 35 36 37-38 39 00 00 00 00 00 00    0123456789......
0710:0010  30 31 32 33 34 35 36 37-38 39 00 00 00 00 00 00    0123456789......
0710:0020  B8 10 07 8E D8 B8 11 07-8E C0 FC BE 00 00 BF 00    ?.???.????..?.
0710:0030  00 B9 0A 00 F3 A4 B8 00-4C CD 21 90 90 90 90 90    .?..???.L?!?????
0710:0040  90 90 90 90 90 90 90 90-90 90 90 90 90 90 90 F4    ????????????????
0710:0050  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00    ................
0710:0060  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00    ................
0710:0070  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00    ................

data segment 
    buf1 dw 0h,1h,2h,3h,4h,5h,6h,7h,8h,9h 
    buf2 dw 10 dup(0) 
data ends

assume cs:code,ds:data 
code segment 
start: mov ax,data 
       mov ds,ax 
       
       mov ax,0
       mov bx,0 
       mov cx,10   
       
     s:add ax,buf1[bx]
       inc bx
       loop s
       
       mov buf2,ax
            
       mov ax,4c00h
       int 21h 
code ends 
end start

结果:
-d 0711:0004
0711:0004  0A 0F 00 00 00 00 00 00-00 00 00 00 00 00 00 00    ...............

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值