汇编 复制内存单元的内容
大家好,我是小学五年级在读的蒟蒻,专注于后端,一起见证蒟蒻的成长,您的评论与赞与关注是我的最大动力,如有错误还请不吝赐教,万分感谢。一起支持原创吧!纯手打有笔误还望谅解。
- 思路:通过不断调整ds的值然后配合bx寄存器不断修改基址和偏移地址
;将内存ffff:0~ffff:b的单元中数据复制到0:200~0:20b单元中
assume cs:code
code segment
mov bx,0 ;偏移地址
mov cx,12 ;0-b 一共12个地址
re: mov ax,0ffffh
mov ds,ax ;将内存ffff的基址给ds设置
mov dl,[bx] ;将ds:[bx]位置的数据交给dl寄存器 ffff:0
mov ax,0020h
mov ds,ax
mov [bx],dl ;将dl的数据放到ds:[bx]位置 0000:0
inc bx ;将偏移地址的指针向后移动一位
loop re
mov ax,4c00h
int 21h
code ends
end
-
上面的代码需要使用寄存器一次修改两次ds的值导致效率很低,修改一下用两个寄存器存放值然后配合bx的偏移地址不断复制内存的数据
assume cs:code code segment mov bx,0 mov cx,12 mov ax,0ffffh mov ds,ax ;定义数据段 mov ax,0020h mov es,ax ;定义附加段 re: mov dl,[bx] ;数据复制转移 mov es: