么?РORG 1000HРTAB1 EQU 1234HРTAB2 EQU 3000HРDB “MAIN”РDW TAB1,TAB2,70HР答:(1000H)=‘M’(1001H)=‘A’(1002H)=‘I’(1003H)=‘N’(1004H)=34HР(1005H)=12H (1006H)=00H (1007H)=30H (1008H)=70H (1009H)=00HР4.5 设计子程序时注意哪些问题?Р答:在编写子程序时应注意以下问题:Р(1)子程序的第一条指令的地址称为子程序的入口地址。该指令前必须有标号。Р(2)主程序调用子程序,是通过主程序或调用程序中的调用指令来实现的。Р(3)注意设置堆栈指针和现场保护,因调用子程序时,要把断点压入堆栈,子程序返回执行RET指令时再把断点弹出堆栈送入PC指针,因此子程序结构中必须用堆栈。Р(4)子程序返回主程序时,最后一条指令必须是RET指令,它的功能是在执行调用指令时,把自动压入堆栈中的断点地址弹出送入PC指针中,从而实现子程序返回主程序断点处继续执行主程序。Р(5)子程序可以嵌套,即主程序可以调用子程序,子程序又可以调用另外的子程序,通常情况下可允许嵌套8层。Р(6)在子程序调用时,还要注意参数传递的问题。Р4.6 试编写1个程序,将内部RAM中45H单元的高4位清0,低4位置1。Р解: MOV A,45HРANL A,#0FHРORL A,#0FHР4.7 已知程序执行前有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 3000H DB 10H,80H,30H,80H,50H,80H