可能是16位机器上的32位整数?

时间:2012-10-22 03:42:38

标签: c compiler-construction embedded

只是想知道是否可能。如果是,除编译器仿真层之外还有其他方法吗?

由于

2 个答案:

答案 0 :(得分:5)

它依赖于处理器。某些处理器具有操作寄存器对的特殊指令(例如,8位AVR指令集具有16位寄存器对的指令)。在没有这种本机支持的处理器上,编译器通常会发出一次使用寄存器对的指令(例如,这通常是为了支持32位处理器上的64位数字)。

答案 1 :(得分:4)

是的,有可能。查看70年代的Z80作为可以操作16位值的8位处理器的示例。

确保您知道“16位处理器”的含义,因为我发现很多人对此有误解。这是否意味着操作码大小,因为某些处理器具有可变宽度操作?这是否意味着寻址大小?它是否意味着可以原生操作的最小值/最大值?

就编译时而言,当然。查看arbitrary large number libraries(又名“大笨蛋”)。