安防监控知识
电气知识|堆栈操作指令
2017-02-20  浏览:46
安防之家讯:堆栈是一个重要的数据结构,它具有 “ 先进后出 ” 的特点,通常用来保存程序的返回地址。它主要有两大类操作:进栈操作和出栈操作。

1 .进栈指令 PUSH

2 .出栈指令 POP



1 进栈指令 PUSH

 PUSH(PushWordorDoublewordontoStack)

 语句格式: PUSH OPS

 功能:将寄存器、段寄存器或存储器中的一个字数据压入堆栈,堆栈指针减 2 。

即 :

 ① (SP)- 1→ SP (OPS)15~8 → [SP]

 ② (SP)- 1→ SP (OPS)7~0 → [SP]

 PUSH Imm ;80286+

 一个字进栈,系统自动完成两步操作: SP←SP-2 , (SP)← 操作数;

 一个双字进栈,系统自动完成两步操作: ESP←ESP-4 , (ESP)← 操作数。

  PUSHA(PushAllGeneralRegisters)

 指令格式: PUSHA ;80286+

 其功能是依次把寄存器 AX 、 CX 、 DX 、 BX 、 SP 、 BP 、 SI 和 DI 等压栈。

  PUSHAD(PushAll32-bitGeneralRegisters)

 指令格式: PUSHAD ;80386+

 其功能是把寄存器 EAX 、 ECX 、 EDX 、 EBX 、 ESP 、 EBP 、 ESI 和 EDI 等压栈。

2 出栈指令 POP

POP(PopWordorDoublewordoffStack)

 语句格式: POP OPD

 功能: 将栈顶元素弹出送至某一寄存器、段寄存器(除 CS 外)或存储器,堆栈指针加 2 。

 从 POP 指令功能可看出,该指令为 PUSH 指令的逆过程。

 即:

 ①( [SP] )→( OPD ) 7~0 ( SP ) + 1→ SP

 ②( [SP] )→( OPD ) 15~8 ( SP ) + 1→ SP

 弹出一个字,系统自动完成两步操作:操作数 ←(SP) , SP←SP-2 ;

 弹出一个双字,系统自动完成两步操作:操作数 ←(ESP) , ESP←ESP-4 。

  POPA(PopAllGeneralRegisters)

 指令格式: POPA ;80286+

 其功能是依次把寄存器 DI 、 SI 、 BP 、 SP 、 BX 、 DX 、 CX 和 AX 等弹出栈。其实,程序员不用记住它们的具体顺序,只要与指令 PUSHA 对称使用就可以了。

  POPAD(PopAll32-bitGeneralRegisters)

 指令格式: POPAD ;80386+

 其功能是依次把寄存器 EDI 、 ESI 、 EBP 、 ESP 、 EBX 、 EDX 、 ECX 和 EAX 等弹出栈,它与 PUSHAD 对称使用即可。安防之家专注于各种家居的安防,监控,防盗,安防监控,安防器材,安防设备的新闻资讯和O2O电商导购服务,敬请登陆安防之家:http://anfang.jc68.com/
更多»您可能感兴趣的文章:
更多»有关 安防之家 的产品:
  • 安防监控资讯
  • 发表评论 | 0评
  • 评论登陆
  • 移动社区 天花之家 木门之家 灯具之家 铁艺之家 幕墙之家 五金头条 楼梯头条 墙纸头条 壁纸头条 玻璃头条 老姚之家 灯饰之家 电气之家 全景头条 照明之家 防水之家 防盗之家 区快洞察 建材 枣庄建材 临沂建材 南昌建材 上饶建材 抚州建材 宜春建材 吉安建材 赣州建材 鹰潭建材 新余建材 九江建材 萍乡建材 景德镇陶瓷 石家庄建材 衡水建材 廊坊建材 沧州建材 承德建材 建材之家 企业之家 720全景
    (c)2015-2017 Bybc.cn SYSTEM All Rights Reserved