手动计算指令大小

时间:2019-02-27 22:46:13

标签: assembly instructions instruction-set

我正在尝试学习如何将单个汇编指令手动转换为OP代码。我以PowerPC指令集为例,该指令集具有固定的4字节指令长度。以下示例是在我的参考文献中编写的:

One effect of fixed-size instructions is you can't load a 32-bit constant in a single instruction:
li r3, 0xabcdef  ; ERROR!  out of range!

这是我的问题:

1-您如何计算指令的长度?我假设您首先在PPC手册中找到了操作码li位模式?其余r3, 0xabcdef呢,如何将它们转换为二进制文件?我怎么知道这种交互的长度超过32位?

2-假设0xabcdef是一个整数的内存地址,则在对该指令进行编码时,汇编程序会将0xabcdef转换为其实际的int值还是对内存进行编码地址本身?

3-在执行之前,这整个指令是否已加载到CPU的一个寄存器中?如果是这样,为什么在64位计算机上会出现问题?他们没有64位寄存器吗?

0 个答案:

没有答案