Closed scbzfarmingtest closed 2 years ago
计组第二章第一列无符号数
请问这里寄存器位数是指?比如8个寄存器,3位无符号数来指代(类似内存地址)?
这里应该指的是:寄存器的位数反映了无符号数的表示范围,如8位寄存器,其无符号数表示范围为0-256。 这个笔记做的比较简略,之后会考虑可读性加上一些解释说明。
计组第二章第一列无符号数
请问这里寄存器位数是指?比如8个寄存器,3位无符号数来指代(类似内存地址)?
一般可以用寄存器的位数来判断机器字长。比如一个32位地址寄存器MAR,那他可以表示的地址范围就是0-2^32-1,而这个范围就是32位无符号数表示的范围。
谢谢 抱歉再问一个。请问”寄存器的位数也叫机器字长“这句话是对的吗? 因为王道有这个题: 尽管后面也有说: 所以不选是因为不是定义尽管选项说法没错?还是并不完全对?比如16位机器是不是可以拥有32位寄存器?
抱歉没有自我判断能力,但是这有篇文章。内部寄存器、外设寄存器和内存的区别。 是不是应该说:”cpu内部的寄存器位数就是机器字长“,单说”寄存器“未必正确?
谢谢
抱歉再问一个。请问”寄存器的位数也叫机器字长“这句话是对的吗?
因为王道有这个题:
尽管后面也有说:
所以不选是因为不是定义尽管选项说法没错?还是并不完全对?比如16位机器是不是可以拥有32位寄存器?
不好意思,这句话我的表述有点问题。准确的说法应该是:“一般情况下可通过寄存器的位数判断机器字长”。机器字长就是计算机一次能处理的二进制数长度。 至于你说的“16位机器是否可以拥有32位寄存器”。按我的理解应该是不能的,就好比64位计算机可以用64位的操作系统,也可以用32位的操作系统。但是32位计算机只能用32位的os,不能用64位的os。不过我也不清楚我的说法是不是正确。
抱歉没有自我判断能力,但是这有篇文章。内部寄存器、外设寄存器和内存的区别。
是不是应该说:”cpu内部的寄存器位数就是机器字长“,单说”寄存器“未必正确?
感觉可以这样理解。机器字长的大小决定了计算机寄存器最大有多大。比如机器字长32位,那寄存器最大就是32位的,但其实该计算机内部还有可能有8位的,16位的寄存器。 原博客的表述可能都默认最大寄存器的位数是机器字长。一般都不会计较这些吧。 其实你可以把这里说的寄存器当作“通用寄存器”。而通用寄存器的长度取决于机器字长。
抱歉没有自我判断能力,但是这有篇文章。内部寄存器、外设寄存器和内存的区别。
是不是应该说:”cpu内部的寄存器位数就是机器字长“,单说”寄存器“未必正确?
可以参考下这篇博客 http://t.csdn.cn/VwtWs
好的谢谢!我又看了下,似乎关键在于整数运算和通用寄存器一般等于机器字长。比如浮点数会更多。比如这里说x86有8个80位浮点寄存器。
好的谢谢!我又看了下,似乎关键在于整数运算和通用寄存器一般等于机器字长。比如浮点数会更多。比如这里说x86有8个80位浮点寄存器。
对的,我觉得这个理解是透彻且正确的。👍
刚才看2020年好像考了机器字长,所以又详细查了下: 不同架构下,ALU可以属于寄存器,也可以不含寄存器(此时叫做虚拟寄存器) ALU的输入是机器字长(也是内部数据总线的根数) 除了通用寄存器和整数计算的寄存器(如果ALU是寄存器,显然包含在内),其他的位数一般都等于机器字长。见:寄存器的分类
主要的判定办法好像就是寄存器的作用。比如整数加减运算一定是一个周期完成的,而浮点数(对阶、求和、规格化、舍入、溢出判断)显然不是一个周期。指令寄存器、段寄存器,从指令系统可以知道也不一定是一个周期完成。指针和变址寄存器、标志寄存器等作用和数据总线不接边,而且甚至有些可以用通用寄存器(不一定是32位的E,X还是H),所以也不一定等于机器字长
刚才看2020年好像考了机器字长,所以又详细查了下:
不同架构下,ALU可以属于寄存器,也可以不含寄存器(此时叫做虚拟寄存器)
除了通用寄存器和整数计算的寄存器(如果ALU是寄存器,显然包含在内),其他的位数一般都等于机器字长。见:寄存器的分类
主要的判定办法好像就是寄存器的作用。比如整数加减运算一定是一个周期完成的,而浮点数(对阶、求和、规格化、舍入、溢出判断)显然不是一个周期。指令寄存器、段寄存器,从指令系统可以知道也不一定是一个周期完成。指针和变址寄存器、标志寄存器等作用和数据总线不接边,而且甚至有些可以用通用寄存器(不一定是32位的E,X还是H),所以也不一定等于机器字长
说的很详细也易懂!感谢分享!
计组第二章第一列无符号数 请问这里寄存器位数是指?比如8个寄存器,3位无符号数来指代(类似内存地址)?