注册 登录
编程论坛 汇编论坛

这是什么道理!?

最左边那个 发布于 2009-10-09 20:26, 651 次点击
书上有这么一句话:
指令的操作数字段就比较复杂了,如果操作数存放在寄存器中,则由于寄存器的数量较少,因而需要指定的操作数地址的位数就较少;但如果操作数存放在存储器里,那么一个存储单元的地址对8086就需要20位

如果操作数存放在寄存器中,则由于寄存器的数量较少,因而需要指定的操作数地址的位数就较少。
这一句我就不太明白了,寄存器较少,关寄存器地址的位数什么事啊!?寄存器少,寄存器的地址位数就要少嘛?
这就好像“箱子少,那么箱子就要小”,这是什么道理!?

3 回复
#2
onepc2009-10-09 21:32
指令的操作数字段就比较复杂了,如果操作数存放在寄存器中,则由于寄存器的数量较少,因而需要指定的操作数地址的位数就较少;但如果操作数存放在存储器里,那么一个存储单元的地址对8086就需要20位

不明白!!!!!!
那本书的啊?指令的操作数字段也不明白。

一个存储单元不是8位么?我记得内存是以字节为单位的。就是说8位。一个字节。
#3
chenaiyuxue2009-10-10 09:26
个人理解:用来寻址的地址位数是与要寻址的对象的大小(或说个数)有关的。比如CPU有四个寄存器,要访问它们只需要2位地址就可以了,分别用00、01、10、11;如果有8个寄存器就要用3位地址,000、001、010、011、100、101、110、111。所以书上才会说“由于寄存器的数量较少,因而需要指定的操作数地址的位数就较少”
#4
东海一鱼2009-10-10 11:26
3楼正解。

计算机编码受3各因素的影响:

1、体系:
精简指令集系统、复杂指令集系统。系统指令条目越多,编码指令越长。

2、地址总线、数据总线位数:
地址总线、数据总线位数越多,寻址指令长度越长。

3、寄存器数量:
寄存器数量越多,计算指令长度越长。
1