已知程序执行前有A=02H,SP=42H,(41H)=FFH,(42H)=FFH。 调用 下述 子 程序执行后,求A=( );SP=( );(41H)=( );(42H)=( );PC=( ) FUN1: POP DPH POP DPL ; 弹栈一次 SP 减 1 ,此时 SP=40H MOV DPTR,#3000H ; 数据存储器, DPH=30H,DPL=00H RL A ; 循环, A=0000 0100B=04H MOV B,A ;B=04H MOVC A,@A+DPTR ; 读取程序存储器, A 中存放带查找操作数 ; 在单元地址相对于表首地址的偏移量 , 此时 ; A=3004H, ( A ) =50H PUSH ACC ; 压栈一次 SP 加 1 ,此时 SP=41H,PCL=50H MOV A,B ;A=B=04H INC A ; 带进位的加法指令,即 A+1=A ,此时 A=05H MOVC A,@A+DPTR ;A=3005H, ( A ) =80H PUSH ACC ;PCH=80H , SP=42H RET ;RET 把子程序调用时压入堆栈中断点的地 ; 址恢复到 PC 中 ,SP=40H (压栈前的 PC 值) ORG 3000H DB 10H,80H,30H,80H,50H,80H