x86寻址模式中常量和直接寻址之间的差异

时间:2015-03-08 14:37:39

标签: assembly x86

我想知道在使用操作数进行寻址模式时汇编代码之间的区别。例 mov ax,25 //其中25被视为常数 mov ax,[1000] // [1000]被视为记忆位置

我的问题是,常量和内存位置之间的区别是因为方括号[1000]还是还有别的东西。并且mov(操作码)是cpu指令集的一部分吗? 将会感激一些答案。谢谢!

1 个答案:

答案 0 :(得分:1)

根据您的汇编程序,您必须使用适当的语法,以便区分常量和内存位置。一些汇编程序使用您显示的语法,一些汇编程序需要$前缀用于immediates,一些汇编程序使用ptr等。请参阅汇编程序的文档。

mov是一个助记符,它根据操作数具有不同的机器代码表示。例如,您使用的mov ax, 25实际上mov r16, imm16具有操作码B8mov ax, [1000]可以是mov ax, moffs16,具有操作码A1。请参阅指令集参考。