微机原理与接口技术--第3章3.3.3逻辑和移位指令-550

合集下载

微机原理与接口技术课件微机第三章ppt课件

微机原理与接口技术课件微机第三章ppt课件

15
8 7 6 5 43 210
1 0 0 0 1 0 D W MOD REG R/M
操作码
0:数据从寄存器传出 1:数据传至寄存器
2.立即数寻址指令的编码 3.包含段寄存器的指令的编码 4.段超越前缀指令的编码
3-3 8086的指令集
8086指令系统按功能可分为6大类型:
1、 数据传输类 2、 算术运算类 3、 逻辑运算和移位类 4、 串操作类 5、 控制转移类 6、 处理器控制类
一、数据传送指令
数据传送指令又可以分成4种:
l 通用数据传送 l累加器专用传送指令 l 目的地址传送 l 标志寄存器转送
指令的共同特点是:
1、除POP和SAHF指令外,这类指令的操作 结果不会影响FR寄存器中的标志。
2、指令中有两个操作数,目的操作数和源 操作数,其执行过程为:
目的操作数 源操作数,
在字符串运算指令中作源变址寄存器用 SI 在间接寻址中作变址寄存器用
在字符串运算指令中作目标变址寄存器用 DI 在间接寻址中作变址寄存器用
BP 在间接寻址中作基址指针用
SP 在堆栈操作中作堆栈指针用
隐含性质 不能隐含 隐含 隐含 隐含 隐含 不能隐含 隐含 隐含 不能隐含 隐含 不能隐含 隐含 不能隐含 隐含 不能隐含 不能隐含 隐含
例: MOV AX , [3E4CH] ;A1 4C 3E MOV [1234H] , AL ;A2 34 12
两个概念
段超越: MOV AX , [3E4CH] MOV AX , ES:[3E4CH]
符号地址: MOV AX , RESULT
如何区分RESULT是立即数还是符号地址?
如果 RESULT EQU 3E4CH; 立即数 MOV AX,RESULT

《微机原理与接口技术》课件——第3章8086指令系统(3-3)

《微机原理与接口技术》课件——第3章8086指令系统(3-3)

•例如:
• MOV SI,2000H
• MOV DI,3000H
• MOV CX,100 ;CX←传送次数
• CLD ;设置DF=0,实现地址增加
•again: MOVSB ;传送一个字节
• DEC CX ;传送次数减1
• JNZ again ;判断传送次数CX是否为0,不为0,则转

移again处执行;
17
§3-3 8086的指令系统 ——字符串处理指令
④DF标志:控制字符串处理的方向。 DF=0为递增方向。DS:SI指向源串首地址,每执行一次 串操作:字节串操作时,SI、DI分别增1;字串操作时,SI 和DI分别增2; DF=1为递减方向。DS:SI指向源串末地址,每执行一次 串操作:字节串操作时减1;字串操作时减2。 STD指令使DF置1,CLD指令将DF清0。 ⑤串长度:要处理的字符串长度(字节或字数)放在CX寄存器 中。
②对于存储器操作,需指明是字还是字节。
注意:指令执行后,对标志位无影响。
例 NOT AX
;AX AX取反
NOT BL
;BL BL取反
NOT BYTE PTR[BX] ;对存储单元字节内容取反
后送回该单元
3
§3-3 8086的指令系统 ——逻辑运算和移位指令
⑵ AND逻辑与指令(Logical AND) 指令格式:AND 目的,源 指令功能:目的目的∧源 有置“0”功能 ⑶ OR逻辑或指令(Logical OR) 指令格式:OR 目的,源 指令功能:目的目的∨源 有置“1”功能。
15
§3-3 8086的指令系统 ——字符串处理指令
四、字符串处理指令
8086CPU提供了串操作指令,使长字符串的处理更快速、

微机原理与接口技术3[4逻辑]

微机原理与接口技术3[4逻辑]

15
循环移位指令
不带进位位的循环移位 带进位位的循环移位 左移 ROL 右移 ROR 左移 RCL 右移 RCR
循环移位指令的格式、 循环移位指令的格式、对操作数的要求与非循环移位 指令相同
16
不带进位位的循环移位
CF
CF
17
带进位位的循环移位
CF
CF
18
循环移位指令的应用
用于对某些位状态的测试; 用于对某些位状态的测试; 高位部分和低位部分的交换; 高位部分和低位部分的交换; 与非循环移位指令一起组成32位或更长字长数 与非循环移位指令一起组成32位或更长字长数 的移位。 的移位。 P97例 例
4
“或”运算指令
格式: 格式: OR OPRD1,OPRD2 , 操作: 两操作数相“ 操作: 两操作数相“或”,结果送目标地址 实现两操作数相“或”的运算; 实现两操作数相“ 的运算; 使某些位不变,某些位置“ ” 使某些位不变,某些位置“1” 在不改变操作数的情况下使OF=CF=0 在不改变操作数的情况下使 P94 例
7
“测试”指令
格式: 格式: TEST OPRD1,OPRD2 , 操作: 执行“ 运算, 操作: 执行“与”运算,但运算的结果不 送回目标地址。 送回目标地址。 应用: 应用:常用于测试某些位的状态 P94例 例
8
逻辑运算指令的几点讨论
与指令---拆字、 与指令 拆字、屏蔽信息 拆字 或指令---拼字 拼字、 或指令 拼字、组合信息 异或指令清零
19
程序例
MOV SI,1000H MOV DI,3000H MOV CX,4 BBB: BBB:MOV AL,[SI] MOV BL,AL AND AL,0FH OR AL,30H MOV [DI],AL INC DI MOV AL,BL

微机原理与接口技术(楼顺天)-第3章3

微机原理与接口技术(楼顺天)-第3章3

3.4 数据传送类指令
1.通用传送指令(MOV)
格式: MOV DST, SRC ;(DST)←(SRC) 说明:将SRC(源操作数)中的一个字节或一 个字传送到DST(目的操作数)所指定的位置。 MOV指令可以在立即数、存储单元、寄存器和 段寄存器之间传送数据,其传送路径如图3.3 所示。
立即数
AL AH
∴指令执行后,(AX)=1234H
3.4 数据传送类指令
设在数据段(DS段)有下面的变量定义: DATA1 DW 1234H , 5678H DATA2 DB 20H , 30H , 40H DATA3 DW 10 DUP(?) 则传送指令可以有: MOV BX,1122H MOV DATA3,BX ; (DATA3) (BX)
AX 78AD ????
3.4 数据传送类指令
⑤ 通用寄存器←→段寄存器
例6
MOV DS,AX MOV BX,ES
AX 1234 ES AA55
DS 1234 ???? BX AA55 ????
3.4 数据传送类指令
⑤ 通用寄存器←→段寄存器
例7
MOV DX,CS
DX 1234 ????
CS 1234
3.4 数据传送类指令
设在数据段(DS段)有下面的变量定义: DATA1 DW 1234H , 5678H DATA2 DB 20H , 30H , 40H DATA3 DW 10 DUP(?) 则传送指令可以有: DATA1 34H MOV AX , DATA1 12H 78H ; AX (DATA1) 56H
Load Effective Address 格式:LEA REG , MEM
功能:指令的功能是将源操作数MEM (存储单元)的有效地址(偏移地址) 传送到寄存器REG。 这是一条特殊指令,它传送的不 是操作数本身,而是操作数的有 效地址。 注:DST REG为通用REG,一般用BX、BP、SI、DI。

微机原理 3-3指令系统Ⅳ逻辑移位

微机原理 3-3指令系统Ⅳ逻辑移位

微机原理与接口技术
第3章 指令系统 Ⅳ
3、算术左移指令 SAL
形式1: SAL 操作数, 1
形式2: SAL 操作数, CL
功 能:完全与逻辑左移指令SHL一样。
微机原理与接口技术
第3章 指令系统 Ⅳ
4、算术右移指令 SAR
形式1: SAR 操作数, 1 形式2: SAR 操作数, CL 功 能: 将操作数连同CF的内容一起右移1位(CL) 位。高位移空的位补“符号位”。 注 解: (1)操作数右移N位,具有带符号数除以2N的功能。 (最后dest不能为0) (2)该指令有如下2种形式: SAR R,1/CL ;把寄存器内容右移1位或(CL)位 SAR M,1/CL ;把内存数内容右移1位或(CL)位
微机原理与接口技术
第3章 指令系统 Ⅳ
5、不带进位标志左循环移位指令 ROL
形式1:ROL 操作数, 1 功 能:把操作数的内容首尾连接起来循环左移1位。 CF的内容为操作数最高位的原值,CF原值丢失。
形式2:ROL 操作数, CL
功 能:把操作数的内容首位连接起来进行循环左移, 移位的次数为CL寄存的值。 注 解: (1)CF为最后移入值,OF值同SHL。
功 能 : 将操作数连同CF的内容一起左移,尾部空 位补“0”,移动次数为CL中寄存的数。 注 解: (1)操作数左移N位,具有无符号数乘2N的功能, 但运算速度比乘法快很多。(最后dest不能为0)
(2)CF为最后移入值,OF不定。
微机原理与接口技术 判断: SHL AX,1 SHL AX,CL SHL DX,CL SHL AX,2
2、OR 3、NOT 4、XOR
5、TEST
微机原理与接口技术
第3章 指令系统 Ⅳ

微机原理与接口技术第3章(指令部分)

微机原理与接口技术第3章(指令部分)
第 3 章 指令系统及汇编语言程序设计
例:编程计算 0+1+2+3+4+ -----10 编程计算
MOV AL,0 , MOV BL,1 , MOV CL,10 NEXT:ADD AL,BL , INC BL DEC CL JNZ NEXT ;CL≠0 转 ≠ HLT
1
3.1 概述 一、指令包含的基本内容
12
(3)相对寻址
例: MOV AX, [SI+100H]
;结果 : 结果 AX (DS×16+SI+100H) ×
例:MOV AL,[BP+DATA] MOV AL, DATA[BP] ; DATA是符号表示的位移量。 表示的位移量 是符号表示的位移量。
结果 : AL (SS×16+BP+DATA) ×
11
(2)间接寻址 例:MOV AX,[BX] , •结果 : AX 结果 (DS×16+BX) ×
...
3000H:0000H : • EA= BX /SI /DI , 物理地址=DS*16+EA 物理地址 • EA= BP 物理地址=SS*16+EA 物理地址 :1234H :50H :1235H :30H
1. 做什么操作? 做什么操作? MOV ,ADD, OR,CMP等助记符 等助记符
2. 操作的数据是什么? ①CPU内的寄存器; 操作的数据是什么? 内的寄存器 内的寄存器; 内存的某一个或几个单元 单元; ②内存的某一个或几个单元; 结果放在那里? 3. 结果放在那里? 立即数。 ③立即数。 端口; 端口 ④I/O端口; 下一条指令在哪里? 4. 下一条指令在哪里? IP←IP+1

第03章 指令系统 微机原理与接口技术 课件

第03章  指令系统 微机原理与接口技术 课件
微机原理与接口技术 第三章 指令系统
2020/10/3
1
第一节 指令的基本结构和执行时间
指令
指令系统
8086/8088CPU的指令系统共包含92种基 本指令,按照功能可将它们分为6大类:
• 数据传送指令
• 算术运算指令
• 逻辑运算和移位指令
• 串操作指令
• 控制转移指令
• 处理器控制指令
2020/10/3
执行的结果为(AX)=789AH
2020/10/3
12
2.选择BP作为间址寄存器 操作数在堆栈段(没有使用段超越时)
MOV [BP],AX 若已知(SS)=6000H,(BP)=1500H,则操作数的
物理地址为: 6000H×10H+1500H=61500H
若已知(AX)=5566H,则指令的执行结果为: 66H送到61500H内存单元, 55H送到61501H内存单元
2020/10/3
13
无论用SI、DI、BX或BP作为间址寄存器, 都允许段超越。
MOV ES:[DI],AX MOV DX,DS:[BP]
2020/10/3
14
五、变址寻址(Indexed Addressing)
以指定的寄存器内容, 加上指令中给出的8位或 16位位移量(必须要以 一个段寄存器作为基地 址),作为操作数的地 址。
2020/10/3
7
直接寻址:
MOV AX,[3200H]
如果DS=5000H,则所 寻找的操作数的物理 地址: 5000H×10H+3200H =50000H+3200H
=53200H
2020/10/3
8
段超越 : MOV BX,ES:[2100H]

微机原理汇编与接口技术第3章

微机原理汇编与接口技术第3章

“除10取余”法
; 将8位二进制数扩展为16位 ; 商→AL,余数→AH(个位数) ;个位暂存 ; 商→AL,余数→AH(十位数) ; BCD数十位与个位合并 ; AH中余数为BCD数百位 ;BCD数十位与个位送AL
11
如,用除10取余法将8位二进制数FFH转换为BCD数 255H的二进制运算如下图所示
13
3.1.1 乘除法指令
格式:CBW ; AL的最高位扩展至AH CWD ; AX的最高位扩展至DX CWDE ;AX的最高位扩展至EAX的高16位 CDQ ;EAX的最高位扩展至EDX

指令都隐含操作数

在做8位除以8位、16位除以16位、 32位除以
32位的符号整数除法之前,应先扩展AL或AX或 EAX中的被除数。
例3.3字变量W和字节变量B分别存放着两个非压缩BCD数,编 写求两数之积,并将它存储到JJ字节变量中的程序。 程序段如下: W DW 0307H B DB 9 JJ DB 3 DUP(0) MOV AL,BYTE PTR W ;AL=07H MUL B ;AX=003FH AAM ;AX=0603H MOV WORD PTR JJ,AX MOV AL,BYTE PTR W+1 ;AL=03H MUL B ;AX=001BH AAM ;AX=0207H ADD AL,JJ+1 ;07H+06H=0DH, 即AL=0DH AAA ;进位直接加入AH!AX=0303H MOV WORD PTR JJ+1,AX
26
3.1.2 BCD数调整指令
(2)除法调整 格式: AAD 功能:将AX中的两位非压缩BCD数变换成二进制数集 中放在AL中。 如: 注: 此指令可对被除数进行预 MOV AX,0906H MOV DL,06H 调整 ;AX=0060H 加、减和乘法调整在相应 AAD DIV DL ;AL=10H,AH=0 运算操作之后进行,而除 MOV DL,AH ;存余数 法的调整在除法操作之前 AAM ;AX=0106H 进行 27

微机原理与接口技术第三章(2)

微机原理与接口技术第三章(2)

第3章 3.4 串处理指令
串操作指令就是用一条指令实现对一串字符或数据 的操作。它是8086唯一的一类源操作数和目的操 作数都在存储单元的指令。 串操作指令执行时,遵循以下的隐含约定: 地址:总是用DS:SI指向源串首址,源串允许使 用段超越前缀来修改段地址;ES:DI指向目的串 首址,但目的串不允许使用段超越前缀修改ES。 处理单位:可以对字节串进行操作,也可以对字 串进行操作。 处理方向:与方向标志DF有关。DF=0,表示内 存地址由低到高,DF=1,表示内存地址由高到 低。
JMP/Jcc/LOOP/JCXZ CALL/RET INT n/IRET 常用系统功能调用 控制转移类指令通过改变IP(和CS)值, 实现程序执行顺序的改变
第2章:目标地址的寻址方式
相对寻址方式
用标号表达
指令代码中提供目的地址相对于当前IP的位移 量,转移到的目的地址(转移后的IP值)就是 当前IP值加上位移量
目标地址的寻址方式相对寻址方式指令代码中提供目的地址相对于当前ip的位移量转移到的目的地址转移后的ip值就是当前ip值加上位移量直接寻址方式指令代码中提供目的逻辑地址转移后的cs和ip值直接来自指令操作码后的目的地址操作数间接寻址方式指令代码中指示寄存器或存储单元目的地址从寄存器或存储单元中间接获得用标号表达用标号表达用寄存器或存储器操作数表达第2章
TEST指令主要来测试指定位是1还是0。 TEST AL,80H TEST [BX], 01H
第3章:2. 移位指令
将操作数移动一位或多位,分成逻辑移位 和算术移位,分别具有左移或右移操作 移位指令的第一个操作数是指定的被移位 的操作数,可以是寄存器或存储单元;后 一个操作数表示移位位数:
该操作数为1,表示移动一位 该 操 作 数 为 CL , CL 寄 存 器 值 表 示 移 位 位 数 (移位位数大于1只能用CL表示)

微机原理与接口技术:逻辑运算指令

微机原理与接口技术:逻辑运算指令

3.3.3 逻辑运算与移位指令8088/8086CPU提供了丰富的逻辑运算和移位指令。

逻辑运算指令包括与、或、非、异或和测试指令,与、或、非、异或等指令的功能与第一章中介绍的基本逻辑门的功能相同,这些指令使我们可以用软件的方法实现逻辑运算。

移位指令包括左移、右移、循环左移和循环右移指令。

指令可以对8位或16位操作数进行操作。

除逻辑非指令外,其它指令的执行都会使标志位CF=OF=0,AF值不定,对SF、PF和ZF产生影响。

1. 逻辑运算指令(1)逻辑与指令AND指令格式:AND OPRD1, OPRD2功能:OPRD1与OPRD2按位进行与操作,结果回送OPRD1中。

说明:OPRD1可以是寄存器或存储器操作数。

OPRD2可以是寄存器或存储器操作数,还可以是立即数。

与操作可以对特定位清0。

例如:AND AL, 0FH ;取AL的低4位,屏蔽高4位。

AND AX, BXAND [SI], AL ;内存单元[SI]与AL与,结果存回内存单元。

AND DX, [BX+SI]【例题3-8】AX与BX进行与操作:MOV AX, 7E6DHMOV BX, 0D563HAND AX, BX ;AX=5461H, BX=0D563H将AL中的ASCII码转换为二进制数:MOV AL, 35HAND AL, 0FH ;AL=5与指令常用来屏蔽某些位(使其为0),其余位保持不变。

如:想知道AL中的第5位的值,可以先安排如下一条指令,使AL中的其它位都置为0,而只保留下第5位的值:AND AL, 0010 0000B用与指令设置标志位CF=OF=0:AND AX, AX ;AX不变,CF=OF=0(2)逻辑或指令OR指令格式:OR OPRD1, OPRD2功能:OPRD1与OPRD2按位进行或操作,结果回送OPRD1中。

说明:OPRD1可以是寄存器或存储器操作数。

OPRD2可以是寄存器或存储器操作数,还可以是立即数。

或操作可以对特定位置1。

微机原理与接口技术第3章

微机原理与接口技术第3章
35
第35页/共92页
串操作指令流程(以传送操作为例)
取源串地址 取目标串地址
传送一个字节或字 修改地址指针
设串长度
修改串长度值
设操作方向
传送完否?
N
Y
36
第36页/共92页
1. 串传送指令
• 格式: MOVS OPRD1,OPRD2 MOVSB MOVSW
• 串传送指令常与无条件重复前缀连用
37
第14页/共92页
5.“测试”指令
• 格式: • TEST OPRD1,OPRD2
• 操作: • 执行“与”运算,但运算的结果不送回目标地址。
• 应用: • 常用于测试某些位的状态
15
第15页/共92页
例:
• 从地址为3F8H的 端口中读入一个字节数,当该数的 bit1, bit3, bit5位同时为1时,可从38FH端口将 DATA为首地址的一个字输出,否则就不能进行数 据传送。 编写相应的 程序段。
1200H

JMP

MOV
第57页/共92页
代 码 段
57
段内间接转移例
• JMP WORD PTR[BX] 设:BX=1200H
IP BX=1200
第58页/共92页

JMP

指令码

XXH XXH
;ZF=1转移
8
第8页/共92页
2.“或”运算指令
• 格式: • OR OPRD1,OPRD2
• 操作: • 两操作数相“或”,结果送目标地址
9
第9页/共92页
“或”指令的应用
• 实现两操作数 相 “或”的 运算 • OR AX,[DI]

微机原理与接口技术 第三章3

微机原理与接口技术 第三章3
10
;清SI ;清CF
问题思考: 问题思考:
溢出? (1) 什么叫溢出?什么叫进位? ) 什么叫溢出 什么叫进位? (2) 有进位就有溢出,没有进位就没有溢出? ) 有进位就有溢出,没有进位就没有溢出? 溢出------是指带符号数的补码溢出 溢出------是指带符号数的补码溢出。 是指带符号数的补码溢出。 字长为 n 位带符号数,补码运算能表示范围为 n-1 带符号数,补码运算能表示范围为:-2 ~+2 n+1 –1 如果运算结果超出该范围,叫补码溢出,简称溢出。 如果运算结果超出该范围,叫补码溢出,简称溢出。 溢出 运算错误。 在溢出时,造成运算错误 在溢出时,造成运算错误。 进位------是指运算结果的最高位向更高位的进位 进位------是指运算结果的最高位向更高位的进位。 是指运算结果的最高位向更高位的进位。 有进位,CF=1;无进位, CF=0 有进位,CF=1;无进位,
溢出 结果应为2 结果应为2,错
不溢出 异号数相加 不可能有溢出
15
(3) 带符号数溢出
二进制数 0 0 0 0 1 0 0 1 相 加 +
1 0 1 1 1 1 1 0 0
看作无符号数 9 + 124
看作带符号数 + 9 + +1 2 4
1 0 0 0 0 1 0 1 标志 CF=0,OF=1
133 CF=0
13
(1) 带符号数和无符号数都不溢出
二进制数 0 0 0 0 0 1 0 0 相 加 + 0 0 0 0 1 0 1 1 + 看作无符号数 4 11 + 看作带符号数 + 4 +1 1
0 0 0 0 1 1 1 1 标志 CF=0,OF=0

微机原理与接口技术(第二版)课后习题答案

微机原理与接口技术(第二版)课后习题答案

微机原理与接口技术(第二版)课后习题答案第1章作业答案1.1 微处理器、微型计算机和微型计算机系统三者之间有什么不同?解:把CPU(运算器和控制器)用大规模集成电路技术做在一个芯片上,即为微处理器。

微处理器加上一定数量的存储器和外部设备(或外部设备的接口)构成了微型计算机。

微型计算机与管理、维护计算机硬件以及支持应用的软件相结合就形成了微型计算机系统。

1.2 CPU在内部结构上由哪几部分组成?CPU应该具备哪些主要功能? 解:CPU主要由起运算器作用的算术逻辑单元、起控制器作用的指令寄存器、指令译码器、可编程逻辑阵列和标志寄存器等一些寄存器组成。

其主要功能是进行算术和逻辑运算以及控制计算机按照程序的规定自动运行。

1.3 微型计算机采用总线结构有什么优点?解:采用总线结构,扩大了数据传送的灵活性、减少了连线。

而且总线可以标准化,易于兼容和工业化生产。

1.4 数据总线和地址总线在结构上有什么不同之处?如果一个系统的数据和地址合用一套总线或者合用部分总线,那么要靠什么来区分地址和数据?解:数据总线是双向的(数据既可以读也可以写),而地址总线是单向的。

8086CPU为了减少芯片的引脚数量,采用数据与地址线复用,既作数据总线也作为地址总线。

它们主要靠信号的时序来区分。

通常在读写数据时,总是先输出地址(指定要读或写数据的单元),过一段时间再读或写数据。

1.8在给定的模型中,写出用累加器的办法实现15×15的程序。

解: LD A, 0LD H, 15LOOP:ADD A, 15DEC HJP NZ, LOOPHALT第 2 章作业答案2.1 IA-32结构微处理器直至Pentillm4,有哪几种?解:80386、30486、Pentium、Pentium Pro、Peruium II 、PentiumIII、Pentium4。

2.6 IA-32结构微处理器有哪几种操作模式?解:IA一32结构支持3种操作模式:保护模式、实地址模式和系统管理模式。

《微机原理与接口技术》教学课件 第3章

《微机原理与接口技术》教学课件 第3章

立即寻址
寄存器寻址
直接寻址
寄存器间接寻 址
寄存器相对寻 址
基址加变址寻 址
相对基址加变 址寻址
1 立即寻址
3.1 8086指令系统入门
指令中直接给出指令的操作数(跟在操作码的后面),取出指 令的同时就可以获得操作数,这种寻址方式称为立即寻址,这种操 作数称为立即数。立即寻址方式主要用来给寄存器或存储器赋初值。
此外,在8086指令系统中,操作码的长度一般为1~2个字节,指令的总长度一般为1~6个字节。
3.1 8086指令系统入门
把一条指令中所包含的二进制代码的位数称为 指令字长,它通常是机器字长的一倍、两倍、多倍 或半倍。例如,8086 CPU的字长为16位,故其指 令长度可以是1个字节、1个字或多个字节等。
3.1.2 指令格式
计算机指令通常由操作码和操作数两部分组成,其格式如下: 操作码 [目的操作数][,源操作数]
操作码指出了计算机 所要执行的基本操作
操作数则指明了操作 的对象
指令中操作数的个数由指令的功能决定。在8086指令系统中,根据指令中操作数个数的不同,可以将指 令分为:无操作数指令、单操作数指令和双操作数指令。
内容提要
掌握8086指令的分类和格式。 掌握8086指令中操作数和程序转移地址的寻址方式。 掌握调试程序DEBUG的使用方法。 掌握数据传送类指令的功能及用法。 掌握算术运算与逻辑运算类指令的功能及用法。
4
3.1 8086指令系统入门
3.1.1 指令分类
计算机指令是指计算机所能识别并执行的基本操作命令,这些全部操作命令的集合被称为计算机 的指令系统。
行指令: MOV AX, COUNT[BX] 操作数的物理地址为:(DS)×16+(BX)+COUNT=3000H×16+1000H+2000H=33000H,指令

微机原理与接口技术-第3章2

微机原理与接口技术-第3章2

执行前
(1) SAL AL, 1
(2) SAR AL, 1
算术右移
1
1 0 1 0
(3) SHL AL, 1
(4) SHR AL, 1
逻辑右移
01101000
01011010
算术左移与逻辑左移的结果相同 算术右移与逻辑右移的结果不同 微机原理与接口技术
32 32
数据移位的例子
MOV DX,6075H ; DX=01100000 01110101B
只有相与的两位都是 1 , 结果才是 1 ;否则与的结果 为0。
微机原理与接口技术
7 7
AND与TEST指令的关系, 同SUB与CMP指令的关系一样。
测试指令
TEST dst,src

功能: dst & src 对两个操作数执行逻辑与运算,但结果不回送给目的操 作数。 仅影响标志位,两个操作数都不变。
;dx←7〓bx+3〓ax
微机原理与接口技术
36 36
移位指令对标志的影响
按照移入的位设置进位标志CF
根据移位后的结果影响SF、ZF、PF
对AF没有定义
如果进行一位移动,则按照操作数的最高符号位 是否改变,相应设置溢出标志OF: 如果移位前的操作数最高位与移位后操作数的最 高位不同(有变化),则OF = 1;否则OF = 0。 当移位次数大于1时,OF不确定
当移位次数大于1,OF不定。
微机原理与接口技术
22 22
【例】
MOV AL, 02H
算术左移和逻辑左移
SAL AL, 1
MOV AL, 02H SAL AL, 4 MOV AL, 02H MOV CL, 4
;AL: 0000 0010 ; AL: 0000 0100
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
33
2. 循环移位指令
不带进位的循环移位
左移 ROL 右移 ROR
带进位的循环移位
左移 RCL 右移 RCR
指令格式、对操作数的要求与非循环移位指令相同
34
不带进位的循环移位ROL和ROR
CF CF
35
带进位的循环移位RCL和RCR
CF CF
36
循环移位指令的应用
用于对某些位状态的测试; 高位部分和低位部分的交换; 与非循环移位指令一起组成32位或更长字
14
指令应用例3
例3-10:将AX和CF清零。 解:实现方法有多种,如下: 方法1: AND AX,0 方法2: XOR AX,AX 方法3: SUB AX,AX
15
5.“测试”指令
格式:
TEST OPRD1,OPRD2
操作:
执行“与”运算,但运算的结果不送回目标地址。
应用:
常用于在不破坏目标操作数内容的情况下测试操 作数某些位是“1”还是“0”。
AND AX, 1110111101111111B
6
2.“或”运算指令
格式:
OR dest,src
操作:
两操作数相“或”,结果送目标地址
7
“或”指令的应用
实现两操作数相“或”的运算
OR AX,[DI]
使某些位不变,某些位置“1”
OR CL,0FH
在不改变操作数的情况下使OF=CF=0
OR AX,AX
8
“或”指令应用例
OR BX, 0001 0000 1000 0000B
9
3.“非”运算指令
格式:
NOT OPRD
操作:
操作数按位取反再送回原地址
注:
指令中的操作数不能是立即数 指令的执行对标志位无影响
10
“非”指令应用例
例:NOT BYTE PTR[BX] NOT AL
移动2次
0
00011010
CF
CF
0
CF
0
29
算术右移SAR
格式: SAR OPRD,1 SAR OPRD,CL
有符号数 的右移
CF
30
非循环移位指令的应用
左移可实现乘法运算
每左移1位,相当于给目标操作数乘以2
右移可实现除法运算
每右移1位,相当于给目标操作数除以2
31
非循环移位指令例1
长数的移位。
37
循环移位指令例1
例:设CF=0,执行以下程序段。 MOV AL,82H ROL AL,1
执行结果:(AL)=05H,CF=1 若换为RCL AL,1 执行结果:(AL)=04H,CF=1
38
循环移位指令例2
例3-4-20:已知(AL)=12H, CF=1,求: 执行下列指令后,(AL)=?, CF=? (1)ROR AL,1 (2)RCR AL,1 解:(1)(AL)=09H, CF=0 (2)(AL)=89H, CF=0
逻辑运算综合例1
5. 设DL=55H,执行指令后能使DL中的数据为
OAAH 的 指 令 是 (
)。
A.TEST DL,OAAH
B.OR DL,OAAH
D. XOR DL,OFFH
题目答案:D
19
逻辑运算综合例2
6. 无论BX中原有的数是奇数或偶数,若要使 BX中的数一定为奇数,应执行的指令是( )。 A. ADD BX,1 B. OR BX,1 C. XOR BX,1 D. TEST BX,1
25
算术左移SAL
算术左移指令:
SAL OPRD,1 SAL OPRD,CL
有符号数
CF
0
移动一位后,若CF状态与最高位不相等,则OF=1;否则OF=0
26
逻辑左移SHL
逻辑左移指令:
SHL OPRD,1 SHL OPRD,CL
无符号数
CF
0
移动一位后,若CF状态与最高位不相等,则OF=1;否则OF=0 算数左移和逻辑左移的移动原理相同
16
“测试”指令例1
例: TEST AL,02H TEST AX,0040H
17
“测试”指令例2
例:判断A单元最低位是否为0.
假定(A)=0AEH.
程序:MOV AL,A
TEST AL,01H;指定测试AL的最低位 JZ EVEN;指定位=0转EVEN
…… 奇数处理
……
EVEN:偶数处理
18
例3-14:执行以下指令 MOV AL,82H SHR AL,1 若换位SAR AL,1,则结果是?
32
非循环移位指令例2
例3-4-15:已知(AL)=80H,(CL)=03H, 求执行下列指令后,(AL)=?, CF=? (1)SAR AL, CL (2)SHR AL, CL 解:(1)(AL)=0F0H, CF=0 (2)(AL)=10H, CF=0
11
4.“异或”运算指令
格式:
XOR OPRD1,OPRD2
操作:
两操作数相“异或”,结果送目标地址
例: XOR BL,80H XOR AX,AX
两操作数自身相异或,结果=? 12
“异或”指令应用例1
XOR AL,1010 0000B
13
“异或”指令应用例2
例1:将AL中的第1、3、5、7位求反,0、2、 4、6位保持不变。 MOV AL,0FH XOR AL,0AAH
3
1.“与”指令:
格式:
AND dest,src
操作:
两操作数相“与”,结果送目标地址。
4
“与”指令的应用
实现两操作数按位相与的运算
AND BL,[SI]
使目标操作数的某些位不变,某些位清零
AND AL,0FH
在操作数不变的情况下使CF和OF清零
AND AX,AX
5
“与”指令应用例
27
逻辑右移SHR
格式: SHR OPRD,1 SHR OPRD,CL
0
无符号数 的右移
CF
移动一位后,若次高位与最高位不相等,则OF=1;否则OF=0
28
逻辑右移例:
MOV AL,68H
MOV CL,2
SHR AL,CL
AL
0
01101 0 00
0
AL
移动1次
0
0011010 0
0
AL
题目答案:D
22
2、移位指令
非循环移位指令 循环移位指令
23
移位指令
移位指令在格式上应注意的两点:
移动一位时由指令直接给出; 移动两位及以上,则移位次数由CL指定。
学习移位指令应注意:
操作码的表示; 指令的工作原理。
24
1. 非循环移位指令
逻辑左移 SHL 算术左移 SAL 逻辑右移 SHR 算术右移 SAR
题目答案:B
20
逻辑运算综合例3
7. 将寄存器AL的低4位屏蔽,应当用的指令是 ( )。 A. AND AL,0FH B. AND AL,0F0H C. XOR AL,0FH D. XOR AL,0F0H
题目答案:B
21
8. AND指令用于( )。 A. 取一个数中的某一位 B. 置一个数中的某些位为1 C. 将一个数置为0 D. 置一个数中的某些位为0
39
循环移位指令例3
例:将一个16位无符号数x除以512,该数原 存在以DATA为首地址的两个连续单元中。
MOV AX,DATA MOV CL,9 SHR AX,CL HLT
40
逻辑运算与移位类指令
逻辑运算指令 逻辑运算指令对操作数的要求大多与MOV指 令相同。
“非”运算指令为单操作数指令,其操作数不 能是立即数;
“非”运算指令不影响标志位;其他逻辑运算 指令会影响6个状态标志位,且不论执行结果 如何,都会使OF=CF=0
相关文档
最新文档