首页 > 代码库 > 汇编笔记三【寻址公式】
汇编笔记三【寻址公式】
一、寻址方式一:
立即数寻址:[立即数]
例:
读取内存的值:
MOV EAX,DWORD PTR DS:[0xFFFFFFFF]
向内存中写入数据:
MOV DWORD PTR DS:[0xFFFFFFFF],eax
获取内存地址:
LEA EAX,DWORD PTR:DS[0xFFFFFFFF]
二、寻址方式二:
寄存器寻址:[reg] reg代表寄存器,可以是8个寄存器中的任意一个
例:
读内存中的值:
MOV EAX DWORD PTR DS:[ECX]
向内存中写入数据:
MOV DWORD PTR DS:[EDX],0xFFFFFFFF
获取内存编号:
LEA EAX,DWORD PTR DS:[EDX]
三、寻址方式三
寄存器+立即数寻址:[reg+立即数]
例:
读取内存的值:
MOV EAX,DEWORD PTR DSl[ECX+4]
向内存中写入数据:
MOV DEWORD PTR DS:[EDX+0xC],0x12345678
获取内存地址:
MOV EAX,DWORD PTR DS:[EDX+4]
四、寻址方式四:
寄存器+寄存器*偏移地址 寻址:[reg+reg*{1,2,4,8}],注意:后面只能乘以1,2,4,8其中一个
例:
读取内存的值:
MOV EDX,DWORD PTR DS:[EAX+ECX*4]
向内存中写入数据:
MOV DWORD PTR DS:[EAX+ECX*4],0x12345678
取内存地址:
LEA EAX,DWORD PTR DS:[EAX+ECX*4]
五、寻址方式五:
寄存器+寄存器*偏移地址+立即数 寻址:[reg+reg*{1,2,4,8}+立即数]
例:
读取内存的值:
MOV EDX,DWORD PTR DS:[EAX+ECX*4+4]
向内存中写入数据:
MOV DWORD PTR DS:[EAX+ECX*4+4],0x12345678
取内存地址:
LEA EAX,DWORD PTR DS:[EAX+ECX*4+4]
汇编笔记三【寻址公式】