sp dptr pop dph dplpop dpl求 dptr sp

一道简单的C51单片机程序题,求大神解答? - 知乎3被浏览<strong class="NumberBoard-itemValue" title="分享邀请回答0添加评论分享收藏感谢收起0添加评论分享收藏感谢收起扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
下载作业帮安装包
扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
关于单片机堆栈指针sp变化的问题1.如果(DPTR)=507BH,(SP)=32H,(30H)=50H,(31H)=5FH,(32H)=3CH,则执行下列指令后:POP\x05\x05DPH;POP\x05\x05DPL;POP\x05\x05SP;则:(DPH)= ___3CH___;(DPL)=___5FH___;(SP)=___50H___; 如上题,我不理解为什么sp=50h,执行POP\x05SP首先把(30H)=50H的内容给SP,然后因为是出栈所以要减一不是吗?为什么不是(SP)=4FH 还有进栈的时候设一开始sp=50H,A=01H然后执行PUSH ACC,指针SP先加一,再把A=01H放入51H,还是先再把A=01H放入51H,再加一?如果是第一种,那50H岂不是没利用到?我试过了,第一问却是是等于50h,很奇怪,不理解org 0000hajmp mainorg 0050hmain:mov sp,#32h\x05 mov 30h,#50h\x05 mov 31h,#5fh\x05 mov 32h,#3ch\x05 POP DPH;\x05 POP DPL;\x05 POP SP;\x05 nop\x05 end
作业帮用户
扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
为什么不是(SP)=4FH
?应该是4FH.问题二:那50H岂不是没利用到?50H是不用的.复位后,SP=07H. 但是,07H就从来不用于堆栈.第一次压栈,是压入了08H单元.
问题一我试验过了 org 0000h ajmp main org 0050h main:mov sp,#32h
mov 30h,#50h
mov 31h,#5fh
mov 32h,#3ch
end 你试试,运行到nop后SP是等于50H的
实验了,确实是50H。
弹出到SP后,SP没有减一。不理解。
为您推荐:
其他类似问题
扫描下载二维码如果 dptr 507bh_中华文本库
(×)三、简答题 1、 如果(DPTR)=507BH,(SP)=32H,(30H)=50H,(31H)=5FH,(32H)=3CH,则执行下列指 令后: POP POP POP DPH; DPL; SP; 4 则:(...
如果(DPTR)=507BH,(SP)=32H,(30H)=50H, (31H)=5FH,(32H)=3CH,则执行下列指令后: POP POP DPH; DPL; POP SP; 则:(DPH)=( 3CH);(DPL)=( 5...
(0AAH) 3.16 如果 DPTR=507BH,SP=32H, (30H)=50H, (31H)=5FH, (32H)=3CH,则执行下 列指令后: POP DPH POP POP 则:DPH=(3CH) DPL SP DPL=...
(0AAH) 3.16如果 DPTR=507BH,SP=32H, (30H)=50H, (31H)=5FH, (32H)=3CH,则执行下 列指令后: POP DPH POP DPL POP SP 则:DPH=(3CH)DPL=(5...
答:00H、0AAH 3-19:如果 DPTR=507BH,SP=32H, (30H)=50H, (31H)=5FH, (32H)=3CH,则执行 下列指令后: POP DPH POP DPL POP SP 则:DPH=( ),...
9) 如果 DPTR=507BH,SP=32H,(30H)=50H,(31H)=5FH,(32H)=3CH,则执行下列指令后: POP POP POP DPH DPL SP 则:DPH=( ),DPL=( ),SP=( ) 10) ...
21、如果(DPTR)=507BH,(SP)=32H,(30H)=50H,(31H)=5FH,(32H)=3CH,则执行下列指 令后: POP DPH POP DPL POP SP 则:(DPH)= ___3CH___; (DPL...
ANL A,#17H ORL 17H,A XRL A,@R0 CPL A 答:0CBH 6.如果 DPTR=507BH,SP=32H, (30H)=50H, (31H)=5FH, (32H)=3CH,则执行下 列指令后则:DPH...
答:00H、0AAH 3-19:如果 DPTR=507BH,SP=32H, (30H)=50H, (31H)=5FH, (32H)=3CH,则执行 下列指令后: POP DPH POP DPL POP SP 则:DPH=( ),...
11. 如果(DPTR)=507BH,(SP)=32H,(30H)=50H,(31H)=5FH,(32H)=3CH,...(1)MOV (6)MOV (10)MOVX 28H,@R2; (2)DEC R0,R1; (7)PHSH DPTR ;...刚刚学汇编 请教一道简单的习题 - 单片机/MCU论坛 -
中国电子技术论坛 -
最好最受欢迎电子论坛!
后使用快捷导航没有帐号?
刚刚学汇编 请教一道简单的习题
12:26:06  
本帖最后由
12:50 编辑
习题题目:已知程序执行前有A=02H,SP=42H,(41H)=FFH,(42H)=FFH.下述程序执行后
POP& & DPH
POP& & DPL
MOV& &DPTR,#3000H
MOVC&&A,@A+DPTR
MOV& & A,B
MOVC&&A,@A+DPTR
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). 后面几个怎么来的都不知道了,哎惭愧)
助理工程师
12:57:23  
回帖奖励 +2 分积分
13:10:15  
不是用C吗..................................
13:13:24  
舞羽 发表于
不是用C吗..................................
我想从汇编开始 多了解硬件结构原理在慢慢学高级易语言 这样不好吗
14:53:34  
POP& & DPH& && && && && &DPH=FFH& & SP=41
POP& & DPL& && && && && &DPL=FFH& & SP=40
MOV& &DPTR,#3000H& && &&&(FFFFH)=3000H
RL& && &A& && && && && & A=-----
MOV& &B,A& && && && && & B=
MOVC&&A,@A+DPTR& && && & A=50H
PUSH& &A& && && && && &&&SP=41H& &(41H)=50H
MOV& & A,B& && && && && &A=
INC& &&&A& && && && && & A=
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
DB 10H,80H,30H,80H,50H,80H
21:26:31  
chenbo 发表于
POP& & DPH& && && && && &DPH=FFH& & SP=41
POP& & DPL& && && && && &DPL=FFH& & SP=40
MOV& &DPTR,#3000 ...
非常感谢你的回复&&
但最后那里还是没有懂 为什么RET后 SP会再减两次变为40H呢
21:59:09  
<font color="#178610 发表于
非常感谢你的回复&&
但最后那里还是没有懂 为什么RET后 SP会再减两次变为40H呢 ...
那你需要去看看汇编指令RET的具体说明。
看他的注释是保存程序指针。
21:59:55  
<font color="#178610 发表于
非常感谢你的回复&&
但最后那里还是没有懂 为什么RET后 SP会再减两次变为40H呢 ...
因为 指针会自动指向下一条指令 而前一条指令 是两个字节的&&所以指针加二
13:24:03  
三毛流浪记 发表于
因为 指针会自动指向下一条指令 而前一条指令 是两个字节的&&所以指针加二
哦 !我知道了 是不是 执行RET指令过后&&指针回到了刚进入时候的地址啊?
等待验证会员
15:21:33  
哥们,你qq多少
Powered by
供应链服务
版权所有 (C) 深圳华强聚丰电子科技有限公司06-2708-3106-2708-27
01-1103-0501-1903-02
◇本站云标签

我要回帖

更多关于 movc a a dptr 的文章

 

随机推荐