刚刚学汇编 请教一道简单的习题

2019-07-16 01:39发布

本帖最后由 26178610 于 2013-4-5 12:50 编辑

习题题目:已知程序执行前有A=02H,SP=42H,(41H)=FFH,(42H)=FFH.下述程序执行后
POP    DPH
POP    DPL
MOV   DPTR,#3000H
RL      A
MOV   B,A
MOVC  A,@A+DPTR
PUSH   A
MOV    A,B
INC     A
MOVC  A,@A+DPTR
PUSH  A  
RET

ORG 3000H
DB 10H,80H,30H,80H,50H,80H
请问:A=(  ).SP=(  ),(41H)=(  ),(42H)=(  ),PC=(  ).
附,请懂的朋友帮我看看以上括号里面的各个值是什么,重要的是请帮忙分析各个值是怎么来的。(我想了半天只知道A,(41H)(42H)的值其他的不知道怎么来的  参考答案是A=80H,SP=40H,(41H)=(50H ),(42H)=(80H),PC=(8050H). 后面几个怎么来的都不知道了,哎惭愧)
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
ljs_0437
1楼-- · 2019-07-16 04:35
 精彩回答 2  元偷偷看……
舞羽
2楼-- · 2019-07-16 07:27
不是用C吗..................................
26178610
3楼-- · 2019-07-16 11:52
舞羽 发表于 2013-4-5 13:10
不是用C吗..................................

我想从汇编开始 多了解硬件结构原理在慢慢学高级易语言 这样不好吗
chenbo360370864
4楼-- · 2019-07-16 17:21
POP    DPH               DPH=FFH    SP=41
POP    DPL               DPL=FFH    SP=40
MOV   DPTR,#3000H        (FFFFH)=3000H
RL      A                A=0000 0010-----0000 0100
MOV   B,A                B=0000 0100
MOVC  A,@A+DPTR          A=50H
PUSH   A                 SP=41H   (41H)=50H
MOV    A,B               A=0000 0100
INC     A                A=0000 0101
MOVC  A,@A+DPTR          A=80H
PUSH  A                  SP=42H    (42H)=80H
RET                      PC(8-15位)=(SP)=80H,SP=SP-1=41H
                         PC(0-7位)=(SP)=50H,SP=SP-1=40H

ORG 3000H
DB 10H,80H,30H,80H,50H,80H
26178610
5楼-- · 2019-07-16 17:34
chenbo360370864 发表于 2013-4-5 14:53
POP    DPH               DPH=FFH    SP=41
POP    DPL               DPL=FFH    SP=40
MOV   DPTR,#3000 ...

非常感谢你的回复  
但最后那里还是没有懂 为什么RET后 SP会再减两次变为40H呢
popeye0451
6楼-- · 2019-07-16 22:42
 精彩回答 2  元偷偷看……

一周热门 更多>