汇编网首页登录博客注册
angelia的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
学习动态
最新评论
最新留言
好友圈
文章收藏
友情链接

[2013-02-28 12:44] 如何确定内存中的信息哪些是数据,哪些程序.

如何确定内存中的信息哪些是数据,哪些程序?数据和程序有区别吗?
刚刚开始学汇编,以下是我找到的,不知道是否正确。
数据和程序在内存中是没有区别的,它们都是内存中的数据,当EIP指针指向哪,CPU就加载那段内存中的数据,如果是不正确的指令格式,CPU就会发生错误中断. 数据和程序在内存中都是已2进制的数据存贮,只有当2进制的数据被CS:IP指向时,才成为可执行的指令或程序。
在现在CPU的保护模式中,每个内存段都其描述符,这个描述符记录着这个内存段的访问权限(可读,可写,可执行).这最就变相的指定了哪个些内存中存储的是指令哪些是数据.

CS(CodeString)指向的是指令段地址,指令段寄存器
DS(DataString)指向的是数据段地址,数据段寄存器
SS(StackString)指向的是栈顶段地址,栈段寄存器

内存中的数据和程序没有区别,说都是以2进制形式存储的!
CS指向的段地址里,存的是指令
DS指向的段地址里,存的是数据
评论次数(0)  |  浏览次数(266)  |  类型(汇编作业) |  收藏此文  | 
 
 请输入验证码  (提示:点击验证码输入框,以获取验证码