Bootstrap

汇编实现逆序复制数据

一.实验目的

使其可以将10000H ~ 1000FH中的8个字,逆序复制到20000H ~ 2000FH中。

二.实验过程表示

三.部分汇编实现代码

mov ax,1000H  ;将1000H放入AX寄存器中
mov ds,ax     ;将AX寄存器中的内容放入DS寄存器中,这时候DS中存放的即为1000H,通过此指令我们知道数据段寄存器DS中存放的正是要被复制数据的内存单元的段地址

mov ax,2000H  ;将2000H放入AX寄存器中
mov ss,ax     ;将AX寄存器中的内容放入SS寄存器中,即栈的段地址
mov sp,0010H  ;将0010H让入寄存器中,此时栈顶地址为20010H

push [0]      ;通过前面的指令我们知道DS中存放的是1000H,这时候加上此处的偏移地址,可以算出入栈的数据正是内存单元地址为10000H中的数据即为0123H,而前面我们已经将栈顶设置为20010H,根据入栈指令push的执行顺序,先将sp-2变成2000EH,然后将0123H送入2000EH处,实现了逆序存放
push [2]
push [4]
push [6]
push [8]
push [A]
push [C]
push [E]

mov ax,2000H
mov ds,ax

mov ax,1000H
mov ss,ax
mov sp,0000H

pop [E]
pop [C]
pop [A]
pop [8]
pop [6]
pop [4]
pop [2]
pop [0]

以上表示数据从源地址10000H~1000FH逆序复制到目标地址20000H~2000FH。

使用循环和寄存器操作,实现了数据的逆序存放。

 

;