【2020.11.14】在汇编中内存地址的五种形式

  • 形式一:立即数

读取内存的值:
MOV EAX, DWORD PTR DS:[0X13FFC4]

向内存中写入数据:
MOV DWORD PTR DS:[0X13FFC4], EAX

  • 形式二:[REG]

  • REG代表寄存器 只能是8个通用寄存器中的任意一个

读取内存的值:
MOV EAX, 0x13FFD0
MOV EAX, DWORD PTR DS:[ECX]

向内存中写入数据:
MOV EDX, 0x13FFD8
MOV DWORD PTR DS:[EDX], 0x87654321

  • 形式三:[REG+立即数]

  • REG代表寄存器 只能是8个通用寄存器中的任意一个

读取内存的值:
MOV ECX, 0x13FFD0
MOV EAX, DWORD PTR DS:[ECX+4]

向内存中写入数据:
MOV EDX, 0x13FFD8
MOV DWORD PTR DS:[EDX+0xC], 0x87654321

  • 形式四:[REG+REG*{1,2,4,8}]

  • REG代表寄存器 只能是8个通用寄存器中的任意一个

  • 通用寄存器+通用寄存器*一个值。

    这个值只能是四种情况:1、2、4、8。

    高级语言中编写的数组,就是这种形式。
读取内存的值:
MOV EAX, 0x13FFC4
MOV ECX, 2
MOV EDX, DWORD PTR DS:[EAX+ECX*4]

向内存中写入数据:
MOV EAX, 0x13FFC4
MOV ECX, 2
MOV DWORD PTR DS:[EAX+ECX*4], 87654321
  • 形式五:[REG+REG*{1,2,4,8}+立即数]

  • REG代表寄存器 只能是8个通用寄存器中的任意一个

  • 通用寄存器+通用寄存器*一个值+立即数。

    这个值只能是四种情况:1、2、4、8。

读取内存的值:
MOV EAX, 0x13FFC4
MOV ECX, 2
MOV EDX, DWORD PTR DS:[EAX+ECX*4+4]

向内存中写入数据:
MOV EAX, 0x13FFC4
MOV ECX, 2
MOV DWORD PTR DS:[EAX+ECX*4+4], 87654321

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值