微机原理中进栈操作和弹出操作的区别是什么?

2025-03-23 10:56:43
推荐回答(2个)
回答1:

在8086系统中对于段寄存器的操作是有很多限制的,能直接对段寄存器操作的只有MOV的少数传送指令,并且很不灵活
首先 立即数不能直接传递至数据段或者附加数据段寄存器中

其次 不能实现段寄存器之间的直接数据传送
如MOV DS, ES

第三 不能向CS代码段寄存器传送数据,IP不能在任何指令中出现
如MOV CS , AX
以及MOV AX,IP
这都是错误指令

所以,不是说MOV指令不能向段寄存器传送数据,比如向DS传送时肯定可以的,你基本上可以在所有汇编程序中看到MOV DS AX这条指令,但是绝对不能向CS传送指令。

为什么有上面我说的第三条,因为向CS和IP涉及到了整个系统的核心安全,CS是代码段,它和DS,ES在地位上有很大区别。如果可以更改CS或者IP,那么入侵就太容易了,我自己写一个破坏程序,然后我更改你的CS或者IP,让程序转到我的破坏程序处执行就可以了。之所以不允许向CS和IP传送数据就是出于安全考虑。

无论你在哪个地方,绝对看不到MOV CS xx这条指令

回答2:

这种题老师也出! 就跟 问 日出 与 日落 的区别类似,无什么意义。