在X86汇编程序中进行获取的最短方法?

时间:2010-03-30 22:08:20

标签: assembly x86 fetch

在X86汇编程序中从内存中获取值的最短方法是什么?

3 个答案:

答案 0 :(得分:4)

你的意思是除了mov寄存器,[地址]?

答案 1 :(得分:4)

汇编程序haw没有解决方法。 所有汇编程序指令都是严格专用的。

mov AL, 0x12

将立即加载值0x12以注册AL

xor  AL,AL

AL寄存器中的操作结果为0

lodsb

将从DS加载字节:[ESI](或DS:[SI]在16位CPU下)内存地址到AL

mov AL,[ESI]

将从DS加载字节:[ESI](或DS:[SI]在16位CPU下)内存地址到AL

mov AL,[0xFFFF]

将从DS加载字节:[0xFFFF]存储器地址到AL

pop AX

将从SS加载字节:[ESP](或SS:[SP]在16位CPU下)内存地址到AL

in AL, 0x123

将从端口地址0x123

加载字节
xlatb [EBX + AL]

将从DS加载字节:[EBX + AL]内存地址

...

答案 2 :(得分:2)

好的,最简单的方法是弹出寄存器,如pop eax,这是一个字节的指令 但是这只能在特殊情况下使用,其中堆栈指针ESP将指向缓冲区,
并且在完成使用它的代码之前,您可能不会将堆栈用于其他目的。

标准方法是使用mov指令。