为什么cs的装载不能自动装载?

fangsuwen123 2007-05-02 10:19:19
为什么cs的装载不能自动装载?
...全文
208 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
mengshijie_1981 2007-05-06
  • 打赏
  • 举报
回复
正如楼上所说的,Intel的处理器为了保证其健壮性,故不允许直接修改CS和IP的值,而直能通过CPU提供的安全的方法来改变它们的值,这种做法和Windows NT/2000/XP为了保证系统的健壮性而提供API供用户调用,而不允许直接访问硬件是同一个道理.
zara 2007-05-06
  • 打赏
  • 举报
回复
这个意思是说, CS 和 IP 都是不能直接赋值的. 它们的改变必需经过间接的方法, 比如转移指令, 调用返回指令等的来实现. 这个主要是由于 CS:IP 的关键性决定的吧. 如果可以直接赋值, 稍有不甚, 程序就失控了, 后果太过严重. 所以通过间接的手段以增加行为的确定性.
mengshijie_1981 2007-05-05
  • 打赏
  • 举报
回复
首先CS:IP是CPU初始化时(可以认为是开机时或者主板供电时)加载的。用指令也可以更新CS:IP的值,如jmp、call、ret等。CS:IP确实是用来寻址指令的,但CPU可以通过执行寻址到的指令来改变CS:IP的值。
JeanChenYu 2007-05-05
  • 打赏
  • 举报
回复
push word ptr valueofcs
push word ptr valueofip
ret

these 3 instructions can load cs:ip.
fangsuwen123 2007-05-05
  • 打赏
  • 举报
回复
我正在学习组成原理,是大一的学生.我们学的是Intel系列的,以80x86CPU为硬件背景,以MASM5.0-MASM6.0为"汇编"环境的.在这样的条件下为什么CS的装载不能够用执行几条指令来装载呢?我看了书上的解释是这样的,"为载入CS,IP的新值需要执行几条指令,而执行指令又必须按照CS和IP来寻找指令",看完之后觉得很头晕,不知其所云?各位前辈能否解释一下呢?后生在这里谢谢大家啦
hustsatellite 2007-05-05
  • 打赏
  • 举报
回复
cs可以自动装载,ds不可以,这是硬件问题
mymtom 2007-05-04
  • 打赏
  • 举报
回复
什么操作系统,什么格式的执行文件?
mengshijie_1981 2007-05-03
  • 打赏
  • 举报
回复
能不能把问题说清楚详尽些?
大熊猫侯佩 2007-05-02
  • 打赏
  • 举报
回复
what mean?

21,500

社区成员

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

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