设堆栈段指针SP的初值为1000H,AX=2000H,BX=3000H (1)执行指令PUSH AX后,SP的值是多少? (2)再执行指

设堆栈段指针SP的初值为1000H,AX=2000H,BX=3000H
(1)执行指令PUSH AX后,SP的值是多少?
(2)再执行指令PUSH BX 及POP AX后,SP、AX和BX的值是多少?

学IBM PC机汇编的吧? AX,BX都是16位,两个字节,这是无疑问的;不过还是要假定,入栈时SP指针向高地址方向增加,因为有些机器,貌似是向低方向移动的;

(1) PUSH AX 后,SP向高地址方向,增加2个单位,因为PC机按字节编址的,AX是两个字节,你懂的~~于是,SP 值为 1002H;
(2)然后PUSH BX;后POP AX; 入一下,出一下,当然SP不变了,于是SP = 1002H;
前者是将BX的值压到栈中,后者是将这个值弹到AX中,于是,你又懂了,
BX = 3000H,AX= 3000H。
希望你真的懂了~~
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-02-27
push 从何处取得数据压栈(原数据不变)
pop 把栈内的数据出栈到哪儿(到哪儿哪儿数据覆盖)
push ax 指针指向sp-2=0FFE处(栈空时)
把bx=3000H压栈到ss:[0FFE]/ss:[0FFE]处 (16位)
sp=0FFE
pop bx
把栈内的内容3000H出栈到ax中,指针sp’=sp+2=0FFE+2=1000

答案:sp=0FFEH ax=3000H(原数据覆盖) bx=3000H
--------------------------------------------------------------------------------
PUSH AX后是把AX的值放入栈中,SP减一个字的长度也就是2个字节,变成0FFEH,AX,BX不变。
PUSH BX也是同义,SP变为1FFCH,AX,BX不变。
POP AX是把当前SS:SP的内容(也就是3000H)出栈并给BX,SP变为0FFEH,AX变为3000H,BX一直都没变,仍是3000H
希望你能明白,其实不难。本回答被网友采纳
第2个回答  2013-12-01
sp=0FFEH
第3个回答  2011-03-20
不对啊
第4个回答  2011-03-19
fhg

设堆栈段指针SP的初值为1000H,AX=2000H,BX=3000H (1)执行指令PUSH AX后...
(1) PUSH AX 后,SP向高地址方向,增加2个单位,因为PC机按字节编址的,AX是两个字节,你懂的~~于是,SP 值为 1002H;(2)然后PUSH BX;后POP AX; 入一下,出一下,当然SP不变了,于是SP = 1002H;前者是将BX的值压到栈中,后者是将这个值弹到AX中,于是,你又懂了,BX = 3000H...

...4000H,BX= 3600H ,(1) 执行指令PUSH AX后,SP的内容是多少_百度知 ...
增2404H,减2396H

急求 单片机原理与技术 周明德 课后习题答案
3.5 设堆钱指针SP的初值为1000H,AX=2000H, BX=3000H,试问: (1)执行指令PUSH AX后SP的值是多少? (2)再执行PUSH BX及POP AX后,SP、AX和BX的值各是多少? 解: (1) SP=OFFEH。 (2) SP=OFFEH; AX=3000H, BX=3000H。 3.6要想完成把[3000H]送[2000H]中,用指令: MOM [200OH], [300OH] 是...

设 堆栈指针SP的初值为2000H,AX=3000H ,BX=5000H,执行PUSH AX 后,S...
PUSH AX后是把AX的值放入栈中,SP减一个字的长度也就是2个字节,变成1FFEH,AX,BX不变。PUSH BX也是同义,SP变为1FFCH,AX,BX不变。POP AX是把当前SS:SP的内容(也就是5000H)出栈并给BX,SP变为1FFEH,AX变为5000H,BX一直都没变,仍是5000H 希望你能明白,其实不难。

计算机接口技术综合题,题目如下,请各位大虾江湖救急救急!!!
(2)写出初始化程序段,采用二进制计数。10110110 答:(1) 方式3,方波发生器(2) MOV AL, 10110110BOUT 63H,ATMOV AX,1000OUT 60H,ALMOV AL,AHOUT 60H,AL 2. 8253四个端口分别为控制口CN,通道0口CNT0,通道1口CNT1,通道2口CNT2。现要求通道1功能为:将频率为625KHZ的外部时钟分频为高低电平都是1ms的...

单片机上机考试,河北工业大学 大三
B. 把存放2000H~20FFH连续256个数据搬移到3000H~30FFH单元(1)D #2000H (2) B #20H (3) D #30H (4) A DPLB.半导体存储器从读写方式上可分为(1)和(2)两大类,MCS-8051的片内数据存储器有(3)字节,片内程序存储器有(4)字节1) A RAM (2) D ROM (3) D 128 (4) A 4KCC. CPU是单片机...

复位后pc,sp,psw的初值是什么?他们的隐含意义是什么?
1. 在单片机复位之后,程序计数器(PC)的初始值设定为0000H。2. 程序状态字(PSW)的初始值设定为00H。PSW是一个由位状态标志组成的寄存器,反映了单片机的状态和运算结果。3. 堆栈指针(SP)的初始值设定为07H。SP指向栈内存顶部,用于存储临时数据和函数调用信息。4. 数据指针(DPTR)的初始值设定...

宏笔记本u盘启动哪个选项
- 设置堆栈指针SP = __initial_sp。- 设置PC指针 = Reset_Handler。- 设置中断向量表。- 配置系统时钟。- 配置外部SRAM\/SDRAM用于程序变量等数据存储(这是可选的)。- 跳转到C库中的 __main ,最终会调用用户程序的main()函数。Cortex-M内核处理器复位后,处于线程模式,指令权限是特权级别(最高级别),堆栈...

汇编语言的标号和变量有什么区别?
变量TOP被定义为字类型,它的偏移量应为STACK段定义100个字后的下一个字的偏移量,它恰就是堆栈指针SP的初值,因此经常用这种方法为SP赋初值.本文来自编程入门网3 1 4 双重定义变量名利用隐含方式和显示方式的双重方式,可以对同一位置定义为双重变量.格式〈变量名〉 EQU THIS〈类型〉〈变量名〉 DB\/DW\/DD…例如:...

微机原理子程序入口条件
SKSGSEGMENTSTACKSTACK;定义堆栈段STKDW32 DUP (?)SKSGENDSDASGSEGMENT;定义数据段XDB93HDASGENDSCOSGSEGMENT;定义代码段ASSUMECS:COSG,DS:DASG,SS:SKSG0000B8CE0BBEGIN:MOVAX,DASG00038ED8MOVDS, AX0005B8CA0BMOVAX,SKSG00088ED0MOVSS, AXBC4000MOVSP, SIZE STK微型机原理与程序设计微型机原理与程序设计...

相似回答