2. 已知程序执行前有A=02H,SP=42H,(41H)=FFH,(42H)=FFH。下述程序执行后, 则A=( );SP=( );(41H)=( );(42H)=( );PC=( )。(5分)
POP DPH
POP DPL
MOV DPTR,#3000H
RL A
MOV B,A
MOVC A,@A+DPTR
PUSH Acc
MOV A,B
INC A
MOVC A,@A+DPTR
PUSH Acc
RET
ORG 3000H
DB 10H,80H,30H,80H,50H,80H
单片机===程序求值
因为初始42H经过2次POP变成40H,再经过2次PUSH变成42H,最后RET又变成40H
关于单片机的一道程序题目
POP DPH POP DPL ;弹出堆栈2次,SP=50H MOV DPTR,#4000H ;DPTR=4000H RL A ;A由02变成04H MOV B,A ;A的数据送到B暂存 MOVC A,@A+DPTR ;将4+4000H(也就是4004)的数据送到A 最后两行表示DB后面的数据依此在4000H开始的单元中,30H在4004H单元。所以A=30...
单片机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,...
已知程序执行前有A=02H,SP=52H,(51H)=FFH,(52H)=FFH。下述程序执行后...
A=(50H), SP=(50H), (51H)=(FFH), (52H)=(FFH), PC=(未知) 原因:这只是一个子程序,根本没法找到程序运行地址,除非你写全所有程序。
已知程序执行前有A=02H,SP=52H,(51H)=FFH,(52H)=FFH。下列程序执行后...
应写:push acc。程序中,有两条查表指令:movc a,a + dptr。当 a = 0 时,将从 4000h 处,读出 10h、80h;当 a = 1 时,将从 4000h 处,读出 30h、50h;当 a = 2 时,将从 4000h 处,读出 30h、50h。本题目,就是 a=2。读出来了 30h、50h,先后压栈,再执行 ret。ret ...
已知程序执行前有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 ;查...
看看这道单片机题
而这种变化就体现在SP中值的变化,看图2,SP中的值等于27H不就相当于是一个指针指向27H单元吗?当然在真正的51机中,开始指针所指的位置并非就是数据存放的位置,而是数据存放的前一个位置,比如一开始指针是指向27H单元的,那么第一个数据的位置是28H单元,而不是27H单元,为什么会这样,我们在学...
有关单片机的几个问题!跪求高手回答
1.是个循环,而且是个死循环。他在单片机中是常要用到的,功能就是只要单片机上电它使程序不停里执行死循环里的内容!2.这个看你的单片机的硬件电路了,你最好也先看懂硬件电路才编程。通常LED的公共端是用三极管选通的!看来你的LED是共阳极接法的,就是8个LED正极共同接到三极管的发射极,集电极接...
...40H)=80H,(41H)=24H,执行该程序段后40H 41H 42H 43H以及A、CY的内...
(40H)=80H,(41H)=24H,MOV A,40H ;A=80H MOV B,#04H ;A=80H MUL AB ;A=00H,Cy=0 ADD A,41H ;A=24H,Cy=0 MOV A,#00H ;A=00H,Cy=0 ADDC A,B ;A=02H,Cy=0 MOV 43H,A ;A=02H,Cy=0 最终:A=02H,Cy=0 ...
单片机指令
(41H)=34H(2)PUSHDPH(SP)=42H(42H)=34H(3)POP08H(08H)=34H(SP)=41H(4)INCDPTRDPTR=3413H4.执行下列指令后,各有关存储单元(即A、B)的内容如何?MOVA,#30HA=#30HMOVB,#0AFHB=#0AFHXCHA,BA=#0AFHB=#30HSWAPAA=#0FAH5.执行如下三条指令后,30H单元的内容是多少?MOVR1,#30HR1=#30HMOV...