跪求高手回答:计算机是如何判别中的“数据与指令”一下子好像还真想不明白

caigua 2004-04-14 07:53:52
计算机中所有的数据与指令都是二进制的 ,那么当计算机从内存读取二进制的代码时 ,是怎样区分 数据 与 指令的呢?
这是我们老师出的一道题目,好像有点难度?
...全文
44 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
honbo 2004-06-09
  • 打赏
  • 举报
回复
其实很简单,在取指令周期取得就是指令,读数据周期读的就是数据了。
liangpd 2004-04-18
  • 打赏
  • 举报
回复
这个是计算机组成原理的问题吧!
随便指令和数据存放的格式一样,但是访问他们的时机不同
在取指令时期,cpu通过指令流取指令,存放在指令寄存器,
然后解释并执行指令,在执行指令时期,cpu通过数据流取数据,
存放在数据寄存器(忘了是不是这个寄存器,自己查查看)。
所以指令流取的是指令,数据流取的是数据
iceleighton 2004-04-15
  • 打赏
  • 举报
回复
启动的时候当然第一个加载的是指令,代码段的数据是以堆栈的数据结构存储的临时变量。
这些概念已经2,3年没看过了,只能说个大概。不正确之处,感谢兄弟们的指正。
kl582 2004-04-15
  • 打赏
  • 举报
回复
楼上的兄弟,启动的时候计算机怎么知道他加载的就是代码,而不是数据。而且在代码段也有数据,学计算机的都知道阿。
计算机记载的时候根本不区分代码和数据。计算机加载的第一条肯定是指令,然后根据这条指令去取二进制数,如果这条指令要取操作数,那么取出来的就是操作数;如果这条指令要取下一条指令,那么取出来得就是指令。
把指令和数据分开放是为了安全和逻辑结构清晰。
不执行取指令的指令,怎么把指令和数据加载到内存呢。所以计算机在启动的时候就已经把代码加载到内存中是错误的。
iceleighton 2004-04-14
  • 打赏
  • 举报
回复
简单,指令和数据在不同的内存段。去看看编译原理就明白了,代码在程序启动时就已经
加载在内存的代码段中了,然后程序在执行的时候会在内存的数据段中开堆栈存储数据。

2,633

社区成员

发帖
与我相关
我的任务
社区描述
WebSphere 是 IBM 的软件平台。它包含了编写、运行和监视全天候的工业强度的随需应变 Web 应用程序和跨平台、跨产品解决方案所需要的整个中间件基础设施,如服务器、服务和工具。
社区管理员
  • WebSphere社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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