16位处理器如何具有4字节大小的长整数?

16位处理器如何具有4字节大小的长整数?,第1张

概述我对16位CPU上的long int的大小有疑问.看看它的架构: 没有寄存器超过16位长.那么,long int怎么会超过16bits.事实上,根据我的任何处理器,数据类型的最大大小必须是通用寄存器的大小.我对吗? 是.事实上,C和C标准要求sizeof(long int)> = 4. * (在这种情况下,我假设CHAR_BIT == 8.) 这与32位机器上的64位整数相同.它的实现方式是使用两 我对16位cpu上的long int的大小有疑问.看看它的架构:

没有寄存器超过16位长.那么,long int怎么会超过16bits.事实上,根据我的任何处理器,数据类型的最大大小必须是通用寄存器的大小.我对吗?

解决方法 是.事实上,C和C标准要求sizeof(long int)> = 4. *

(在这种情况下,我假设CHAR_BIT == 8.)

这与32位机器上的64位整数相同.它的实现方式是使用两个寄存器来表示下半部分和上半部分.

加法和减法作为两个指令完成:

在x86上:

>添加:添加和adc,其中adc是“add with carry”
>减法:sub和sbb,其中sbb是“借用减去”

例如:

long long a = ...;long long b = ...;a += b;

会编译成类似的东西:

add eax,ebxadc edx,ecx

eax和edx是a的下部和上部.而ebx和ecx是b的下部和上部.

双字整数的乘法和除法更复杂,但它遵循相同的小学数学 – 但每个“数字”是处理器字.

总结

以上是内存溢出为你收集整理的16位处理器如何具有4字节大小的长整数?全部内容,希望文章能够帮你解决16位处理器如何具有4字节大小的长整数?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1219783.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存