知识总结7:指令总结(全)

  1 1.数据传送指令
  2 mov
  3 功能:把操作数从原位置传送到目的位置,原操作数不变
  4 格式:mov 目的操作数,原操作数
  5 结果:目标操作数=原操作数,原操作数不变
  6 push
  7 功能:将数据压栈
  8 格式:push 操作数
  9 结果:(sp)=(sp)-2,(ss:[sp])=操作数
 10 pop
 11 功能:将数据出栈
 12 格式:pop 操作数
 13 结果:操作数=(ss:[sp]),(sp)=(sp)+2
 14 pushf
 15 功能:将标志寄存器入栈
 16 格式:pushf
 17 结果:同push
 18 popf
 19 功能:将标志寄存器出栈
 20 格式:popf
 21 结果:同pop
 22 xchg
 23 功能:交换两数的值
 24 格式:xchg 操作数1,操作数2
 25 结果:新操作数1=原操作数2,新操作数2=原操作数1
 26 
 27 2.算数运算指令
 28 add
 29 功能:不进位加法
 30 格式:add 操作数1,操作数2
 31 结果:操作数1=操作数1+操作数2,操作数2不变
 32 sub
 33 功能:不借位减法
 34 格式:sub 操作数1,操作数2
 35 结果:操作数1=操作数1-操作数2,操作数2不变
 36 adc
 37 功能:进位加法
 38 格式:adc 操作数1,操作数2
 39 结果:操作数1=操作数1+操作数2+CF,操作数2不变
 40 sbb
 41 功能:借位减法
 42 格式:sbb 操作数1,操作数2
 43 结果:操作数1=操作数1-操作数2-CF,操作数2不变
 44 inc
 45 功能:自增1
 46 格式:inc 操作数
 47 结果:操作数=操作数+1
 48 dec
 49 功能:自减1
 50 格式:dec 操作数
 51 结果:操作数=操作数-1
 52 cmp
 53 功能:按不借位减法处理,不保留结果
 54 格式:cmp 操作数1,操作数2
 55 结果:类似sub指令
 56 imul
 57 功能:计算有符号数的乘
 58 格式:imul 操作数
 59 结果:同mul
 60 idiv
 61 功能:计算有符号数的乘
 62 格式:idiv 操作数
 63 结果:同div
 64 aaa
 65 功能:把字节当BCD码处理
 66 格式:aaa
 67 结果:若al大于9或af=1,则ah=ah+1,al=al+6;否则将af和vf清零
 68 
 69 3.逻辑指令
 70 and
 71 功能:按位与处理
 72 格式:and 操作数1,操作数2
 73 结果:对比操作数1与操作数2的二进制,同为1则结果取1,否则取0,最后储存到操作数1
 74 or
 75 功能:按位或处理
 76 格式:or 操作数1,操作数2
 77 结果:对比操作数1与操作数2的二进制,同为0则结果取0,否则取1,最后储存到操作数1
 78 not
 79 功能:按位取反
 80 格式:not 操作数
 81 结果:使操作数对应的二进制位上原来为1的变为0,为0的变为1
 82 xor
 83 功能:按异或处理
 84 格式:xor 操作数1,操作数2
 85 结果:对比操作数1与操作数2的二进制,不同为1或0则结果取0,否则取1,最后储存到操作数1
 86 test
 87 功能:按位与操作,但不保留结果
 88 格式:test 操作数1,操作数2
 89 结果:类似and指令
 90 shl
 91 功能:按位左移
 92 格式:shl 操作数,移动的位数(一般由其他寄存器给出)
 93 结果:相当于操作数=操作数*2^(移动位数)
 94 shr
 95 功能:按位右移
 96 格式:shr 操作数,移动的位数
 97 结果:相当于操作数=操作数/2^(移动位数)
 98 sal
 99 功能:带符号按位左移
100 格式:sal 操作数,移动的位数
101 结果:类似shl
102 sar
103 功能:带符号按位右移
104 格式:sar 操作数,移动的位数
105 结果:类似shr
106 rol
107 功能:循环左移
108 格式:rol 操作数,移动的位数
109 结果:相当于把高位移除,补上低位(例如10000010b循环左移一位,则结果为00000101b)
110 ror
111 功能:循环右移
112 格式:ror 操作数,移动的位数
113 结果:相当于把低位移除,补上高位(例如10000010b循环右移一位,则结果为01000001b)
114 rcl
115 功能:带进位的循环左移
116 格式:rcl 操作数,移动的位数
117 结果:实现32位数的移位
118 rcr
119 功能:带进位的循环右移
120 格式:rcr 操作数,移动的位数
121 结果:实现32位数的移位
122 
123 4.转移指令
124 jmp
125 功能:无条件转移
126 格式:jmp 标号
127 结果:跳到标号处执行
128 jcxz
129 功能:条件转移
130 格式:jcxz 标号
131 结果:当(cx)=0时,跳到标号处执行
132 je
133 功能:与cmp搭配,相关标志位ZF
134 格式:je 标号
135 结果:若cmp的结果=0,则跳到标号处执行
136 jb
137 功能:与cmp搭配,相关标志位CF
138 格式:jb 标号
139 结果:若cmp的结果<0,则跳到标号处执行
140 ja
141 功能:与cmp搭配,相关标志位CF、ZF
142 格式:ja 标号
143 结果:若cmp的结果>0,则跳到标号处执行
144 jnb
145 功能:与cmp搭配,相关标志位CF
146 格式:jnb 标号
147 结果:若cmp的结果>=0,则跳到标号处执行
148 jna
149 功能:与cmp搭配,相关标志位CF、ZF
150 格式:jna 标号
151 结果:若cmp的结果<=0,则跳到标号处执行
152 loop
153 功能:与cx搭配,循环指令
154 格式:loop 标号
155 结果:若(cx)!=0,则跳到标号处执行
156 call
157 功能:与ret搭配,实现子程序
158 格式:call 标号
159 结果:先把IP压栈,再跳到标号处
160 ret
161 功能:与call搭配,实现子程序
162 格式:ret
163 结果:取出IP,再返回到call处
164 retf
165 功能:与call搭配,实现子程序
166 格式:retf
167 结果:取出IP,再取出CS,最后返回call处
168 int
169 功能:与retf搭配,实现自动例程
170 格式:int n
171 结果:先把CS压栈,再压入IP,再进入中断例程
172 iret
173 功能:与int n搭配,实现自动例程
174 格式:retf
175 结果:先取出IP,再取出CS,再返回到int n处
176 
177 5.处理机控制指令
178 cld
179 结果:置DF为0
180 std
181 结果:置DF为1
182 cli
183 结果:置IF为0
184 sti
185 结果:置IF为1
186 nop
187 结果:什么也不做,占一个字节
188 clc
189 结果:置CF为0
190 cmc
191 结果:置CF取反
192 stc
193 结果:置CF为1
194 hlt
195 结果:使处理器处于暂停,直到收到一个中断
196 wait
197 结果:使处理器处于等待,直到收到一个外部中断
198 esc
199 结果:换码,格式为esc mem,直到一个内存单元的内容送入数据总线
200 lock
201 结果:锁住当前指令段,直到联合指令结束,避免破坏
202 
203 6.串处理指令
204 movsb
205 结果:将ds段的内容复制到es段,字节操作
206 movsw
207 结果:将ds段的内容复制到es段,字操作
208 cmps
209 结果:将ds段的内容与es段的内容进行比较
210 scas
211 结果:将al(或ax)的值与es段进行扫描
212 lods
213 结果:从ds段中取出一个字符
214 stos
215 结果:将一个字符写入ds段中
216 rep
217 结果:与movsb或movsw指令连用
218 repe
219 结果:与cmps指令连用,相等继续
220 repne
221 结果:与cmps指令连用,不相等继续

 

posted on 2018-02-05 12:06  叶倾仙  阅读(387)  评论(0编辑  收藏  举报

导航