已知程序执行前有A=02H,SP=52H,(51H)=FFH,(52H)=FFH。下列程序执行后:
POP DPH
POP DPL
MOV DPTR,#4000H
RL A
MOV B,A
MOVC A,@A+DPTR
PUSH A
MOV A,B
INC A
MOVC A,@A+DPTR
PUSH A
RET
ORG 4000H
DB 10H,80H,30H,50H,30H,50H
能不能对语句解析下
已知程序执行前有A=02H,SP=52H,(51H)=FFH,(52H)=FFH。下列程序执行后...
时,将从 4000h 处,读出 30h、50h;当 a = 2 时,将从 4000h 处,读出 30h、50h。本题目,就是 a=2。读出来了 30h、50h,先后压栈,再执行 ret。ret 指令,就是把堆栈中的两个字节,送到 pc。那么,pc=5030h,就是这么来的。
已知程序执行前有A=02H,SP=52H,(51H)=FFH,(52H)=FFH。下列程序执行后...
在前人的基础上修改。POP DPH ; (52H)赋值给DPH,这个关系一直存在,知道程序结束。 SP= 51 H,POP DPL ;(51H)赋值给DPL,SP=50H MOV DPTR,#4000H ;DPTR=#4000H RL A ;A=04H ;16进制左移一位,先化为二进制过程更明显。MOV B,A ;B=04H MOVC A,@A+DPTR ;查...
已知程序执行前有A=02H,SP=52H,(51H)=FFH,(52H)=FFH。下述程序执行后...
A=(50H), SP=(50H), (51H)=(FFH), (52H)=(FFH), PC=(未知) 原因:这只是一个子程序,根本没法找到程序运行地址,除非你写全所有程序。
看看这道单片机题
POP DPH sp指向52H,所以把52里的内容送给DPH,DPH=0FFH,然后sp减1 POP DPL 指向51H,所以把51里的内容送给DPL=0FFH,然后sp减1 MOV DPTR,#4000H 把4000H送给0FFFF地址,也就是片外存储器 RL A 左移A 00000010变为00000100,变为04H MOV B,A 把A送给B寄存器,此时B为04H MOVC A,@A+D...
51单片机的 pc值怎么算?
上面程序执行完之后:(A)=50H;sp=50H(因为在程序中,sp减了两次,后来又加了两次,在程序最后ret有在返回的时候减了两次,即地址出栈,故最终结果是50h。(51h)=30h;(52h)=50h;因为ret指令返回时,出栈的结果是高地址=(52h)=50h;而低地址=(51h)=30h;故最终结果pc值是5030h;...
单片机的一道题 我和答案对不上 不知道是不是我错了 求大神求一下答案...
52H FFH 测试程序 ORG 0000H LJMP 0030H ORG 0030H main:MOV A,#02H MOV SP,#52H MOV 51H,#0FFH MOV 52H,#0FFH POP DPH POP DPL MOV DPTR,#4000H RL A \/\/A = 04H MOV B,A \/\/B = 04H MOVC A,@A+DPTR \/\/A = 30H PUSH ACC \/\/30H 入...
...PC的值是不是等于栈指针SP的值?也就是说(PC)=(DPH)+(DPL)?_百度知...
(SP) = #52H,代表当前栈指针指向的是内部RAM地址为52H的寄存器。程序分析:POP DPH ;(52H)=>(DPH) = #0FFH,(SP)-1,即(SP) = #51H POP DPL ;(51H)=>(DPL) = #0FFH,(SP)-1,即(SP) = #50H MOV DPTR,#4000H ;DPTR重新赋值,所以上两句对DPTR的修改无意义 RL...
关于单片机的一道程序题目
MOVC A,@A+DPTR ;将5+4000H(也就是4005H)的数据送到A,所以A=50H PUSH A ;将A的数据压入52H,(52H)=50H RET ;52H、51H的数据弹出,成为PC地址 最后结果:A=50H、SP=50H、(51H)=30H、(52H)=50H、PC=3050H 天哪,我也晕了,堆栈是压栈+1还是-1忘记了,堆栈...
单片机8051堆栈问题程序
;已知 (A) = 02H, (SP) = 40H, (41H) = FFH, (42H) = FFH;这是一个子程序,调用时PC由硬件自动入栈,所以调用后SP = 40H+2 = 42H,而42H处值=FFHPOP DPH;出栈,栈数据放到DPH和DPL,这时DPTR = FFFFHPOP DPL ;因为开始SP =42H,出栈后SP = 42H - 2 = 40HMOV DPTR...
汇编试题解答
9.设BX=1200H,SI=0002H,DS=3000H,(31200H)=50H,(31201H)=02H,(31202H)=OF7H,(31203H)=90H请写出下列各条指令单独执行后,有关寄存器及存储单元的内容,若该指令影响标志位,则指出其值。A. DEC BYTE PTR〔1200H〕 ; 问:(31200)=4FH, CF=原来CF的值(DEC指令不影响...