为什么目的操作数不能是立即数?

<1>为什么目的操作数不能为立即数?(是结果没有地方存么?)

<2>为什么段寄存器之间不能传递数据?

<3>为什么目的操作数不能为段寄存器?但有的大学教程说除了cs外,别的可以,真把我搞糊涂了.

<4>为什么两存储器地址间不能传送数据?

解答:

你的问题是初学者常见的问题。问题的解答很简单,处理器设计时已经确定这样实现,无法改变。


具体来说:
<1>为什么目的操作数不能为立即数?(是结果没有地方存么?)
立即数是编码在处理器指令代码中的,而处理器指令代码执行时通常禁止修改。所以,结果无法存在指令代码中。

<2>为什么段寄存器之间不能传递数据?
段寄存器的改变会影响程序的执行,不应该随意改变。所以,设计师考虑不设计这个功能的指令。毕竟,设计一条指令就需要具有相应的实现电路。

<3>为什么目的操作数不能为段寄存器?但有的大学教程说除了cs外,别的可以,真把我搞糊涂了.
少数几个指令允许段寄存器为目的操作数,例如MOV和POP指令。但通常不要改变CS、即将CS为目的操作数,因为这样程序执行的位置就改变了。绝大多数指令都不把段寄存器作为操作数,不管是目的操作数还是源操作数,例如算术逻辑运算指令。

<4>为什么两存储器地址间不能传送数据?
如果设计两存储器地址互相传送数据,在指令代码中需要两个指明存储器地址的字段,通常会大大增加指令代码的长度,还会增加指令解码的难度和电路复杂性。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值