×

80x86指令系统的指令大全详细资料说明

消耗积分:2 | 格式:doc | 大小:0.07 MB | 2019-07-11

TUNE-ZG

分享资料个

  80x86指令系统

  80x86的指令系统可以分为以下6组:

  数据传送类指令

  算术指令

  逻辑指令

  串处理指令

  控制转移指令

  处理机控制指令

  1、数据传送指令

  数据传送类指令负责把数据、地址或立即数传送到寄存器或存储单元中。它又可以分为五种:

  1.1、通用数据传送指令

  MOV 传送

  MOVSX 带符号扩展传送

  MOVZX 带零扩展传送

  PUSH 进栈

  POP 出栈

  PUSHA 所有寄存器进栈

  POPA 所有寄存器出栈

  XCHG 交换

  (1)MOV传送指令

  格式为:MOV DST,SRC

  执行操作:(DST)《——(SRC)

  MOV指令可以在CPU内或CPU和存储器之间传送字或字节,MOV指令不影响标志位

  (2)MOVSX带符号扩展传送指令

  格式为:MOVSX DST,SRC

  执行操作:(DST)《——符号扩展(SRC)

  该指令的源操作数可以是8位或16位的寄存器或存储单元的内容,而目的操作数则必须是16位或32位寄存器,传送时把源操作数扩展送入目的寄存器。MOVSX不影响标志位

  (3)MOVZX带零扩展传送指令

  格式为:MOVZX DST,SRC

  执行操作:(DST)《——零扩展(SRC)

  MOVSX和MOVZX指令与一般双操作数指令的差别是:一般双操作数指令的源操作数和目的操作数的长度是一致的,但MOVSX和MOVZX的源操作数长度一定要小于目的操作数长度

  (4)PUSH进栈指令

  格式为:PUSH SRC

  执行操作:

  16位指令:

  (SP)《——(SP)-2

  ((SP)+1),(SP))《——(SRC)

  32位指令:

  (ESP)《——(ESP)-4

  ((ESP)+3),(ESP)+2),(ESP)+1)(ESP))《——(SRC)

  (5)POP出栈指令

  格式为:POP DST

  执行操作:

  16位指令:

  (DST)《——((SP)+1),(SP))

  (SP)《——(SP)+2

  32位指令:

  (DST)《——((ESP)+3),(ESP)+2),(ESP)+1)(ESP))

  (ESP)《——(ESP)+4

  堆栈是一种“后进先出”方式工作的一个存储区,它必须存在于堆栈段中,因而其段地址存放于SS寄存器中。它只有一个出入口,所以只有一个堆栈指针寄存器。当堆栈地址长度为16位时用SP寄存器,堆栈地址长度为32位时用ESP,SP或ESP的内容在任何时候都指向当前的栈顶,所以POP和PUSH指令都必须根据当前SP或ESP的内容来确定进栈或出栈的存储单元,而且必须及时修改指针,以保证SP或ESP指向当前的栈顶。PUSH和POP指令均不影响标志位

  (5)XCHG交换指令

  格式为:XCHG OPR1 OPR2

  执行操作:(OPR1)《——》(OPR2)

  该指令不影响标志位

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !