|
主题 : : CS寄存器跟IP寄存器为什么一定是4位的 [待解决] |
回复[ 7次 ]
点击[ 468次 ] | |
|
|
|
|
[帖 主]
[ 发表时间:2007-10-20 16:11 ]
[引用]
[回复]
[ top ] | |
荣誉值:10
信誉值:6
注册日期:2007-10-20 14:34 |
都说寄存器有16位有32位的,那什么段寄存器一定要用xxxx:xxxx的形式存放呢,如果是先进一点的CPU,是不是可以多出一两个位啊 | | |
|
|
|
|
[第1楼]
[ 回复时间:2007-10-20 22:25 ]
[引用]
[回复]
[ top ] | |
荣誉值:179
信誉值:6
注册日期:2007-07-09 19:18 |
32位的cpu寻址能力强了可寻址范围到达了4G.
CS IP是16位cpu中的寄存器所以是16位的. | | |
|
|
|
|
[第2楼]
[ 回复时间:2007-10-20 23:19 ]
[引用]
[回复]
[ top ] | |
荣誉值:10
信誉值:6
注册日期:2007-10-20 14:34 |
哦我明白了,他出厂时就这么定了,如果以后有可以处理更长位的寄存器CPU出现了,那这些寄存器就会有一个新名字了,不论是什么CPU,只要标明是CS跟IP那都是用1230:00C8这样方式来说明存放了123C8H这个数据对吧?
但我还不明白 会不会出现一种可以一次处理5位的寄存器啊?就是不用再用起始地址x16 + 段地址这种方式
比如123C8这个数,它是5位的,由于寄存器的限制它才要用起始地址x16 + 段地址这种方法折开来存放,但是现在CPU都发展了这么多年了,以后能出现一次过处理5位的寄存器吗? | | |
|
|
|
|
[第3楼]
[ 回复时间:2007-10-21 22:30 ]
[引用]
[回复]
[ top ] | |
荣誉值:179
信誉值:6
注册日期:2007-07-09 19:18 |
现在的cpu都是32位64位的都超过了5位了.呵呵.
现在的cpu寻址方式比较复杂,等帖主学好了16位的再研究跟复杂的寻址方式吧.哈. | | |
|
|
|
|
[第4楼]
[ 回复时间:2007-10-26 22:47 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2007-10-22 14:47 |
计算机能识别的就是二进制,因此很多硬件的设计必然也要符合二进制的运算规律,能在处理问题上带来更大的方便,一次处理5位的寄存器不是不可以设计,而是设计出来了,给计算机的整体设计和技术带来了极大的麻烦,人们设计的原则应该是简单适用,能够用一种简单的方法处理问题,为什么要去弄一个复杂的方法出来,那不是自找麻烦吗 | | |
|
|
|
|
[第5楼]
[ 回复时间:2007-10-27 02:23 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2007-10-03 16:06 |
同意楼上的说法,电脑只用高\低电压(或电流的有或无,现实中接近无)来表示0或1,简单的就是好的. | | |
|
|
|
|
[第6楼]
[ 回复时间:2007-11-01 11:08 ]
[引用]
[回复]
[ top ] | |
荣誉值:19
信誉值:0
注册日期:2007-10-31 16:24 |
首先说明一点,CS和IP并不是4位的,8086CPU的CS和IP是16位的。4位二进制数用一个16位数表示,就出现了××××,同时表示CS:IP就是××××:××××了。 | | |
|
|
|
|
[第7楼]
[ 回复时间:2007-11-19 18:59 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2007-10-10 12:00 |
上面着个朋友说的很对,CS和IP并不是4位的,在8086CPU中他们是使用16位,用4位的二进制数表示他,表示它的二进制数是4为的. | | |