第三章+指令系统3(其他(201509))
合集下载
第三章指令系统PPT课件

MOV A,R7 ;将寄存器R7中的内容送累加器A中。 MOV 20H,R0 ;将寄存器R0中的数据送内存20H单元 INC R1 ;将寄存器R1中的内容加一 ADD A,R3 ;A的内容与寄存器R3的内容相加送A
BACK NEXT HOME
寄存器寻址方式的指令大多是单字节指令。指令本身并不带有操数, 而是含有存放操作数的寄存器的3位代码。以MOV A,Rn为例,使用 R7寄存器,所以rrr=111,既指令的机器码为:0EFH
A,Rn
1 1 1 0 1 r r r E8H~EFH 操作码 寄存器代码
3.2.3 直接寻址
指令本身含有操作数的8位或16位地址。既指令直接给出了操作数 的地址。如:
MOV A,30H ;将RAM30H单元内容送累加器 这里30H是操作数在RAM中的地址,很明显,直接寻址的指令长度 是两个或三个字节。
⒉按指令执行时间分: 1个机器周期(12个时钟振荡周期)的指令64条; 2个机器周期(24个时钟振荡周期)的指令45条; 只有乘、除两条指令的执行时间为4个机器周期(48个时钟振荡周 期)。
BACK NEXT HOME
⒊按指令功能分:
数据传送类指令:完成数据在单片机内部之间的传送。 【特点】:分为8位数和16位两种。除了奇偶位外,指令的执行对 PSW 无影响。 算术运算指令:用于操作数之间的加、减、乘除运算。 【特点】:多数情况下:操作数之一在累加器A中,结果也保留在A中, 运算结果要影响PSW(进位标志、奇偶和溢出标志等)。 逻辑操作和循环移位指令:操作数之间的逻辑加、逻辑与、取反和异 或等操作。 【特点】:多数情况下一个操作数在A中,结果也存于A。移位指令分 为左移、右移和带进位和不带进位几种情况。与算术类指令相比逻辑类 指令基本不影响PSW的内容。 控制转移类指令:条件转移、无条件转移,调用和返回。 【 特点】:通过修改程序指针PC的内容,使CPU转到另一处执行,从 而改变程序的流向。 位操作指令:位传送、位置位、位运算和位控制转移等操作。 【 特点】:按位操作而不是按字节的操作。位控转移的判断不是检测某 一个字节而是对某一个位进行检测并决定是否进行程序转移。 这类指令 基本不影响PSW的内容。
BACK NEXT HOME
寄存器寻址方式的指令大多是单字节指令。指令本身并不带有操数, 而是含有存放操作数的寄存器的3位代码。以MOV A,Rn为例,使用 R7寄存器,所以rrr=111,既指令的机器码为:0EFH
A,Rn
1 1 1 0 1 r r r E8H~EFH 操作码 寄存器代码
3.2.3 直接寻址
指令本身含有操作数的8位或16位地址。既指令直接给出了操作数 的地址。如:
MOV A,30H ;将RAM30H单元内容送累加器 这里30H是操作数在RAM中的地址,很明显,直接寻址的指令长度 是两个或三个字节。
⒉按指令执行时间分: 1个机器周期(12个时钟振荡周期)的指令64条; 2个机器周期(24个时钟振荡周期)的指令45条; 只有乘、除两条指令的执行时间为4个机器周期(48个时钟振荡周 期)。
BACK NEXT HOME
⒊按指令功能分:
数据传送类指令:完成数据在单片机内部之间的传送。 【特点】:分为8位数和16位两种。除了奇偶位外,指令的执行对 PSW 无影响。 算术运算指令:用于操作数之间的加、减、乘除运算。 【特点】:多数情况下:操作数之一在累加器A中,结果也保留在A中, 运算结果要影响PSW(进位标志、奇偶和溢出标志等)。 逻辑操作和循环移位指令:操作数之间的逻辑加、逻辑与、取反和异 或等操作。 【特点】:多数情况下一个操作数在A中,结果也存于A。移位指令分 为左移、右移和带进位和不带进位几种情况。与算术类指令相比逻辑类 指令基本不影响PSW的内容。 控制转移类指令:条件转移、无条件转移,调用和返回。 【 特点】:通过修改程序指针PC的内容,使CPU转到另一处执行,从 而改变程序的流向。 位操作指令:位传送、位置位、位运算和位控制转移等操作。 【 特点】:按位操作而不是按字节的操作。位控转移的判断不是检测某 一个字节而是对某一个位进行检测并决定是否进行程序转移。 这类指令 基本不影响PSW的内容。
计算机组成原理-第3章 指令系统

29
3.2.3 基本的数据寻址方式
数据寻址方式是根据指令中给出的地址码字段寻找真实操 作数地址的方式。
指令中的形式地址A───→有效地址EA
寻址方式 每种计算机的指令系统都有自己的一套数据寻址方式,不 同计算机的寻址方式的名称和含义并不统一,下面介绍大多数计 算机常用的几种基本寻址方式。
30
1.立即寻址
8
1.四地址指令
OP
A1
A2
A3
A4
(A1)OP(A2)→A3 A4=下条将要执行指令的地址 其中:Ai表示地址,(Ai)表示存放于该地址中的内容。
9
2.三地址指令
OP
A1
A2
A3
(A1)OP(A2)→A3 (PC)+1→PC(隐含)
执行一条三地址的双操作数运算指令,至少需要访问4次 主存。第一次取指令本身,第二次取被操作数,第三次取操作 数,第四次保存运算结果。
IR OP Rb D
ALU
主存储器
操作数 操作数
-D 基址值
31
2.寄存器寻址
寄存器寻址指令的地址码部分给出某一个通用寄存器的编 号,这个指定的寄存器中存放着操作数。操作数S与寄存器Ri的关 系为:
S=(Ri) 寄存器寻址具有两个明显的优点: ①从寄存器中存取数据比从主存中快得多; ②由于寄存器的数量较少,其地址码字段比主存单元地址
字段短得多。
32
3.直接寻址
15
1.规整型
操作码字段的位数和位置是固定的。 假定:指令系统共有m条指令,指令中操作码字段的位数 为N位,则有如下关系式: N≥log2 m 规整型编码对于简化硬件设计,减少指令译码的时间是非 常有利的。 IBM 370机(字长32位)的指令可分为三种不同的长度,不 论指令的长度为多少位,其中操作码字段一律都是8位。
3.2.3 基本的数据寻址方式
数据寻址方式是根据指令中给出的地址码字段寻找真实操 作数地址的方式。
指令中的形式地址A───→有效地址EA
寻址方式 每种计算机的指令系统都有自己的一套数据寻址方式,不 同计算机的寻址方式的名称和含义并不统一,下面介绍大多数计 算机常用的几种基本寻址方式。
30
1.立即寻址
8
1.四地址指令
OP
A1
A2
A3
A4
(A1)OP(A2)→A3 A4=下条将要执行指令的地址 其中:Ai表示地址,(Ai)表示存放于该地址中的内容。
9
2.三地址指令
OP
A1
A2
A3
(A1)OP(A2)→A3 (PC)+1→PC(隐含)
执行一条三地址的双操作数运算指令,至少需要访问4次 主存。第一次取指令本身,第二次取被操作数,第三次取操作 数,第四次保存运算结果。
IR OP Rb D
ALU
主存储器
操作数 操作数
-D 基址值
31
2.寄存器寻址
寄存器寻址指令的地址码部分给出某一个通用寄存器的编 号,这个指定的寄存器中存放着操作数。操作数S与寄存器Ri的关 系为:
S=(Ri) 寄存器寻址具有两个明显的优点: ①从寄存器中存取数据比从主存中快得多; ②由于寄存器的数量较少,其地址码字段比主存单元地址
字段短得多。
32
3.直接寻址
15
1.规整型
操作码字段的位数和位置是固定的。 假定:指令系统共有m条指令,指令中操作码字段的位数 为N位,则有如下关系式: N≥log2 m 规整型编码对于简化硬件设计,减少指令译码的时间是非 常有利的。 IBM 370机(字长32位)的指令可分为三种不同的长度,不 论指令的长度为多少位,其中操作码字段一律都是8位。
第3章 指令系统

【举例】
设传送前 N=0,Z=1,S=0,C=1
R1=0xF001 //R1 的值变为 0xF001,N=1,Z=0,S=0,C=1
寄存器寻址
【影响标志】 N,Z
【格式】
Rd = Rs
//将源寄存器 Rs 的数据送给目标寄存器 Rd
【举例】
设传送前 N=0,Z=1,S=0,C=1
R2=0xF001 //R2 的值为 0xF001,N=1,Z=0,S=0,C=1
//读取 0x20 单元的数据到 R1 中
R1 = [BP++] //读取 0x20 单元的数据到 R1 中,修改 BP=0x21
R1 = [BP--] //读取 0x21 单元的数据到 R1 中,修改 BP=0x20
R1 = [++BP] //修改 BP =0x21,读取 0x21 单元的数据
数据传送指令一览表
【格式】
[BP + IM6] = Rs
Rd = [BP +IM6]
//把 Rs 的值存储到基址指针 BP 与 6 位的立即
//数之和指出的存储单元。
// 把 基 址 指 针 BP 与 6 位 的 立 即 数 的 和 指 定 的 存
//储单元数据读到 Rd 寄存器。
【举例】
假设执行前 N=0,Z=1,S=0,C=1
R1=0x0010
[BP+0x0002]=R1 //N=0,Z=0,S=0,C=1
寄存器间接寻址
【影响标志】 N,Z
【格式】
[Rd] = Rs
【举例】 [++Rd] = Rs
Rd = [Rs++]
//把 Rs 的数据存储到 Rd 的值所指的存储单元。 //Rd 中存放的是操作数的地址。 //首先把 Rd 的值加 1,而后 Rs 的数据存储到 Rd 的 //值所指的存储单元间接寻址的存储单元 //读取 Rs 的值所指的存储单元的值并存入 Rd,而 //后、Rs 的值加 1
第3章 指令系统

2. 执行速度快 3.
地址码字段短
EA= Ri 操作数S=(Ri)
计算机组成原理
寻址技术
基本的数据寻址方式
直接寻址 1. 2. 3.
指令寄存器 A OP 100
主存储器
100
操作数
EA=A 绝对寻址方式 地址空间受限
操作数S=(A)
计算机组成原理
寻址技术
基本的数据寻址方式
寄存器间接寻址 1. 2. 3.
…
0000 XXXX YYYY ZZZZ
扩展窗口 1110 XXXX YYYY ZZZZ
15条三地址指令 15条二地址指令
15条一地址指令 16条零地址指令
1111 1111 1111 1111
…
1111 1111 1110 XXXX 1111 1111 1111 0000
…
1111 1110 XXXX YYYY 1111 1111 0000 XXXX 扩展窗口
计算机组成原理
寻址技术
基本的数据寻址方式
指令中的形式地址A───→有效地址EA 立即寻址
寻址方式
OP
立即数
1. 优点:执行速度 2. 缺点:无法修改,大小受限
计算机组成原理
寻址技术
基本的数据寻址方式
寄存器寻址 1.
指令寄存器 R5 OP i 通用寄存器 操作数
R5
通用寄存器的编号
计算机组成原理
二地址指令: MOV X,A MUL X,B ADD X,C SUB X,D MOV Y,E ADD Y,F DIV X,Y 7条指令,MOV指令3次访存,算逻指令 4次访存,执行此程序共访存2×3+5×4=26次。
微机课件第三章指令系统

定制化
融合化
随着计算机体系结构的不断发展,未 来可能出现融合多种指令集优势的全 新架构,实现更高的性能和更低的功 耗。
针对不同应用场景和需求,未来将出 现更多定制化的指令集架构,以满足 特定领域的性能、功耗等要求。
04 汇编语言程序设计基础
CHAPTER
04 汇编语言程序设计基础
CHAPTER
汇编语言概述及特点
指令系统定义与功能
指令系统定义
指令系统是计算机硬件的语言系统,也叫机器语言,指机器所具有的全部指令的 集合。
指令系统功能
它是软件和硬件的主要界面,反映了计算机所拥有的基本功能。从系统结构的角 度看,它是系统程序员看到的计算机的主要属性。因此指令系统表征了计算机的 基本功能决定了机器所要求的能力,也决定了指令的格式和机器的结构。
01 指令系统概述
CHAPTER
01 指令系统概述
CHAPTER
指令系统定义与功能
指令系统定义
指令系统是计算机硬件的语言系统,也叫机器语言,指机器所具有的全部指令的 集合。
指令系统功能
它是软件和硬件的主要界面,反映了计算机所拥有的基本功能。从系统结构的角 度看,它是系统程序员看到的计算机的主要属性。因此指令系统表征了计算机的 基本功能决定了机器所要求的能力,也决定了指令的格式和机器的结构。
言高。
汇编语言概述及特点
汇编语言是一种低级语言
01
它与机器语言密切相关,是机器语言的符号化表示,具有直观、
易理解和易操作硬件的优点。
汇编语言依赖于具体的计算机体系结构
02
不同的计算机体系结构有着不同的指令集和寻址方式,因此汇
编语言程序通常只能在特定的计算机上运行。
第03章 汇编指令系统

mov dst,r
mov r,src mov dst,im mov r,im mov dst,seg
;b/w
;b/w ;b/w ;b/w mov seg,src ;w
mov r,seg
mov seg,r
;w
注意: * OPRD1不能是 CS、IP 例: MOV CS, 1234H * OPRD1 、 OPRD2 不能同时为段寄存器 例: MOV DS, ES *立即数不能直接送段寄存器 例: MOV DS, 2000H * OPRD1 不能是立即数 例: MOV 2000H , AX * OPRD1 、 OPRD2不能同时为存储器寻址 例: MOV [BX] , [BP][SI] *存储器寻址默认段为DS,但允许段超越 例: MOV ES:[2000H] , AX
* SRC 和 DST 的字长一致
* CS 不能用 MOV 指令改变
MOV AH, BX
MOV CS, AX
(3) 直接寻址方式 —— 有效地址EA由指令直接给出
例:MOV AX, [ 2000H ]
直接寻址
* 隐含的段为数据段 DS
* 可使用段超越前缀 MOV AX, ES: [2000H] * 操作数地址可由变量(符号地址)表示 VALUE DB 10
讲解用符号说明
oprd:泛指操作数 r: 通用寄存器——数据寄存器、指针及变址寄存器 seg: 段寄存器 Mem:内存操作数——src:源操作数;dst:目的操作数 ac: 累加器——包含在r中 im: 立即数 b: 字节操作 w: 字操作 dw: 双字操作 port :8位口地址
第三节 数据传送指令
2. 累加器专用传送指令(只限使用AX或AL)
第3章指令系统

h
19
例:设BX=0 158H,
DI=10A5H, 位移量=1B57H, DS=2100H, 各种寻址方式下,有效地址和物理地址如 下:
① 直接寻址:MOV AX,[1B57H] 有效地址=1B57H 物理地址=21000H+1B57H=22B57H ② 寄存器间接寻址(寄存器为BX):
MOV AX, [BX] 有效地址=0158H 物理地址=21000H+0158H=21158H
③ BX寄存器相对间接寻址: MOV AX, [BX+1B57H] 有效地址=0158H+1B57H=1CAFH 物理地址=21000H+1CAFH=22CAFH ④ 变址寻址(寄存器为DI): MOV AX, [DI] 有效地址=10A5H 物理地址=21000H+10A5H=220A5H
⑤ DI寄存器相对变址寻址: MOV AX, [DI+1B57H] 有效地址=10A5H+1B57H=2BFCH 物理地址=21000H+2BFCH=23BFCH ⑥ 基址加变址的寻址(BX为基址寄存器,DI为
第3章 16位和32位微处理器的指令系统
本章要点
汇编语言的寻址方式 8086的传送指令尤其是堆栈操作指令、交换指令
和换码指令的用法 算术运算指令涉及的规则和各种算术运算指令的
使用 逻辑运算指令和移位指令的用法
5条串操作指令的特点和使用方法,尤其是串操 作指令和DF标志的关系
控制转移指令特别是段内转移指令、带参数的返 回指令和循环控制指令的用法
(4) 将BX、BP和SI、DI寄存器组合起来进行间接 寻址——基址加变址的寻址
MOV AX,[BX+SI]
寄存器相对寻址
三章指令系统-PPT精选文档

例如,IBM370机就是采用这种定长操作码格式。 IBM 370机(字长32位)的指令可分为三种不同的 长度,不论指令的长度有多少位,其中的操作码字 段一律都是8位。
特点:字段规整、译码简单。
6
IBM 370机的指令格式
8 4 4 4 4 4 4 4 12
RR 型 RX 型 RS 型 SI 型 SS 型
15
零地址指令
格式:
OP
零地址指令只有操作码,而没有地址码。 例如下面的情况不需要地址码: 指令不需要操作数,例如停机指令就没有操作数. 操作数隐含约定在累加器AC中。 操作数隐含指定在堆栈中,例如堆栈计算机,零 地址指令的操作数从堆栈中获得。
16
简化地址结构与减少地址码字段的位数
13
二地址指令
格式:
OP
A1
A2
执行的操作: (A1) OP (A2) → A1 A1为目的操作数地址,兼做存放结果的地址; A2为源操作数地址。(A1原先的值无需保存) A1、A2可以是内存中的单元地址,也可以是运 算器中的通用寄存器。如果是内存中的单元地址, 则执行一条二地址指令至少要访问4次主存.
扩展窗口
1111 1111 1110 XXXX
…
1111 1111 1111 0000 1111 1111 1111 1111
…
1111 1111 0000 XXXX
…
1111 0000 XXXX YYYY
15条二地址指令
15条一地址指令
16条零地址指令
11
3、地址码
根据一条指令中有几个操作数地址,可将该指令 称为几地址指令。 一般的指令有被操作数、操作数以及操作结果这 三个数,因而就形成了三地址指令格式,这也是 早期计算机指令的基本格式。 在三地址格式的基础上,后来又发展成了二地址 格式、一地址格式和零地址格式。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
十进制修正指令
1。BCD加法的修正指令 格式:AAA 非压缩BCD修正指令,若AF=1或(AL)0~3>9, 则(AL)0~3 +6→(AL)0~3 ,(AL)AND 0FH→AL, (AH)+1=AH 注意:影响C、A,对O、P、S、Z未定义 。 用在ADD、ADC、INC指令后。 例:MOV AX,0207H ADD AL,8H AAA 例:AL中的数为08H,BL中的数为09H,求AL和BL两数的和。
移位指令
1。逻辑算术左移指令 shl=shift left, sal=shift arithmetic left 格式:SHL D,S ;D:R、M,S:1、CL,B/W SAL D,S 2。逻辑右移指令 shr=shift right 格式:SHR D,S ;D:R、M,S:1、CL,B/W
3。算术右移指令 sar=shift arithmetic right 格式:SAR D,S ;D:R、M,S:1、CL,B/W
例:INC AX 例:INC AL INC BYTE PTR[BX] 前:AL=7FH,AF=0,CF=1,OF=0,SF=1,PF=0,ZF=1 后:AL=80H, AF=1,CF=1,OF=1,SF=1,PF=0,ZF=0
例:设在内存BUFFER1,BUFFER2开始的两个存 区中分别存有两个四字节数(如下图), 现求这两个 数之和,并 把它们的结果存入以BUFFER3为首址 的存区中。
例: NEG WORD PTR [BX] 例: NEG AL 前:AL=10001011B 后:AL=01110101B CF=AF=1,SF=ZF=PF=OF=0 例: ADD AL,0 JNS L1 NEG AL OR AL,80H L1:
判断下列指令的对错:
ADD AX,1237H
CMP 43H,AL ADD AX,BX
除法(Division)指令
1。无符号数的除法指令 格式:DIV S ;B:AX/S(8位)=AL….AH, W: DX AX/S(16位) =AX….DX 2。有符号数的除法指令 格式:IDIV S S:R,M 注意:标志位无意义. 3。扩展指令 ;AL —>AX 格式: 例: DIV CBW BX AX — >DX、AX CWD IDIV BYTE PTR(3456H ) DIV CL 此指令的执行不影响标志位 。
4。带进位位的循环右移指令 rcr =rotate through carry right 格式:RCR D,S D:R、M,S:1、CL,B/W
注意:这类指令只影响CF和OF,CF为最后一次送入的值,OF仅在循 环一位时有效:循环前后符号位不同时OF=1,否则OF=0。
例:将DX,AX中的32位数向左移1位。 MOV AX,09H MOV DX,09H SHL AX,1
减法指令之二
4。求补指令 格式:NEG D ;0-D—>D,B/W D:R,M 注意:指令的执行影响OF、SF、ZF、PF、AF、CF。 5。比较指令 格式:CMP D,S ;D-S,B/W D:R,M;S:R,M,n ,二者不能同时为M。 注意:1。差不送到D; 2。指令的执行影响CF、OF、SF、ZF、PF、AF; 3。D,S的大小判断方法与D,S是否是有无符号数有关。
进位位为 1 转移 进位位为零转移 等于/结果为零转移 不等于/结果不为零转移 溢出转移 不溢出转移 奇偶位为 1 转移 奇偶位为 0 转移 符号位为 0 转移 符号位为 1 转移
S 例:IMUL BYTE PTR(1000H) 前:AL=00000111B,(1000H)=11111101B AHAL 后:AH=11111111B,AL=11101011B,OF=CF=0 S DXAX
例:设在字变量A1,A2中分别存有两个16位无符号二进制 数,现在要求它们的积,并将积存入以BUFFER为偏移地址 的连续存区中。下面是完成此过程的程序段: MOV AX,A1 MUL A2 MOV BUFFER,AX MOV BUFFER+2,DX
条 件 转 移
OF+SF=0 OF+SF=0 OF+SF=1 OF+SF=1
且 或 且 或
单 标 志 位
JC 目标标号 JNC 目标标号 JZ/JE 目标标号 JNZ/JNE 目标标号 JO 目标标号 JNO 目标标号 JP/JPE 目标标号 JNP/JPO 目标标号 JNS 目标标号 JS 目标标号
AL=0BBH, SF= 1,CF=AF= ZF=PF=OF=0
乘法(Multiplication)指令
1。无符号数的乘法指令 格式:MUL S ;B:AL*S—>AX, W:AX*S —>DX、AX S:R,M 注意:当乘积的高字(字节)为零时,CF=OF=0,否则CF=OF=1。
例:MUL BL 2。有符号数的乘法指令 ,BL=00000010B 格式:IMUL 前: S AL=00000011B ;B, : AL*S—>AX , 后:AH=00000000B AL=00000110B , OF=CF=0 W:AX*S —>DX、AX S:R,M 注意:当乘积的高字(字节)为零(或全1)时,CF=OF=0,否则 CF=OF=1。 AL AX
数据传送指令 算术运算指令 逻辑运算指令 串操作指令 控制转移指令 处理器控制指令
运算指令
加法指令 减法指令 乘法指令 除法指令 BCD码修正指令 逻辑指令 移位指令
算术运算指令
逻辑运算指令
加法指令
1。不带进位位的加法指令 格式:ADD D,S ;D+S—>D,B/W D:R,M;S:R,M,n,二者不能同时为M。 注意:指令的执行影响 例:ADD AX,BX CF、OF、SF、ZF、PF、AF。 ADD AL ,( 2000H 2。带进位位的加法指令(用于多字节(字)加法) 例: ADD AL) ,BL ADD [BX] AL 前: AL=2EH ,BL=45H 格式:ADC D, S, ;D+S+CF —>D,B/W ADD BL , 6H 后: AL=73H ( 01110011B) D:R,M ; S : R , M , n ,二者不能同时为 M。 ADD BYTE PTR [SI],5H CF=0,AF=1,SF=0,ZF=0 注意:指令的执行影响 CF、OF、SF、ZF、PF、AF。 PF=0,OF=0 例:ADC AX,BX 3。加1指令 ADC AL,( 2000H ) 格式:INC D ;D+1 —>D ,B/W ADC [BX],AL D:R,M ADC BL , 6H 注意:指令的执行影响 OF 、 SF 、ZF、PF、AF;但不影响CF。 ADC WORD PTR [DI],89H
逻辑运算指令
1。逻辑非指令 格式:NOT D D:R、M,B/W,不影响标志位 2。逻辑与指令 格式:AND D,S ;D:R、M,S:R、M、n,B/W 注意:影响S、Z、P,CF=OF=0,未对AF定义。 利用AND可以强行使目标操作数的某些位为零。 3。逻辑或指令 ;D:R、M,S:R、M、n,B/W 格式:OR D,S 注意:影响S、Z、P,CF=OF=0,未对AF定义。 利用OR可以强行使目标操作数的某些位为1。 4。逻辑异或指令 格式:XOR D,S ;D:R、M,S:R、M、n,B/W 注意:影响S、Z、P,CF=OF=0,未对AF定义。 利用XOR可以强行使目标操作数的某些位为取反或两数是否相等。 5。测试指令 格式:TEST D,S ;D:R、M,S:R、M、n,B/W 注意:影响S、Z、P,CF=OF=0,未对AF定义。 利用TEST可以测试目标操作数的某些位的状态。
3。BCD乘法的修正指令 格式:AAM 只用于对存放于AL中的非压缩的BCD码相乘结果进行调整。 (al) div 10→ ah (al) mod 10→ al 根据AL中的结果改变P、S、Z,不影响A、C、O。用在 MUL指令之后 ;(AL)=07H MOV AL,07H ;(BL)=09H MOV BL,09H ;(AX)=003FH MUL BL ;(AH)=06H,(AL)=03H,SF=0,PF=1,ZF=0 AAM
RCL DX,1
程序控制转移指令
指令 类型 无条件 转移 对 无 符 号 数 对 有 符 号 数 指令格式 JMP 目标标号 CALL 过程名 RET 弹出值 JA/JNBE JAE/JNB JB/JNAE JBE/JNA JG/JNLE JGE/JNL JL/JNGE JLE/JNG 目标标号 目标标号 目标标号 目标标号 目标标号 目标标号 目标标号 目标标号 指令功能 无条件转移 过程调用 过程返回 高于/不低于等于 高于等于/不低于 低于/不高于等于 低于等于/不高于 大于/不小于等于 大于等于/不小于 小于/不大于等于 小于等于/不大于 转移 转移 转移 转移 转移 转移 转移 转移 CF=0 CF=0 CF=1 CF=1 且 或 且 或 ZF=0 ZF=1 ZF=0 ZF=1 ZF=0 ZF=1 ZF=0 ZF=1 测试条件
4。BCD除法的修正指令 格式:AAD (ah)*10 + (al) → al 0→ ah 根据AL中的结果改变P、S、Z,不影响A、C、O。用在 DIV指令之前。 注意:1。这六条指令中只有AAD是在除法指令执行前执行, 其余都是在运算指令后修正。 2。只有AAD是对AX中的数据进行修正,其余都是对AL中的 数据进行修正。
IDIV WORD PTR [DI] 例:9876H/2345H MOV AX,9876H CWD MOV SI,2345H IDIV SI
AL AX S ) AHAL S ) DXAX S*AL S*AX AH DX
例:设在字变量B1,B2中分别存有两个16位带符号二进制数, 计算B1/B2,并将其商和余数分别以RESULT为偏移地址的连 续存区中。下面是完成此过程的程序段: MOV AX,B1 CWD ;(AX) → DX,AX IDIV B2 ; ( DX,AX )/B2 → AX…DX MOV RESULT,AX MOV R678H) SUB (DX),1234H ADD (SI),(3456H)