繁体   English   中英

各种MOV操作码有什么区别?

[英]What is the difference between the various MOV opcodes?

在参考指南中,我看到MOV是操作码88,89,8A,......等。为什么一条指令有多个操作码?

这是因为这些指令与CPU的观点略有不同。 虽然助记符是相同的,但操作数是不同的。 例如,在此参考中 ,指令列清楚地显示了这些操作码之间的差异。

它们适用于不同类型的来源和目的地。 对于CPU,将8和16/32位值移入和移出寄存器和存储器位置之间存在很大差异,它被编码为不同的操作码。

操作码列表

CPU需要能够解码指令的含义。

由于存在多种不同类型操作数的移动,CPU需要知道如何解释它们。 如果操作码相同,则无法判断以下位是寄存器号还是存储器地址。 更不用说具有相同助记符的不同类型的指令实际上使用不同的字节数进行编码,因此CPU甚至无法分辨下一条指令的开始位置。

有关详细信息,请参阅英特尔®64和IA-32架构软件开发人员手册中的附录B.

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM