(1)8086CPU提供了栈操作机制,方案如下。
在SS、SP中存放栈顶的段地址和偏移地址;
提供入栈和出栈指令,它们根据SS:SP指示的地址,按照栈的方式访问内存单元。
(2)PUSH指令的执行步骤:①SP=SP-2;②向SS:SP指向的字单元中送入数据。
(3)POP指令的执行步骤:①从SS:SP指向的字单元中读取数据;②SP=SP+2。
(4)任意时刻,SS:SP指向栈顶元素。
(5)8086CPU只记录栈顶,栈空间的大小我们要自己管理。栈顶的变化范围最大为:0~FFFFH。
(6)用栈来暂存以后需要恢复的寄存器的内容时,寄存器出栈的顺序要和入栈的顺序相反。
(7)push、pop实质上是一种内存传送指令,注意它们的灵活应用。
- [游客] 3楼正解 09/02 21:29
- [smallwolf] mul al执行后SF=0,计算结果为ax=0090h,ax是个16位寄存器,最高位为计算结果为0, 10/19 12:45
- [573085020] 呵呵!不错 10/17 21:20
- [smallwolf] 要将正数转成对应的负数,其实只要用0减去这个数就可以了。比如,-8其实就是0-8。 已知8的二 10/17 11:45
- [smallwolf] 受教啦!以后一定会写清楚注释的,课设1还没看到呢! 10/14 23:04
- [njutyangxiao] 记得写程序要有注释,把每一步条指令的目的是什么都写写。就像这道题为什么ax中的值是1010呢?因为c 10/14 22:05
- [njutyangxiao] 关键是要明白它为什么能够正确执行。重点是要注意 jmp short s1的机器码。那你就能理解他为 10/14 21:56
- [smallwolf] 基本三术-忍术、体术、幻术 <<忍 术>> 将体内的查克拉提炼出来使用,或是让术者肉 10/13 18:50
- [smallwolf] 掌仙术-兜使用的回复术,不论内伤外伤都可靠放出的查可拉达到惊异的回复速 度。即使在医疗班中,能使用的 10/13 18:49
- [smallwolf] 凯┌日向 10/13 18:48