跪求高手回答:计算机是如何判别中的“数据与指令”

caigua 2004-04-14 07:46:47
计算机中所有的数据与指令都是二进制的 ,那么当计算机从内存读取二进制的代码时 ,是怎样区分 数据 与 指令的呢?
这是我们老师出的一道题目,好像有点难度?
...全文
305 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
gulongl6 2004-04-14
  • 打赏
  • 举报
回复
在内存中,所有数据都是二进制代码,根本就没有数据和指令的区分。
只是cpu会把CS:IP指向的代码当成指令来执行
sheep51 2004-04-14
  • 打赏
  • 举报
回复
如果是汇编在多机通讯模式下,那么最后一位也就是D8位是1代表地址,是0代表数据。
yangpeng98 2004-04-14
  • 打赏
  • 举报
回复
我同意计算机是通过cs:ip来取得可执行指令的。你可以在debug下修该 cs 和ip 内容指向你的数据段。
allen_wang 2004-04-14
  • 打赏
  • 举报
回复
"当计算机从内存读取二进制的代码时"
计算机从内存取内容是会分成不同的周期的,每一条完整的指令执行周期中分为了取指令周期(取cs:eip内容),然后根据取出的指令,向内存中取数据(内存访问周期),如果需要的话(通过数据段)。大概是这样,具体的看看组成原理的书。
计算机是不能区分代码和数据的。你如果将cs:eip指向的是真正的数据区域的话,他也会将这些数据“尽量”理解成代码执行,实在无法匹配成指令的就会报错。
W32API 2004-04-14
  • 打赏
  • 举报
回复
CPU 通过 CS:EIP 自动装载的东西叫指令,其它都是数据
newer007 2004-04-14
  • 打赏
  • 举报
回复
计算机有3大总线,你不知道吗?其中就有地址总线和数据总线,一般是从地址总线取地址,从数据总线取数据。
还有不要动不动就跪求什么的,男儿膝下有黄金,就算你不懂不会的问题,也最好保持一个平常心态去问去学习。我的一点建议,希望你考虑一下。
romyks 2004-04-14
  • 打赏
  • 举报
回复
计算机只是根据PC的值取出相应的二进制数据若是指令就执行,不能执行的话产生一个非法指令中断
caigua 2004-04-14
  • 打赏
  • 举报
回复
多谢高手们的回答,这题目是我们单片机老师给出的,我们正讲到单片机存储空间的扩充
不知道各位高手还有什么补充吗?
memery 2004-04-14
  • 打赏
  • 举报
回复
内存中有指令,有数据,还有地址
以程序计数器为地址取出的一定是指令(PC的内容送地址总线)。
指令送指令译码器后,由指令诠释下面取的是数据还是地址。指令按不同的寻址方式去取数据。如直接寻址从内存取回的就是数据,而间接寻址从内存取回的还是个地址,再以该地址去内存取回的才是数据。
whour 2004-04-14
  • 打赏
  • 举报
回复
觉得对于计算机来讲,所有的数据对于它来说都是一样的,没所谓指令与数据之分。

不同的仅是cs:ip所指向的CPU就认为是指令,根据所指向指令的要求判断其后是数据还是指令。如果这条指令需要两个操作数,那么,后两个字节就是数据,如果该指令只需要一个操作数,那么,后一个字节就是数据

同样,我们也可以把CS:IP修改为任意地址,这时个计算机就会执行一些不可预知的指令,会造成不可预知的后果。

21,458

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧