鱼C论坛

 找回密码
 立即注册
查看: 2240|回复: 1

16位指令和32位指令的区别

[复制链接]
发表于 2020-5-5 10:49:17 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
有没有大佬知道为什么thumb指令集只能访问0-7寄存器,而thunmb2可以访问0-15位寄存器的原因呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-5 11:09:35 | 显示全部楼层
所谓16位、32位、64位等术语有时指总线宽度,有时指指令宽度(在定长指令集中),而在操作系统理论中主要是指内存寻址的宽度。如果内存的寻址宽度是 16位,那么每一个内存地址可以用16个二进制位来表示,也就是说可以在64KB的范围内寻址。同样道理32位的宽度对应4GB的寻址范围,64位的宽度对应16 Exabyte的寻址范围。内存寻址范围并非仅仅是对操作系统而言的,其他类型的软件的设计有时也会被寻址范围而影响。但是在操作系统的设计与实现中,寻址范围却有着更为重要的意义。在早期的16位操作系统中,由于64KB的寻址范围太小,大都都采用“段”加“线性地址”的二维平面地址空间的设计。分配内存时通常需要考虑“段置换”的问题,同时,应用程序所能够使用的地址空间也往往有比较小的上限。 在32位操作系统中, 4GB的寻址范围对于一般应用程序来说是绰绰有余的,因而,通常使用一维的线性地址空间,而不使用“段”。

64位计算与32位计算的最大区别在于“寻址能力”和“数据处理能力”。举一个简单的例子:一个5位的小计算器能够计算的最大数字范围是“99, 999”,对于日常计算家用、买菜这样的工作应该够用了,但是对于银行、商场、科研、设计等需要处理“大量”、“复杂”数据的场合这样的计算器显然不能胜任,需要10位甚至12位的计算器。64位计算平台基于64位长的“寄存器”,提供比32位更大的数据带宽和寻址能力。面对今天日益复杂的应用程序和日益庞大的数据量,64位服务器的普及应用愈来愈迫切。

至于hhumb:https://www.cnblogs.com/Mr-Shadow/archive/2013/03/09/2951532.html
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-11 19:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表