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

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

第1个回答  2006-09-16
用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
大致是据你情况修改
第2个回答  2006-09-16
可以使用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

求汇编语言将一个内存块拷贝到指定地址的代码
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 大致是据你情况修改

ce有哪些指令
CE指令是汇编语言中的指令,以下是常见的CE指令:1. CE指令包括拷贝(COPY)指令,用于在内存中复制数据。它允许将一个内存地址的数据复制到另一个内存地址。这个指令在计算机编程中非常常见,用于数据的处理与传输。2. CE还包括比较(CMP)指令,用于比较两个操作数的大小。执行此指令后,会根据比较的...

汇编语言MOV指令
在汇编语言中,MOV指令是数据传送指令,也是最基本的编程指令,用于将一个数据从源地址传送到目标地址(寄存器间的数据传送本质上也是一样的)。其特点是不破坏源地址单元的内容。例如:1、MOVAX,2000H;将16位数据2000H传送到AX寄存器。2、MOVAL,20H;将8位数据20H传送到AL寄存器。3、MOVAX,BX;将...

汇编语言mov指令
在汇编语言中,mov指令是一种基本的数据传输指令。它的主要功能是将数据从一个位置移动到另一个位置,而不改变数据的本质。也就是说,它实现的是数据的搬运,而不是数据的运算或变换。二、指令格式 mov指令的基本格式通常为:mov 目的地址, 源地址。这里的“目的地址”和“源地址”可以是寄存器、内存...

x86汇编语言的MOV指令
MOV在汇编语言中是 数据传送指令。用法如下:mov — Move (Opcodes: 88, 89, 8A, 8B, 8C, 8E, ...)mov指令将第二个操作数(可以是寄存器的内容、内存中的内容或值)复制到第一个操作数(寄存器或内存)。mov不能用于直接从内存复制到内存,其语法如下所示:mov <reg>,<reg>mov <reg>,<...

在汇编程序中如何将一个立即数赋给已知偏移地址的内存单元
首先将已知偏移地址送BX(或SI,或DI)如:MOV BX,OFFSET ADDR1 (其中ADDR1为已知偏移地址)再将立即数(假如为10)送入任一通用寄存器(如:AL,BL,CL,DX等)MOV AL,10 最后用以下指令完成:MOV [BX],AL

用汇编语言写一段程序,在dos下能将引导扇区的内容读出到偏移地址为20...
MOV AX, 201 MOV BX, 200 MOV CX, 1 MOV DX, 80 INT 13 INT 3 以上程序,要在 DEBUG 中使用。

汇编中的跳跃指令
远转移(JMP far)则用于段间转移,允许跨越不同的代码段。其机器码由转移地址直接给出。例如,指令0B01D21C表示了一个远转移指令,它指向了某个特定的内存位置作为转移的目标。在内存转移中,JMP指令根据目标地址的存储方式分为两种格式:内存单元地址转移和内存单元双字转移。1. 内存单元地址转移(JMP ...

跪求汇编语语言命令详解
e (Enter) 修改内存字节 e address f (fin) 预置一段内存 f range list g (Go) 执行程序 g [=address][address...] h (Hexavithmetic) 制算术运算 h value value i (Input) 从指定端口地址输入 i pataddress l (Load) 读盘 l [address [driver seetor> m (Move) 内存块传送 m range address...

试写一段把片内RAM 50H~59H单元数据对应传输到60H~69H单元中的程序?
用汇编语言,计数器循环,读入寄存器,由寄存器写入内存。具体看指令系统。汇编版:MOV R0, #50H; 起始地址shu MOV R2, #10; 单元个数 LOOP: MOV @R0, #01H DJNZ R2, LOOP

相似回答