隐含:在指令定义中隐式指定操作数。示例:CLA、CME、INP。
主要用于零地址(STACK-organized)和一地址(ACCUMULATOR-organized)指令。
立即数:操作数在指令本身中指定,主要用于常量。示例:ADD R1,#3,MUL R1,R2,#7
但问题是如何检查指令:
1) PUSH 3
和
2)LD 7
第一个是零地址指令(基于堆栈),第二个是累加器指令。在这两条指令中,操作数都在指令本身中定义。哪种寻址模式是首选,或者最能描述它们?
如何检查指令是隐含的还是立即的?
在x86隐含操作数的进一步的实例:SAHF,LAHF,和CPUID。
来源:https : //en.wikipedia.org/wiki/CPUID
在汇编语言中,CPUID 指令不接受显式参数,因为 CPUID 隐式使用 EAX 寄存器(有时是 ECX)来确定 EAX、EBX、ECX 和 EDX 中返回的信息。
来源:http : //www.felixcloutier.com/x86/LAHF.html
LAHF — Load Status Flags into AH Register
This instruction executes as described above in compatibility mode and legacy mode. It is valid in 64-bit mode only if …Run Code Online (Sandbox Code Playgroud) assembly instruction-set cpu-architecture cpu-registers mano-machine