esi与edi
㈠ 汇编语言 esi,edi寄存器问题
都属于通用寄存器,所以一般场景下都可以随便用。就是有些传送指令规定了esi是源,edi是目的
㈡ MOV [EDI+ESI],10H可以吗
不可以
1.操作数宽度不明
2.基址/变址寄存器不能同时出现在统一操作数寻址
㈢ EDI和ESI能否像一般寄存器那样加减乘除
刚才在debug里面试过了。可以。可以执行的
㈣ edi,esi寄存器是什么寄存器有什么作用
EDI和ESI分别是16位寄存器DI和SI的32位扩展
它们是目的变址寄存器和源变址寄存器,用于串操作指令中。
同时,它们也可以作为通用寄存器使用。
㈤ 这段汇编代码是什么意思,赋值过来又赋值过去的,怎么找到esi edi的来源呢
这就是内存拷贝啊
esi指向原内存首地址,edi指向目标内存首地址,
esi和edi应该是运行是确定的,用gdb调试一下就知道是什么值了
㈥ 麻烦找出汇编语言中这个指令的错误:mov [esi],[edi]
MOV指令中,源操作数和目的操作数不能同时为存储器操作数。
㈦ 汇编 movsd 后edi 和 esi为什么会全加4
MOVSD是 MOVS DWORD PTR ES:[EDI],DWIRD PTR DS:[ESI]的缩写。
MOVSD一次复制4字节所以EDI和ESI全加专4。
DWORD 4字节,属WORD 2字节,BYTE 1字节。
㈧ 汇编中eax,ecx,edx,ebx,esp,ebp,esi,edi,eip分别是什么有什么用
这些是32位的CPU中32位的寄存器的名字。
寄存器是CPU内部的用于运行中专暂存数据的存储单属元。
在PC用的16位CPU 8086、8088中,寄存器的名字分别是AX(累加器),BX(基址寄存器),CX(计数寄存器),DX(数据寄存器),SP(堆栈指针),BP(基址指针),SI(源变址寄存器),DI(目的变址寄存器),IP(指令指针),等等……
这些寄存器除了从名字可以看得出来的用途以外,一部分寄存器也可以作为通用的一般数据寄存使用。具体每个寄存器的功能要与各种具体的指令关联起来才能理解清楚。
在386以上的32位CPU中,这些寄存器扩展成了32位的,名字就是在原来16位的名字前面加一个字母E,变成了EAX,EBX,…………
㈨ 反汇编MOV DWORD PTR DS:[ESI+62C],EDI是什么意思
dwore ptr 表示占用两个字节的大小
ds:[esi+62c] 表示内存的地址 其中ds是段地址 [esi+62c]是偏移地址
edi 它就是寄存器了
所以 MOV DWORD PTR DS:[ESI+62C],EDI 就是将 edi 中的数据存储到内存中 地址为ds:[esi+62c]到 ds:[esi+62e]
㈩ MOVS DWORD PTR ES:[EDI],DWORD PTR DS:[ESI]什么意思
DWORD PTR ES:[EDI],将ES:[EDI]这个内存强制转换为dword双字类型,PTR就是转换符,DWORD为双版字类型,在汇编中有BYTE,WORD,DWORD几种变量类型,分权别对应1,2,4个字节。
整个语句的意思就是把
DWORD PTR DS:[ESI】内存单元的值传送到DWORD PTR ES:[EDI]单元保存,因为内存单元一般是2个字节的,这里强制转换为4个字节!
MOV 就是传送子令