1. 题目
现在你在寄存器中有一个索引从0开始的数组,数组长度为9,要求你将这个数组复制到寄存器索引从A开始的位置上(即每个数依次后移10位)。
2. 思路
直接使用LOOP循环搬运,一个变量取出数组当前值,然后赋值到对应区域上。
3. 解法代码
MOV BX,0000H ;BX设定为0,从原数组第一个数开始读取
MOV CX,0009H ;CX设定为9,即循环9次
L1:MOV DX,[BX] ;创建循环,用DX读取数组中索引为BX的值
MOV [BX+10],DX ;把DX后移10位放入寄存器
INC BX ;索引值BX加1
LOOP L1 ;CX减1,当CX为0时循环结束
4. 完整代码
DATA SEGMENT
A DB 12H,23H,34H,45H,56H,67H,78H,89H,9AH
DATA ENDS
PROGNAM SEGMENT
ASSUME CS:PROGNAM,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV AX,BX
MOV CX,0009H
L1:MOV DX,[BX]
MOV [BX+10],DX
INC BX
LOOP L1
MOV AH,4CH
INT 21H
PROGNAM ENDS
END START
5. 运行结果
由图可以看到数组已经复制到了索引从A开始的位置了
版权声明:本文为m0_52937106原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。