cpu如何区别指令和数据,它们不都是二进制存储在计算机内么?
4个回答
展开全部
计算机加载的第一条肯定是指令,然后根据这条指令去取二进制数,如果这条指令要取操作数,那么取出来的就是操作数;如果这条指令要取下一条指令,那么取出来得就是指令。
把指令和数据分开放是为了安全和逻辑结构清晰。
随便指令和数据存放的格式一样,但是访问他们的时机不同 ,在取指令时期,cpu通过指令流取指令,存放在指令寄存器, 然后解释并执行指令,在执行指令时期,cpu通过数据流取数据, 存放在数据寄存器。 所以指令流取的是指令,数据流取的是数据。
其实很简单,在取指令周期取得就是指令,读数据周期读的就是数据了。
把指令和数据分开放是为了安全和逻辑结构清晰。
随便指令和数据存放的格式一样,但是访问他们的时机不同 ,在取指令时期,cpu通过指令流取指令,存放在指令寄存器, 然后解释并执行指令,在执行指令时期,cpu通过数据流取数据, 存放在数据寄存器。 所以指令流取的是指令,数据流取的是数据。
其实很简单,在取指令周期取得就是指令,读数据周期读的就是数据了。
东莞市友贸实业有限公司_
2023-11-22 广告
2023-11-22 广告
通过寻址方式来区别它们是指令还是数据的,具体到8051如下: 立即数寻址: MOV A,#123 ;123->A 寄存器寻址: MOV A,R1 ;r1->a 间接寻址: MOV A,@R1 ;r1指向的数据->A 以上是数据,下面是程序 ...
点击进入详情页
本回答由东莞市友贸实业有限公司_提供
展开全部
指令是有专门指令集的,与数据有区别的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
分两个方面说:
1可执行文件的角度:可执行文件分为许多段,一般.text存放代码,.data段存放数据,不同段是有不同属性的,例如.text段的属性是可执行的。这样就区别了代码和数据。
2.CPU指令有一个格式,一个指令包括了操作码(对应你的指令)和操作数(对应你的数据),而指令本身相对格式是固定的(可能变长)。所以CPU是很容易知道前几个二进制是什么指令,而根据这个指令又可以知道后面多少位是第一个数据,后面多少位是第二个数据。然后下一个指令的起始地址是直接存在IP寄存器里的。
1可执行文件的角度:可执行文件分为许多段,一般.text存放代码,.data段存放数据,不同段是有不同属性的,例如.text段的属性是可执行的。这样就区别了代码和数据。
2.CPU指令有一个格式,一个指令包括了操作码(对应你的指令)和操作数(对应你的数据),而指令本身相对格式是固定的(可能变长)。所以CPU是很容易知道前几个二进制是什么指令,而根据这个指令又可以知道后面多少位是第一个数据,后面多少位是第二个数据。然后下一个指令的起始地址是直接存在IP寄存器里的。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
计算机的操作主要是以 控制器和运算符下来进行的, 你说的是对的, 计算机也确实都是2进制下完成 控制器发出的指令,而控制器就是CPU 总体来讲就是 你输入的命令会传到 控制器那里也就是CPU,这里CPU并不知道这是什么命令,
之后到控制器这里它会识别出来是要存取东西还是....在发出指令给控制器。控制器接到指令,在命令运算符以2进制作出计算,
这里强调 命令和指令是不一样的。
之后到控制器这里它会识别出来是要存取东西还是....在发出指令给控制器。控制器接到指令,在命令运算符以2进制作出计算,
这里强调 命令和指令是不一样的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询