求汇编语言将一个内存块拷贝到指定地址的代码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求汇编语言将一个内存块拷贝到指定地址的代码相关的知识,希望对你有一定的参考价值。

求汇编语言将一个内存块拷贝到指定地址的代码例程。
加问一步:
如果要将这段代码后面的一段数据复制到指定地址,应该怎么做?如何获得当前代码的偏移,并计算出源数据的位置?
最好使用debug的汇编例程,这样就不用编译器了。

参考技术A 用BX和LOOP实现阿
MOV AX,段地址1
MOV DS,AX
MOV AX,段地址2
MOV ES,AX
MOV BX,偏移地址1
MOV SI,偏移地址2
SUB AX,AX
MOV CX,复制数量(字节或字或其他)
S:MOV AX(或其他),[BX]
MOV ES:[SI],AX
ADD BX,2
ADD SI,2
LOOP S
大致是据你情况修改
参考技术B 可以使用rep前缀,用movsx指令
movsb则是将DS:ESI(SI)中的一个字节复制到ES:EDI(DI)中,然后自动将ESI,EDI加一,rep前缀则是和loop检查ECX机制一样,ECX-1,!=0,继续,=0结束。
mov ds,SEGMENT sdata
mov esi,OFFSET sdata
mov es,SEGMENT ddata
mov edi,OFFSET ddata
mov ecx,datasize
rep movsb

以上是关于求汇编语言将一个内存块拷贝到指定地址的代码的主要内容,如果未能解决你的问题,请参考以下文章

C语言中将字符串打印成指定长度的方法

在Linux下用C语言编写程序,急求完整代码

求C语言内存数据读取代码

C语言,请问如何将结构体中的结构体拷贝到内存

c语言中strcpy跟mencpy哪个效率更高?

C语言串拷贝(strcpy)和内存拷贝(memcpy)函数有啥不同?