首页 > 代码库 > 汇编笔记三【寻址公式】

汇编笔记三【寻址公式】

一、寻址方式一:

   立即数寻址:[立即数]

   例:

    读取内存的值:

    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]

汇编笔记三【寻址公式】