单片机程序中PUSH 02H和POP 02是什么意思?

2024年12月05日 07:23
有3个网友回答
网友(1):

堆栈操作指令 PUSH和POP 

格式: PUSH OPRD 

POP OPRD 

功能: 实现压入操作的指令是PUSH指令;实现弹出操作的指令是POP指令. 

说明: 1. OPRD为16位(字)操作数,可以是寄存器或存储器操作数. 

2. PUSH的操作过程是: (SP)<--(SP)-2,((sp))<--OPRD 即先修改堆栈指针SP(压入时为自动减2),然后,将指定 的操作数送入新的栈顶位置. 

此处的((SP))<--OPRD,也可以理解为: 

[(SS)*16+(SP)]<--OPRD 或 [SS:SP]<--OPRD 

3. 示例: PUSH DX 

PUSH BP 

PUSH CS 

PUSH DATA1 

PUSH ALFA[BX][SI] 

注意: 每进行一次压入操作,都压入一个字(16位). 

4. PUSH和POP指令对状态标志位没有影响。 

5. 什么是堆栈 

堆栈被定义为一种先进后出的数据结构,即最后进栈的元素将被最先弹出来.这很像许多人进入一条窄得只能 容纳一个人通过的小道,如果要从这条道往回退出 

网友(2):

堆栈操作指令 PUSH和POP
  格式: PUSH OPRD
  POP OPRD
  功能: 实现压入操作的指令是PUSH指令;实现弹出操作的指令是POP指令.
  说明: 1. OPRD为16位(字)操作数,可以是寄存器或存储器操作数.
  2. PUSH的操作过程是: (SP)<--(SP)-2,((sp))<--OPRD 即先修改堆栈指针SP(压入时为自动减2),然后,将指定 的操作数送入新的栈顶位置.
  此处的((SP))<--OPRD,也可以理解为:
  [(SS)*16+(SP)]<--OPRD 或 [SS:SP]<--OPRD
  3. 示例: PUSH DX
  PUSH BP
  PUSH CS
  PUSH DATA1
  PUSH ALFA[BX][SI]
  注意: 每进行一次压入操作,都压入一个字(16位).
  4. PUSH和POP指令对状态标志位没有影响。
  5. 什么是堆栈
  堆栈被定义为一种先进后出的数据结构,即最后进栈的元素将被最先弹出来.这很像许多人进入一条窄得只能 容纳一个人通过的小道,如果要从这条道往回退出
  来的话,那么最先退出来的人是最后一个进入小道的人

网友(3):

PUSH 02H z指的是指向寄存器R2