您的位置:首页 > 其它

将str1缓冲区的50个字节数据按照相反的方向依次传送到存储区str2中

2009-12-21 21:22 274 查看
DATA_SEG SEGMENT
STR1 DB 50 DUP(?)	;STR1指向一个50字节的存储空间
STR2 DB 50 DUP(?)	;STR2指向一个50字节的存储空间
DATA_SEG ENDS			;数据段DATA_SEG定义完成
CODE_SEG SEGMENT
ASSUME CS:CODE_SEG,DS:DATA_SEG	;关联各段与相应的段寄存器
START:
MOV AX,DATA_SEG
MOV DS,AX		;将代码段DATA_SEG首地址传给DS寄存器
LEA BX,STR1		;将STR1的段内偏移地址传给BX
LEA SI,STR2		;将STR2的段内偏移地址传给SI
MOV DI,31H		;(DI)=49,用作数组下标
MOV CX,32H		;CX是隐含的LOOP循环计数器,设定循环次数为50次,每循环一次,CX减一
NEXT:
MOV AL,[BX][DI]		;基址加变址寻址,用作数组的处理,相当于BX[DI]
MOV [SI],AL		;将STR1的最后一个字节传给STR2的第一个字节
DEC DI			;(DI)=(DI)-1
INC SI			;(SI)=(SI)+1
LOOP NEXT		;当CX≠0时,跳转到NEXT处;当CX=0时,继续下面的指令
MOV AH,4CH		;调用功能号为4CH的DOS功能
INT 21H			;中断,执行调用的DOS子程序,结束程序
CODE_SEG ENDS			;代码段定义完成
END START		;汇编结束,程序入口为START
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐