在计算机执行指令的前一刻,CPU 需要知道需要处理的数据的位置。那么这个位置有哪些?

有点类似这个问题:在执行指令的前一刻,数据可以存放的位置?

以这书本涉及的程度,首先想到的就是寄存器了。其次就是内存。

可以先看下标准答案:

  1. 立即数(idata)
  2. 寄存器
  3. 段地址(SA)和偏移地址(EA)

可见猜中了后两个,那么第一个立即数是什么意思?

“立即”配上这里的 i 首先想到的单词就是 immediate了。于是 google 到这篇 wiki

Assembly_language,其中这段:

Each instruction typically consists of an operation or opcode plus zero or more operands. Most instructions refer to a single value, or a pair of values. Operands can be immediate (value coded in the instruction itself), registers specified in the instruction or implied, or the addresses of data located elsewhere in storage.

翻译成中文就是

每个指令通常由一个运算或者运算码加上零或零个以上的运算值组成。大部分的指令涉及到单个数值,或者一组数值。运算值可以是立即的(指令本身包含了运算值),也可以是由指令中的寄存器显式指定的(或者隐式),或者是用于表示存储于其他存储体上的数据的地址

所以 idata 就是指令本身包含了运算值,那么在执行的前一刻,数据自然就是在CPU的指令缓冲器中了。

Posted on 2015-08-04 19:08  mconintet  阅读(597)  评论(0编辑  收藏  举报