文档介绍:一. 数据传送指令
数据传送是计算机中最基本、最重要的一种操作,传送指令也是最常使用的一类指令
传送指令把数据从一个位置传送到另一个位置
除标志寄存器传送指令外,均不影响标志位
重点掌握 MOV XCHG XLAT PUSH POP LEA
1. 传送指令MOV
2. 交换指令XCHG
3. 地址传送指令
4. 堆栈操作指令
5. 字节、字转换指令
6. 标志j寄存器传送指令
7. XLAT换码指令
MOV指令传送功能图解
立即数imm
段寄存器seg
CS DS ES SS
通用寄存器
AX BX CX DX
BP SP SI DI
存
储
器
MOV reg/mem,imm ;立即数送至寄存器或主存--立即数传送
MOV reg/mem/seg,reg ;寄存器送(段)寄存器或主存--寄存器传送
MOV reg/seg,mem ;主存送(段)寄存器--存储器传送
MOV reg/mem,seg ;段寄存器送寄存器或主存--段寄存器传送
MOV指令并非任意传送!
mem
reg
二. 算术指令
算术运算类指令用来执行二进制的算术运算:加减乘除。
这类指令会根据运算结果影响状态标志,有时要利用某些标志才能得到正确的结果;使用他们时请留心有关状态标志
重点掌握
加法指令:ADD、ADC、INC
减法指令:SUB 、SBB、DEC、CMP、NEG
加法和减法指令
加法指令:ADD, ADC和INC
减法指令:SUB, SBB, DEC, NEG和CMP
他们分别执行字或字节的加法和减法运算,除INC和DEC不影响CF标志外,其他按定义影响全部状态标志位
操作数组合:
运算指令助记符 reg, imm/reg/mem
运算指令助记符 mem, imm/reg
第2章指令系统及汇编语言程序设计
8088/8086的寻址方式
8088/8086的指令系统
本次课内容
三. 逻辑运算和移位指令
1. 逻辑运算指令 AND OR XOR NOT TEST
2. 移位指令 SHL SHR SAR
3. 循环移位指令 ROL ROR RCL RCR
该类指令以二进制位为基本单位进行数据的操作
注意这些指令对标志位的影响, 尤其CF
1. 逻辑运算指令
AND、OR、XOR和TEST设置CF=OF=0,根据结果设置SF、ZF和PF状态,而对AF未定义;它们的操作数组合与ADD、SUB等一样:
运算指令助记符 reg, imm/reg/mem
运算指令助记符 mem, imm/reg
NOT不影响标志位,操作数与INC、DEC和NEG一样:
NOT reg/mem
逻辑与指令AND
对两个操作数执行逻辑与运算,结果送目的操作数
AND dest,src ;dest←dest∧src
只有相“与”的两位都是1,结果才是1;否则,“与”的结果为0
逻辑或指令OR
对两个操作数执行逻辑或运算,结果送目的操作数
OR dest,src ;dest←dest∨src
只要相“或”的两位有一位是1,结果就是1;否则,结果为0
逻辑异或指令XOR
对两个操作数执行逻辑异或运算,结果送目的操作数
XOR dest,src ;dest←dest⊕src
只有相“异或”的两位不相同,结果才是1;否则,结果为0