(四)堆栈操作指令 入栈指令: PUSH n;SP<SP+1,(SP)←(n) 出栈指令:POPn;(n)<(SP),SP<SP-1 例:设A=02,B=56H,执行下列指令后, SP=?,A=?,B=? SBR: MOV SP,#30H;设栈底 片内RAM 34H冰 PUSH A 33H X PUSH B sP→32H LII MOv A,#0 SP→31HHI MOv B, #01 SP→30HX POP B A POP A
(四)堆栈操作指令 入栈指令:PUSH n ;SPSP+1,(SP)(n) 出栈指令:POP n ;(n)(SP),SPSP-1 例:设 A=02,B=56H,执行下列指令后, SP= ?,A= ? ,B= ? 片内 RAM 34H 33H 32H 31H 30H × × × × SP→ × × × × SP→ 02 × × × SP→ 56H 02 × × × 56H 02H SP→ × × × SP→ 56H 02 × × × SP→ 56H 02 × × × 56H SP→ 02 × 02H A 020×H SBR: MOV SP,#30H ;设栈底 PUSH A PUSH B MOV A,#0 MOV B,#01 … POP B POP A
(五)查表指令 实现从程序存储器读取数据到A累加器,只能使用变 址间接寻址方式。 多用于查常数表程序,可直接求取常数表中的函数值。 1.DPTR为基址寄存器 MOVC A, @A+DPTR; A+(A+DPTR) 查表范围为64KB程序存储器任意空间,称为远程 查表指令。 2.PC为基址寄存器 MOVC A, @A+PC A<(A+PC 常数表只能在查表指令后256B范围内
(五) 查表指令 实现从程序存储器读取数据到A累加器,只能使用变 址间接寻址方式。 多用于查常数表程序,可直接求取常数表中的函数值。 1.DPTR为基址寄存器 MOVC A,@A+DPTR ;A(A+DPTR) 查表范围为 64KB 程序存储器任意空间,称为远程 查表指令 。 2.PC为基址寄存器 MOVC A,@A+PC ;A(A+PC) 常数表只能在查表指令后256B范围内