简介 :
将内存地址为 FFFF:0000 - FFFF:000F 的数据复制到内存地址为 0000:0200 - 0000:020F 的空间中
这种方法比较高效率的原因是减少了循环次数
使用 es 寄存器保存了目的地址的段地址
是一种空间换时间的做法
代码 :
assume cs:code
; 将内存地址为 FFFF:0000 - FFFF:000F 的数据复制到内存地址为 0000:0200 - 0000:020F 的空间中
; 注意 :
; 为了能让偏移地址复用 , 需要将目标地址基址和偏移地址进行调整
; 调整为 : 0020:0000 - 0020:000F
code segment
start:
; 设置数据段寄存器
; 数据段寄存器
mov ax, 0FFFFH
mov ds, ax
; 扩展段寄存器
mov ax, 0020H
mov es, ax
; 设置 bx , (数据偏移地址)
mov bx, 0000H
; 设置循环初始条件 (设置循环次数)
mov cx, 0008H
myloop:
; 读取数据
mov dx, [bx]
; 写入数据
mov es:[bx], dx
; 自增偏移地址寄存器(bx)
inc bx
inc bx
loop myloop
finish:
mov ax, 4C00H
int 21H
code ends
end start