. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->寄存器(CPU工作原理)
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  CS寄存器跟IP寄存器为什么一定是4位的  [待解决] 回复[ 7次 ]   点击[ 468次 ]  
helloworld
[帖 主]   [ 发表时间:2007-10-20 16:11 ]   [引用]   [回复]   [ top ] 
荣誉值:10
信誉值:6
注册日期:2007-10-20 14:34
都说寄存器有16位有32位的,那什么段寄存器一定要用xxxx:xxxx的形式存放呢,如果是先进一点的CPU,是不是可以多出一两个位啊
cxn
[第1楼]   [ 回复时间:2007-10-20 22:25 ]   [引用]   [回复]   [ top ] 
荣誉值:179
信誉值:6
注册日期:2007-07-09 19:18
32位的cpu寻址能力强了可寻址范围到达了4G.

CS IP是16位cpu中的寄存器所以是16位的.
helloworld
[第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位的寄存器吗?
cxn
[第3楼]   [ 回复时间:2007-10-21 22:30 ]   [引用]   [回复]   [ top ] 
荣誉值:179
信誉值:6
注册日期:2007-07-09 19:18
现在的cpu都是32位64位的都超过了5位了.呵呵.
现在的cpu寻址方式比较复杂,等帖主学好了16位的再研究跟复杂的寻址方式吧.哈.
cnhnyu
[第4楼]   [ 回复时间:2007-10-26 22:47 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2007-10-22 14:47
计算机能识别的就是二进制,因此很多硬件的设计必然也要符合二进制的运算规律,能在处理问题上带来更大的方便,一次处理5位的寄存器不是不可以设计,而是设计出来了,给计算机的整体设计和技术带来了极大的麻烦,人们设计的原则应该是简单适用,能够用一种简单的方法处理问题,为什么要去弄一个复杂的方法出来,那不是自找麻烦吗
zjcjcj
[第5楼]   [ 回复时间:2007-10-27 02:23 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2007-10-03 16:06
同意楼上的说法,电脑只用高\低电压(或电流的有或无,现实中接近无)来表示0或1,简单的就是好的.
shanguianti
[第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就是××××:××××了。
calloy
[第7楼]   [ 回复时间:2007-11-19 18:59 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2007-10-10 12:00
上面着个朋友说的很对,CS和IP并不是4位的,在8086CPU中他们是使用16位,用4位的二进制数表示他,表示它的二进制数是4为的.
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved