汇编多个段的程序及内容注释

该程序演示了如何在汇编语言中将两个段(a段和b段)中的数据依次相加,结果存入第三个段(c段)中。通过设置段寄存器,如CS、DS和ES,以及使用MOV、ADD、LOOPS等指令,实现了数据的读取、计算和存储。程序最后调用中断21h来结束并返回DOS。
摘要由CSDN通过智能技术生成

汇编多个段的程序及内容注释

汇编语言第二版(王爽)的题
将a段和b段中的数据依次相加,将结果存到C段中,一次循环,程序如下。

// An highlighted block
assume cs:code				;code段使用cs寄存器,伪指令,段分配语句,建立段寄存器和段名之间关系
a segment              		;定义a段 
    db 1,2,3,4,5,6,7,8 		;字节 为1,2,3,4,5,6,7,8
a ends										;a段结束标号
b segment              		;定义b段 
    db 1,2,3,4,5,6,7,8 		;字节 为1,2,3,4,5,6,7,8
b ends										;b段结束标号
c segment              		;定义c段
    db 0,0,0,0,0,0,0,0 		;字节 为0,0,0,0,0,0,0,0 ,dw为16位的字,db为8位的字节
c ends										;c段结束标号
code segment        		;设置code(代码)段
start: mov ax,a     		;开始标号,a段地址给寄存器ax
       mov ds,ax			;ax的a段地址给寄存器ds,ds指向a段地址
       mov ax,b     		;b段地址给寄存器ax
       mov es,ax			;ax的b段地址给寄存器es,es指向b段地址
       mov bx,0     		;ds:bx指向a段的第1个单元
       mov cx,8     		;给计数CX寄存器记8s: mov al,[bx]  		;地址[bx]的值给ALAX8位)
       add al,es:[bx]		;寄存器AL的值和地址es:[bx]的值相加,所得的和存回寄存器AL
       mov dx,c     		;c段地址给寄存器ax
       mov ds,dx			;ax的c段地址给寄存器ds,ds指向c段地址
       mov [bx],al  		;寄存器AL的值给偏移地址[bx]入栈
       mov ax,a      		;a段地址给寄存器ax
       mov ds,ax			;重新将ds指向a段
       inc bx       		;bx的值自加1
       loop s       		;返回到S的地址
    mov ax,4c00h    		;AX值4c00h
    int 21h         		;执行中断21h,参数:4c00h;程序结束,返回dos
code ends           		;代码段结束标号
end start           		;结束标号
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值