汇编指令学习_05

汇编指令学习_05

接上文: 汇编指令学习_04

61. JA

条件转移指令JA/JNBE

格式: JA/JNBE标号

功能: 为高于/不低于等于的转移指令

说明:

1. 例如两个符号数a,b比较时,a>b(即CF=0,ZF=0)时转移.因为单一标志位CF=0,只表示a>=b.
 
2. JA/JNBE是同一条指令的两种不同的助记符.

3. 该指令用于无符号数进行条件转移

62. JNBE

请查看61 JA

63. JAE

条件转移指令JAE/JNB

格式: JAE/JNB 标号

功能: 为高于等于/不低于的转移指令

说明:

1. JAE/JNB是同一条指令的两种不同的助记符.

2. 该指令用于无符号数进行条件转移.

64. JNB

请查看63 JAE指令

65. JB

条件转移指令JB/JNAE

格式: JB/JNAE 标号

功能: 低于/不高于等于时转移

说明: 该指令用于无符号数的条件转移

66. JNAE

请查看65. JB

67. JBE

条件转移指令JBE/JNA

格式: JBE/JNA 标号

功能: 低于等于/不高于时转移

说明: 该指令用于无符号数的条件转移

68. JNA

请查看67. JNA

69. JG

条件转移指令JG/JNLE

格式: JG/JNLE 标号

功能: 大于/不小于等于时转移

说明: 用于带符号数的条件转移指令

70. JNLE

请查看69. JG

71. JGE

条件转移指令JGE/JNL

格式: JGE/JNL标号

功能: 大于等于/不小于时转移

说明: 用于带符号数的条件转移指令

72. JNL

请查看 71. JGE

73. JL

条件转移指令JL/JNGE
 
格式: JL/JNGE标号

功能: 小于/不大于等于时转移

说明: 用于带符号数的条件转移指令

74. JNGE

请查看73. JL

75. JLE

条件转移指令JLE/JNG

格式: JLE/JNG 标号

功能: 小于等于/不大于时转移

说明: 用于带符号数的条件转移指令

76. JNG

请查看75. JLE

77. LOOP

循环控制指令LOOP

格式: LOOP 标号

功能: (CX)<--(CX)-1,(CX)<>0,则转移至标号处循环执行, 直至(CX)=0,继续执行后继指令.

说明:

1. 本指令是用CX寄存器作为计数器,来控制程序的循环.

2. 它属于段内SHORT短类型转移,目的地址必须距本指令在-128到+127个字节的范围内.

78. LOOPZ

循环控制指令LOOPZ/LOOPE

格式: LOOPZ/LOOPE 标号

功能: (CX)<--(CX)-1,(CX)<>0 且ZF=1时,转至标号处循环

说明:

1. 本指令是用CX寄存器作为计数器,来控制程序的循环.

2. 它属于段内SHORT短类型转移,目的地址必须距本指令在-128到+127个字节的范围内.
 
3. 以上两种助记符等价.

79. LOOPE

请查看78. LOOPZ

 

80. LOOPNZ

循环控制指令LOOPNZ/LOOPNE

格式: LOOPNZ/LOOPNE 标号

功能: (CX)<--(CX)-1,(CX)<>0 且ZF=0时,转至标号处循环

说明:

1. 本指令是用CX寄存器作为计数器,来控制程序的循环.

2. 它属于段内SHORT短类型转移,目的地址必须距本指令在-128到+127个字节的范围内.
 
3. 以上两种助记符等价.

81. LOOPNE

请查看LOOPNZ

82. CALL

过程调用指令 CALL

格式: CALL OPRD

功能: 过程调用指令

说明:

1. 其中OPRD为过程的目的地址.

2. 过程调用可分为段内调用和段间调用两种.寻址方式也可以分为直接寻址和间接寻址两种.

3. 本指令不影响标志位.

83. RET

返回指令 RET

格式: RET

功能: 当调用的过程结束后实现从过程返回至原调用程序的下一条指令,本指令不影响标志位.

说明:

由于在过程定义时,已指明其近(NEAR)或远(FAR)的属性,所以RET指令根据段内调用与段间调用,执行不同的操作

对段内调用: 返回时,由堆栈弹出一个字的返回地址的段内偏移量至IP.

对段外调用: 返回时,由堆栈弹出的第一个字为返回地址的段内偏移量,将其送入IP中,由堆栈弹出第二个字为返回地址的段基址,将其送入CS中.

84. MOVS

字符串传送指令 MOVS

格式: MOVS OPRD1,OPRD2
      MOVSB
      MOVSW

功能: OPRD1<—OPRD2.

说明:

1. 其中OPRD2为源串符号地址,OPRD1为目的串符号地址.

2. 字节串操作: 若DF=0,则作加, 若DF=1,则作减.

3. 对字串操作时: 若DF=0,则作加,若DF=1,则作减,.

4. 在指令中不出现操作数时,字节串传送格式为MOVSB、字串传送格式为MOVSW.

5. 本指令不影响标志位.

会根据操作的数据类型翻译成MOVSB, MOVSW, MOVSD

MOVS BYTE PTR ES:[DI], DS:[SI]

MOVS ES:BYTE PTR ES:[DI], DS:[SI]

 

85. MOVSB

请查看MOVS

86. MOVSW

请查看MOVS

87. CMPS

CMPS会根据数据类型翻译成CMPSB 跟CMPSW

格式:

      CMPS  OPRD1,OPRD2
      CMPSB
      CMPSW
 

功能: 由SI寻址的源串中数据与由DI寻址的目的串中数据进行比较,比较结果送标志位,而不改变操作数本身.
      同时SI,DI将自动调整.

说明:

1. 其中OPRD2为目的串符号地址,OPRD1为源串符号地址.

2. 本指令影响标志位AF、CF、OF、SF、PF、ZF.本指令可用来检查二个字符串是否相同,可以使用循环控制方法对整串进行比较.

3. 与MOVS相似,CMPS指令也可以不使用操作数,此时可用指令CMPSB或CMPSW分别表示字节串比较或字串比较.

Sample:

       cmps byte ptr ds:[si], es:[di]

88. CMPSB

请参看87. CMPS

89. CMPSW

请参看87. CMPS

90. SCAS

字符串搜索指令 SCAS

格式:

      SCAS OPRD
      SCASB
      SCASW

功能: 把AL(字节串)或AX(字串)的内容与由DI寄存器寻址的目的串中的数据相减,结果置标志位,但不改变任一操作数本身.

      地址指针DI自动调整.

说明:

1. 其中OPRD为目的串符号地址.

2. 本指令影响标志AF、CF、OF、PF、SF、ZF.该指令可查找字符串中的一个关键字,只需在本指令执行前,

   把关键字放在AL(字节)或AX(字串 )中,用重复前缀可在整串中查找.
    
   指令中不使用操作数时,可用指令格式SCASB,SCASW,分别表示字节串或字串搜索指令.

91. SCASB

请参看 90. SCAS

92. SCASW

请参看 90. SCASW

93. LODS

取字符串元素指令 LODS

格式: LODS OPRD 其中OPRD为源字符串符号地址.

功能: 把SI寻址的源串的数据字节送AL或数据字送AX中去, 并根据DF的值修改地址指针SI进行自动调整.

说明:

1. 本指令不影响标志位.

2. 当不使用操作数时,可用LODS(字节串)或LODSW(字串)指令.

94. STOS

字符串存储指令 STOS

格式: STOS OPRD

功能: 把AL(字节)或AX(字)中的数据存储到DI为目的串地址指针所寻址的存储器单元中去.指针DI将根据DF的值进行自动调整.

说明:

1. 其中OPRD为目的串符号地址.

2. 本指令不影响标志位.当不使用操作数时,可用STOSB或STOSW分别表示字节串或字串的操作.

95. REP

格式:

      REP           ;CX<>0 重复执行字符串指令
      REPZ/REPE     ;CX<>0 且ZF=1重复执行字符串指令
      REPNZ/REPNE   ;CX<>0 且ZF=0重复执行字符串指令
 
功能: 在串操作指令前加上重复前缀,可以对字符串进重复处理.由于加上重复前缀后,对应的指令代码是不同的,所以指令的功能便具有重复处理的功能,重复的次数存放在CX寄存器中.

说明:

1. REP与MOVS或STOS串操作指令相结合使用,完成一组字符的传送或建立一组相同数据的字符串.

2. REPZ/REPE常用与CMPS串操作指令结合使用, 可以完成两组字符串的比较.

3. REPZ/REPE常与SCAS指令结合使用,可以完成在一个字符串中搜索一个关键字.

4. REPNZ/REPNE与CMPS指令结合使用,表示当串未结束(CX=1)且当对应串元素不相同(ZF=0)时,继续重复执行串比较指令.

96. REPZ

请参看95. REP

97. REPE

请参看95. REP

98. REPNZ

请参看95. REP

99. REPNE

请参看95. REP

100. CLC

处理器控制指令-标志位操作指令
 
格式:
     CLC   ;置CF=0
     STC   ;置CF=1
     CMC   ;置CF=(Not CF)进位标志求反
     CLD   ;置DF=0
     STD   ;置DF=1
     CLI   ;置IF=0,CPU禁止响应外部中断
     STI   ;置IF=1,使CPU允许向应外部中断
 
功能: 完成对标志位的置位、复位等操作.

说明:

例如串操作中的程序,经常用CLD指令清方向标志使DF=0,在串操作指令执行时,按增量的方式修改吕指针.

101. STC

请参看100:CLC

102. CMC

请参看100:CLC

103. CLD

请参看100:CLC

104. STD

请参看100:CLC

105. CLI

请参看100:CLC

106. STI

请参看100:CLC

107. HLT

处理器暂停指令 HLT

格式: HLT

功能: 使处理器处于暂时停机状态.

说明:

1. 本指令不影响标志位.

2. 由执行HLT引起的暂停,只有RESET(复位)、NMI(非屏蔽中断请求)、INTR(可屏蔽的外部中断请求)信号可以使

   其退出暂停状态.它可用于等待中断的到来或多机系统的同步操作.

108. WAIT

处理器等待指令 WAIT

格式: WAIT

功能: 本指令将使处理器检测TEST端脚,当TEST有效时,则退出等待状态执行下条指令,否则处理器处于等待状态,直到TEST有效.

说明: 本指令不影响标志位.

109. ESC

处理器交权指令 ESC
 
格式: ESC EXTOPRD,OPRD

功能: 使用本指令可以实现协处理器出放在ESC指令代码中的6位常数,该常数指明协处理器要完成的功能.
     

说明:

1. 其中EXTOPRD为外部操作码,OPRD为源操作数.

2. 本指不影响标志位.

 

110. NOP

空操作指令 NOP

格式: NOP

功能: 本指令不产生任何结果,仅消耗几个时钟周期的时间,接着执行后续指令,常用于程序的延时等.

说明: 本指令不影响标志位.

111. LOCK

封锁总线指令 LOCK
 
格式: LOCK

功能: 指令是一个前缀,可放在指令的前面,告诉CPU在执行该指令时,不允许其它设备对总线进行访问.

 

112. IN

输入指令 IN
 
格式:

      IN AL,n    ;(AL)<--(n)
      IN AX,n    ;(AX)<--(n+1),(n)
      IN AL,DX   ;(AL)<--[(DX)]
      IN AX,DX   ;(AX)<--[(DX)+1],[(DX)]

说明:

1. 其中n为8位的端口地址,当字节输入时,将端口地址n+1的内容送至AH中,端口地址n的内容送AL中.

2. 端口地址也可以是16位的,但必须将16位的端口地址送入DX中.当字节寻址时,由DX内容作端口地址的内容送至AL中;

   当输入数据字时,[(DX)+1]送AH,[(DX)]送AL中,用符号:(AX)<--[(DX)+1],[(DX)]表示.

113. OUT

输出指令 OUT

格式: OUT n,AL    ;(n)<--(AL)

功能: 输出指令

说明:

1.

   OUT n,AX   ;(n+1),(n)<--(AX)
   OUT DX,AL  ;[(DX)]<--(AL)
   OUT DX,AX  ;[(DX)+1],[(DX)]<--(AX)

 
2. 输入指令及输出指令对标志位都不影响.

114. INTO

溢出中断指令 INTO(INTerrupt if Overflow)
 
格式: INTO

功能: 本指令检测OF标志位,当OF=1时,说明已发生溢出,立即产生一个中断类型4的中断,当OF=0时,本指令不起作用.

说明:

1. 本指令影响标志位IF及TF.

2. 本指令可用于溢出处理,当OF=1时,产生一个类型4的软中断.在中断处理程序中完成溢出的处理操作.

115. INT

软中断指令 INT

格式: INT n 其中n为软中断的类型号.

功能: 本指令将产生一个软中断,把控制转向一个类型号为n的软中断,该中断处理程序入口地址在中断向量表的n*4地址
说明: 操作过程与INTO指令雷同,只需将10H改为n*4即可.所以,本指令也将影响标志位IF及TF.     

116. IRET

中断返回指令 IRET
 
格式:
IRET

功能: 用于中断处理程序中,从中断程序的断点处返回,继续执行原程序.

说明:

1. 本指令将影响所有标志位.

2. 无论是软中断,还是硬中断,本指令均可使其返回到中断程序的断点处继续执行原程序.

posted @ 2013-07-21 22:26  Ares_  阅读(926)  评论(0编辑  收藏  举报