cpu如何区别指令和数据,它们不都是二进制存储在计算机内么?

2024-12-14 08:38:00
推荐回答(4个)
回答1:

  计算机加载的第一条肯定是指令,然后根据这条指令去取二进制数,如果这条指令要取操作数,那么取出来的就是操作数;如果这条指令要取下一条指令,那么取出来得就是指令。
把指令和数据分开放是为了安全和逻辑结构清晰。

随便指令和数据存放的格式一样,但是访问他们的时机不同 ,在取指令时期,cpu通过指令流取指令,存放在指令寄存器, 然后解释并执行指令,在执行指令时期,cpu通过数据流取数据, 存放在数据寄存器。 所以指令流取的是指令,数据流取的是数据。

其实很简单,在取指令周期取得就是指令,读数据周期读的就是数据了。

回答2:

指令是有专门指令集的,与数据有区别的。

回答3:

分两个方面说:

1可执行文件的角度:可执行文件分为许多段,一般.text存放代码,.data段存放数据,不同段是有不同属性的,例如.text段的属性是可执行的。这样就区别了代码和数据。

2.CPU指令有一个格式,一个指令包括了操作码(对应你的指令)和操作数(对应你的数据),而指令本身相对格式是固定的(可能变长)。所以CPU是很容易知道前几个二进制是什么指令,而根据这个指令又可以知道后面多少位是第一个数据,后面多少位是第二个数据。然后下一个指令的起始地址是直接存在IP寄存器里的。

回答4:

计算机的操作主要是以 控制器和运算符下来进行的, 你说的是对的, 计算机也确实都是2进制下完成 控制器发出的指令,而控制器就是CPU 总体来讲就是 你输入的命令会传到 控制器那里也就是CPU,这里CPU并不知道这是什么命令,
之后到控制器这里它会识别出来是要存取东西还是....在发出指令给控制器。控制器接到指令,在命令运算符以2进制作出计算,
这里强调 命令和指令是不一样的。