微机原理与接口技术-8086指令系统PPT课件
合集下载
《微机原理与接口技术》课件——第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提供了串操作指令,使长字符串的处理更快速、
微机原理与接口技术PPT课件
(2)如果要对其他段寄存器所指出的存储区 进行直接寻址,则本条指令前必须用前缀指出 段寄存器名。
21018H 21019H
AA 数 BB 据
段
8
三、直接寻址
• 操作数的存储区是在DS段以外的段中,则应 在指令中指定段跨越前缀:
• MOV BX, ES:[2000H] 设ES=3000H,则指令执行后是将32000H
• 操作数的寻址方式有以下几种:
•
立即数寻址
寄存器寻址
直接寻址
寄存器间接寻址
寄存器相对寻址
基址加变址寻址
相对的基址加变址寻址
• 例:指令形式:
MOV AX, 0000H; AX← 0000H
助记符 目的操作数 源操作数
4
一、立即数寻址
• 操作数紧跟在操作码的后面,与操作码一起放在码段
区域,立即数可以为8位,也可以为16位。
设SS=3000H,BP=2000H, COUNT=1050H
有效地址为: EA=2000H+1050H=3050H
物理地址: 堆栈段=30000H+3050H=33050H
存储器
M
10000H 8B 代
10001H 86 码
10002H
段
AH AL BB AA
33050H 33051H
AA 堆 BB 栈
代码:8B 07
设 DS=2000H,BX=5000H CS=1000H,IP=0000H
物理地址: 代码段:CS000H 8B 代
10001H 07 码
10002H
段
数据段:DS ×16+BX=25000H
AH AL
BB AA
25000H 25001H
微机原理与接口技术 (第三版)电子工业出版社 第03章 8086的指令系统
4、寄存器间接寻址(Register indirect addressing) 内存单元的逻辑偏移地址通过寄存器 间接给出。 例: MOV SI , 61A8H MOV DX , [SI]
5、基址/变址寻址(Based/Indexed addressing) 位移量是一带符号的16位16进制数。当 使用BX或BP寄存器时,称基址寻址;使用SI 或DI寄存器时,称变址寻址。 例: MOV CX , 36H[BX] MOV -20[BP] , AL
2、MOV数据传送指令 其格式为: MOV 目的操作数,源操作数 • 目的操作数和源操作数均可采用不同的寻 址方式, • 两个操作数的类型必需一致。
二、寻址方式介绍பைடு நூலகம்
1.立即寻址(Immediate addressing) 操作数就在指令中,紧跟在操作码后面, 作为指令一部分存放在内存的代码段中,这 种操作数称为立即数。 例: MOV AX , 34EAH MOV BL , 20H
3)、段间直接转移 JMP far PTR 目标地址 4)、段间间接转移 JMP WORD PTR[BX][SI]
2、条件转移指令
1)、单条件转移指令 ① JC ② JNC ③ JE/JZ ④ JNE/JNZ ⑤ JS ⑥ JNS ⑦ JO ⑧ JNO ⑨ JP/JPE ⑩ JNP/JPO ;CF标志为1,则转移 ;CF标志为0,则转移 ;ZF标志为1,则转移 ;ZF标志为0,则转移 ;SF标志为1,则转移 ;SF标志为0,则转移 ;OF标志为1,则转移 ;OF标志为0,则转移 ;PF标志为1,则转移 ;PF标志为0,则转移
3、目标地址传送指令
这类指令有: 1)LEA 有效地址传送到寄存器 2)LDS 装入一个新的物理地址 3)LES 装入一个新的物理地址
微机原理第三章 8086指令系统01PPT课件
❖ 串数据类型——是指位、字节、字或双字 的连续序列。 位串:最多 2321 位。 字节串:包含字节、字或双字,范围 从0~ 2321 字节
7
3.2 8086的指令格式
❖ 指令用助记符表示,格式如下:
标号: 助记符 参数1,参数2,参数3;注释
操作码场
操作数场
注意:参数1,参数2,参数3 三个操作数是任
选的,根据指令的不同,可以是0~3个。
例:SUM: ADD AX, [BX] ; 加法运算入口 8
3.3 8086的寻址方式
❖ 寻找操作数的方式,在微型计算机中操作数可 能的位置不外乎三种: 1.包含在指令中——立即寻址 2.包含在CPU的某个寄存器中——寄存器 寻址 3. 操作数在内存的数据区中,指令中包含此操 作数的地址。该地址由两部分构成:此单元所 在段的基地址(多数情况在DS段)和此单元 与段基址的距离——段内偏移量。指令中规定 的就是这个偏移量,也叫有效地址EA。 根据EA构成情况的不同,对应不同的寻址方 式。
操作数所在内存单元的完整地址表达式:
段寄存器R : [基址R+变址R+位移量]
通知CUP访问哪个 逻辑段
有效地址/偏移地址
19
在内存中的操作数由段选择子和偏移量引用。 段选择子规定包含操作数所在的段:
段选择子能隐含或显式规定,基本约定见书 上P.49表3-2。 以下的默认段,不能被超越: (1) 必须从码段取指令; (2) 在串操作中的目的必须存储在由ES寄存器 指向的数据段; (3) 入栈和出栈操作必须是引用SS 段。
注意:立即寻址主要用来给寄存器或存储器赋初 值。
12
立即寻址示意图: 存储器
AH AL
OP 64 指令 30
7
3.2 8086的指令格式
❖ 指令用助记符表示,格式如下:
标号: 助记符 参数1,参数2,参数3;注释
操作码场
操作数场
注意:参数1,参数2,参数3 三个操作数是任
选的,根据指令的不同,可以是0~3个。
例:SUM: ADD AX, [BX] ; 加法运算入口 8
3.3 8086的寻址方式
❖ 寻找操作数的方式,在微型计算机中操作数可 能的位置不外乎三种: 1.包含在指令中——立即寻址 2.包含在CPU的某个寄存器中——寄存器 寻址 3. 操作数在内存的数据区中,指令中包含此操 作数的地址。该地址由两部分构成:此单元所 在段的基地址(多数情况在DS段)和此单元 与段基址的距离——段内偏移量。指令中规定 的就是这个偏移量,也叫有效地址EA。 根据EA构成情况的不同,对应不同的寻址方 式。
操作数所在内存单元的完整地址表达式:
段寄存器R : [基址R+变址R+位移量]
通知CUP访问哪个 逻辑段
有效地址/偏移地址
19
在内存中的操作数由段选择子和偏移量引用。 段选择子规定包含操作数所在的段:
段选择子能隐含或显式规定,基本约定见书 上P.49表3-2。 以下的默认段,不能被超越: (1) 必须从码段取指令; (2) 在串操作中的目的必须存储在由ES寄存器 指向的数据段; (3) 入栈和出栈操作必须是引用SS 段。
注意:立即寻址主要用来给寄存器或存储器赋初 值。
12
立即寻址示意图: 存储器
AH AL
OP 64 指令 30
微型计算机基本原理与接口技术(第二版)教学课件ppt作者陈红卫主编第三章
AH←AH+调整所产生的进位值。 对标志位的影响:AF、CF 例: MOV AX,0435H
MOV BL,39H ADD AL,BL AAA
微机原理
② AAS 减法的ASCII码调整指令 指令格式: AAS 执行操作:AL←把减法结果AL的内容调整到 非压缩的BCD码格式 AH←AH - 调整所产生的借位值 标志位的影响:AF、CF
微机原理
3.1.6 转移类指令的寻址方式 1.段内相对转移寻址 有效地址EA为当前IP寄存器内容与指令中指定 的8位或16位有符号数之和 例:JZ DISP 其中DISP是符号地址 2.段内间接转移寻址 有效地址EA为寄存器或存储器单元的内容,这种 寻址方式不能用于条件转移指令。 例:JMP CX
微机原理
3.1.3 寄存器寻址方式 寄存器寻址:操作数存放在CPU内部的寄存器中 例 :MOV AX,DX ; AX←DX 3.1.4 寄存器间接寻址 寄存器间接寻址:有效地址包含在基址寄存器 BX、BP或变址寄存器SI、DI中直接寻址 例 MOV AX,[BX]
MOV AX,[BP] 3.1.5 寄存器相对寻址 寄存器相对寻址方式:有效地址在SI、DI、BX 或BP之一,加上指令中8位或16位相对地址 例 MOV AL,ADDR[SI]
3.2 8086/8088 CPU的指令系统 微机原理
3.2.2 算术运算指令
1.加法指令 ⑴ ADD 不带进位加法指令 指令格式:ADD DST,SRC 执行操作:(DST)←(SRC)+(DST)。 对标志位的影响:OF、SF、ZF、AF、PF、CF。
存储器 通用寄存器 立即数
存储器 通用寄存器 立即数
OR AL,20H 执行上述指令后AL=?
⑶逻辑非NOT 指令 指令格式:NOT OPR 执行操作: (OPR)←(OPR) 影响的标志位:无
MOV BL,39H ADD AL,BL AAA
微机原理
② AAS 减法的ASCII码调整指令 指令格式: AAS 执行操作:AL←把减法结果AL的内容调整到 非压缩的BCD码格式 AH←AH - 调整所产生的借位值 标志位的影响:AF、CF
微机原理
3.1.6 转移类指令的寻址方式 1.段内相对转移寻址 有效地址EA为当前IP寄存器内容与指令中指定 的8位或16位有符号数之和 例:JZ DISP 其中DISP是符号地址 2.段内间接转移寻址 有效地址EA为寄存器或存储器单元的内容,这种 寻址方式不能用于条件转移指令。 例:JMP CX
微机原理
3.1.3 寄存器寻址方式 寄存器寻址:操作数存放在CPU内部的寄存器中 例 :MOV AX,DX ; AX←DX 3.1.4 寄存器间接寻址 寄存器间接寻址:有效地址包含在基址寄存器 BX、BP或变址寄存器SI、DI中直接寻址 例 MOV AX,[BX]
MOV AX,[BP] 3.1.5 寄存器相对寻址 寄存器相对寻址方式:有效地址在SI、DI、BX 或BP之一,加上指令中8位或16位相对地址 例 MOV AL,ADDR[SI]
3.2 8086/8088 CPU的指令系统 微机原理
3.2.2 算术运算指令
1.加法指令 ⑴ ADD 不带进位加法指令 指令格式:ADD DST,SRC 执行操作:(DST)←(SRC)+(DST)。 对标志位的影响:OF、SF、ZF、AF、PF、CF。
存储器 通用寄存器 立即数
存储器 通用寄存器 立即数
OR AL,20H 执行上述指令后AL=?
⑶逻辑非NOT 指令 指令格式:NOT OPR 执行操作: (OPR)←(OPR) 影响的标志位:无
微机原理与接口技术课件PPT
例题
例3-45将首地址为SRC的源字符串传送到DEST 为首地址的内存区,字符串的长度为N个字节。 CLD ;DF=0,增量方向 LEA SI,SRC ;DS:SI←字符串首地址 LEA DI,ES:DEST ;ES:DI←目标地址 MOV CX,N ;字符串长度 REP MOVSB ;重复字符串传送
1.基本串操作指令
(1)串传送指令 MOVSB ;字节传送,ES:[DI]←DS:[SI], SI←SI±1,DI←DI±1 MOVSW ;字传送,ES:[DI]←DS:[SI], SI←SI±2,DI←DI ±2 DF=0,(SI)和(DI)增量;DF=1, ,(SI)和(DI)减量 不影响FR寄存器的值
5)串搜索指令 SCASB ;字节搜索,AL-ES:[DI],DI←[DI] ±1. SCASW ;字搜索, AX-ES:[DI],DI←[DI] ±2 DF=0,(SI)和(DI)增量;DF=1, (SI)和(DI)减量 影响FR寄存器的所有标志位
2.重复前缀指令
格式: REP ;无条件重复前缀指令 REPE/REPZ ;条件重复前缀指令 REPNE/REPNZ ;条件重复前缀指令
(3)存串指令 STOSB ;存字节,ES:[DI]←AL,DI←[DI] ±1 STOSW ;存字, ES:[DI]←AX,DI←[DI] ±2. DF=0,(DI)增量;DF=1, (DI)减量 不影响FR寄存器的值
例题2
使内存中0400H开始的256个单元清零 CLD LEA DI,[0400H] MOV CX, 0080H XOR AX ,AX REP STOSW
REP指令用在MOVS、STOS指令之前,每执行一次串 指令,CX←(CX)-1,直到CX=0,重复执行结束 REPE/REPZ指令用在CMPS、SCAS指令之前,每执 行一次串指令,CX←(CX)-1,并判断ZF标志位是否为 0;只要CX=0或ZF=0,则重复执行结束 REPNE/REPNZ指令用在CMPS、SCAS指令之前,每 执行一次串指令,CX←(CX)-1,并判断ZF标志位是否 为1;只要CX=0或ZF=1,则重复执行结束 LODS指令之前不能添加重复前缀
第2章 8086微机原理PPT课件
Signal),音频信号(Audio Signal)以及图像处理(Graphical Manipulation)而设计的57条指令; ✓ MMX CPU极大地提高了电脑的多媒体(如立体声、视频、 三维动画等)处理功能。
9
2.1.1 8086功能的扩展(5)
➢ 流SIMD扩展(SSE)
✓ SSE(Streaming SIMD Extensions,流SIMD扩展)英特尔开 发的第二代SIMD指令集,有70条指令,可以增强浮点和多 媒体运算的速度;
✓ 以前的FPU是一种单独芯片,如8087、80287、80387分别 与8086/8088、80286、80386配合使用。 在486之后,英
特尔把FPU与集成在CPU之内。
8
2.1.1 8086功能的扩展(4)
➢ MMX技术
✓ MMX: 是MultiMedia eXtensions(多媒体扩展)的缩写; ✓ MMX技术是在CPU中加入了特地为视频信号(Video
✓ x86结构微处理器有两种主要的工作方式: 实地址方式和保 护虚地址方式。
✓ 实地址方式是为了与8086兼容而设置的方式。
✓ 在实地址方式下,具有32条地址线的x86结构微处理器只有
低20条地址线起作用,能寻址1MB的物理地址;此时,x86
系列结构微处理器相当于一个快速的8086,虽然可以使用
32位的数据寄存器,但不能充分发挥x86结构微处理器的全
10
2.1.2 8086性能的提高(1)
➢ 利用流水线技术提高操作的并行性
✓ 流水线技术是一种同时进行若干操作的并行处理方式。类 似于工厂的流水作业装配线;
✓ 在计算机中把CPU的一个操作(分析指令,加工数据等)进一 步分解成多个可以单独处理的子操作,使每个子操作在一 个专门的硬件上执行,这样,一个操作需顺序地经过流水 线中多个硬件的处理才能完成。但前后连续的几个操作可 以在各个硬件间重叠执行,这种操作的重叠提高了CPU的 效率。
9
2.1.1 8086功能的扩展(5)
➢ 流SIMD扩展(SSE)
✓ SSE(Streaming SIMD Extensions,流SIMD扩展)英特尔开 发的第二代SIMD指令集,有70条指令,可以增强浮点和多 媒体运算的速度;
✓ 以前的FPU是一种单独芯片,如8087、80287、80387分别 与8086/8088、80286、80386配合使用。 在486之后,英
特尔把FPU与集成在CPU之内。
8
2.1.1 8086功能的扩展(4)
➢ MMX技术
✓ MMX: 是MultiMedia eXtensions(多媒体扩展)的缩写; ✓ MMX技术是在CPU中加入了特地为视频信号(Video
✓ x86结构微处理器有两种主要的工作方式: 实地址方式和保 护虚地址方式。
✓ 实地址方式是为了与8086兼容而设置的方式。
✓ 在实地址方式下,具有32条地址线的x86结构微处理器只有
低20条地址线起作用,能寻址1MB的物理地址;此时,x86
系列结构微处理器相当于一个快速的8086,虽然可以使用
32位的数据寄存器,但不能充分发挥x86结构微处理器的全
10
2.1.2 8086性能的提高(1)
➢ 利用流水线技术提高操作的并行性
✓ 流水线技术是一种同时进行若干操作的并行处理方式。类 似于工厂的流水作业装配线;
✓ 在计算机中把CPU的一个操作(分析指令,加工数据等)进一 步分解成多个可以单独处理的子操作,使每个子操作在一 个专门的硬件上执行,这样,一个操作需顺序地经过流水 线中多个硬件的处理才能完成。但前后连续的几个操作可 以在各个硬件间重叠执行,这种操作的重叠提高了CPU的 效率。
8086指令系统课件
根据操作数个数的不同指令格式分为以下几种:
第3页,共175页。
第四章 8086 指令系统
(1)零操作数指令
格式:
操作码
即指令中只有操作码,没有操作数,也称为无操作数指 令。有两种情况使用这种指令:
一是指令中不需要任何操作数,如空操作指令、停机指令 等;
二是指令的操作数是默认,如加法的ASCII码 调整、 十进制BCD调整指令等。
不同的指令系统。
第2页,共175页。
第四章 8086 指令系统
4.1.2 汇编指令格式
一条指令一般包含操作码和操作数两部分。
操作码用来表示该指令所要完成的操作,不同的指令用
不同的操作码表示;
操作数用来描述指令的操作对象,操作数可以是立即数、
寄存器和存储器的地址,不同的指令可以有一个、 二个、三个 或无操作数。
第14页,共175页。
第四章 8086 指令系统
6.基址变址寻址( Based Indexed Addressing)
操作数的有效地址为基址寄存器(BX或BP)和变址 寄存器(SI或DI)的内容之和。
物理地址=16(段寄存器)+(基址寄存器)+ (变址寄存器)
【例4.7】 MOV AX,[BX][DI]
=30000H+1000H+2000H+250H=33250H
第16页,共175页。
第四章 8086 指令系统
4.2.2 与程序转移有关的寻址方式
指令在顺序执行时,下一条指令的地址总是由指令指针IP 自动递增得到。
若程序非顺序执行,将要执行的指令的地址如何得 到呢? 又分为段内转移和段间转移:
段内转移:需要给出即将执行的那条指令的偏移地址,并用 它取代IP的原有内容;
第3页,共175页。
第四章 8086 指令系统
(1)零操作数指令
格式:
操作码
即指令中只有操作码,没有操作数,也称为无操作数指 令。有两种情况使用这种指令:
一是指令中不需要任何操作数,如空操作指令、停机指令 等;
二是指令的操作数是默认,如加法的ASCII码 调整、 十进制BCD调整指令等。
不同的指令系统。
第2页,共175页。
第四章 8086 指令系统
4.1.2 汇编指令格式
一条指令一般包含操作码和操作数两部分。
操作码用来表示该指令所要完成的操作,不同的指令用
不同的操作码表示;
操作数用来描述指令的操作对象,操作数可以是立即数、
寄存器和存储器的地址,不同的指令可以有一个、 二个、三个 或无操作数。
第14页,共175页。
第四章 8086 指令系统
6.基址变址寻址( Based Indexed Addressing)
操作数的有效地址为基址寄存器(BX或BP)和变址 寄存器(SI或DI)的内容之和。
物理地址=16(段寄存器)+(基址寄存器)+ (变址寄存器)
【例4.7】 MOV AX,[BX][DI]
=30000H+1000H+2000H+250H=33250H
第16页,共175页。
第四章 8086 指令系统
4.2.2 与程序转移有关的寻址方式
指令在顺序执行时,下一条指令的地址总是由指令指针IP 自动递增得到。
若程序非顺序执行,将要执行的指令的地址如何得 到呢? 又分为段内转移和段间转移:
段内转移:需要给出即将执行的那条指令的偏移地址,并用 它取代IP的原有内容;
微机接口ppt课件第4章8086指令系统(下)
2021/8/17
43
2.段内直接近转移
格式:JMP NEAR PTR OPR 功能:NEAR PTR表明程序转移的目标地址与JMP指
令在同一个代码段内,操作数可以是目标地址的标 号或指定一个16位的偏移量,转移范围为32768~32767字节。NEAR PTR可省略。 指令执行后,CS的内容不变,IP的值(即JMP指令 的下一条指令)与16位偏移量之和被赋于当前的IP。
2021/8/17
35
首先,将字符串首地址送入DI,设置字符串 操作方向,将字符串长度送入CX,并为ADDR 设置初值。
重复执行传扫描指令,直到找到第一个非空 格字符,使DI指向第一个非空格字符,并将 其偏移地址存入ADDR。
若未找到非空格字符,则程序结束。
2021/8/17
36
【源程序】
无条件转移指令可分为段内转移和段间转移两大类。
段内转移是指程序在当前代码段内进行转移,这时 只需改变IP寄存器中的内容,CS寄存器中的内容不 变,即可指定目标地址;
段间转移是指程序由当前代码段转移到另一个代码 段去执行,这时需要指定新的段地址和偏移地址, 即CS寄存器和IP寄存器中的内容都将改变。
21
2.REPE/REPZ前缀
格式:REPE/REPZ 串比较或串扫描指令 功能:在执行串比较或串扫描指令时,若
CX≠0且ZF=1(要比较的两个字节或字相等或 相减为零)时重复执行串比较或串扫描指令; 否则,结束操作。
2021/8/17
22
3.REPNE/REPNZ前缀
格式:REPNE/REPNZ 串比较或串扫描指令 功能:在执行串比较或串扫描指令时,若
基本串操作指令每完成一次操作后,只能对 字符串中的一个字节或字进行操作,
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、立即寻址 操作码后紧跟着的数就是实际参与操作的
数,该操作为指令代码存放在代码段中。
二、寄存器寻址 操作码紧跟着的是寄存器的编码,该寄存器
中存放的是实际参与操的是一个存储单元的有效地
址(偏移地址),该单元存放的是实际参与操作 的数。
操作数物理地址=DS×10H+EA
AL←[BX], AH←[BX+1]
[DI],AX ;将AX中的16位二进制数送[DI]和 [DI+1]单元中
CX,[1000H];将[1000H]和[1001H]中的16位二进 制数送CX单元中
BX, 5040H ;将5040H送BX AL,‘E’; 将字符E送AL,即将E的ASCII码送AL AX,30H[BX+SI];将30H+BX+SI单元的内容送AX
.
3
由此可见,操作数可分为源操作数和目的操作 数。
源操作数:只能读取的操作数。 目的操作数:即可读取又可写入(存放操作结 果)的操作数。
操作数又可分为两大类:数据操作数和地址操 作数。
.
4
§3.1 8086/8088寻址方式
寻址方式——找到实际参与操作的数的方 式,从另一角度讲,也可以说是实际参与操作 的数的存取方式,下面介绍有关操作数的寻址 方式。
EA=
[BX] [BP] [SI] [DI]
寄存器间接寻址
EA=
[BX] [BP] [SI] [DI]
8位偏移量 16位偏移量
寄存器间接相对寻址
EA表示有效地址,[BP]的段地址寄存器为SS, 其余段地址寄存器为DS
操作数物理地址=DS×10H+EA
.
7
【例1】寄存器和存储器内容分别为:(AX)=0, (BP)=0030H,(SS)=2000H,(20030H) =1234H
指令的格式是: 操作码 操作数 …… 操作数
操作码 寻址方式(码) 形式地址码
在指令中操作码是不可缺少的,但操作数可 以没有,也可以有一个操作数或两个操作数。
.
2
根据操作数的个数,指令格式可分为以下几种: 1. 零操作数指令
指令格式中没有操作数或操作数是隐含约定的。 2. 一操作数指令 指令格式中有一个操作数,或还有一个隐含的操作 数(实际上是双操作数)。 3. 二操作数指令 指令中有两个操作数,其中一个为目的操作数,另 一个为源操作数。
.
15
一、数据传送指令
1、基本传送指令 MOV X, Y; X←Y
该指令可进行的传送有: RR←RR’,SER; RR,SER,AC←[MEM]; RR,[MEM]←NN
段寄存器
CS DS SS ES
存储器
16位 8\16位 立即数
8\16位
通用寄存器
AX BX CX DX 8\ BP SP SI DI 16 AL BL CL DL 位
执行指令:MOV AX ,[BP] 执 行 后 : ( AX)=?,(BP)=?,(SS)=?, (20030H)=? 图形表示如下:
.
8
【例2】
设执行前: (AX)=0040H,(BX) =0030H,(DS)=2000H,(20036H) =0050H
执行指令:ADD 6[BX],AX 执行后:(AX)=?,(BX)=?,(DS)
=?,(20036H)=? 图形表示如下:
.
9
执行:(20036H)+(AX) →20036H 执行后:(AX)=0040H,(BX)=0030H,(DS) =2000H,(20036H)=0090H。
.
10
有效地址可以由以下三种地址分量组成:
● 位移量(Displacement):它是存放在指令中的一个8位或16位的 数,但它不是立即数,而是一个地址。
第三章 8086/8088指令系统
指令是计算机工作的指示和命令,它 是一组代表一定意义的二进制编码信息, 程序是按一系列按一定规则顺序排列的指 令,而计算机(微型机)的整个工作过程 就是执行程序的过程。
.
1
指令的含义包含①指明该做什么?②指明对 谁做?
指令由两部分构成①操作码,②操作数。操 作码指明计算机做什么,操作数是参与操作的数。
.
11
五、基址变址寻址
EA=
[BX] [BP]
+
[SI] [DI]
基址变址寻址
[BX]
[SI]
8位偏移量
EA= [BP] + [DI] + 16位偏移量 基址变址相对寻址
EA表示有效地址,[BP]的段地址寄存器为SS, 其余段地址寄存器为DS
操作数物理地址=DS×10H+EA
.
12
.
13
§3.2 8086/8088的指令系统
AH BH CH DH
MOV 指令数据传送方向
.
16
例:MOV MOV MOV MOV
MOV
MOV
MOV MOV MOV
AX, BX ;将BX中的16位二进制数送AX AL, CL ;将CL中的8位二进制数送AL ES, DX ;将DX中的16位二进制数送ES AX,[BX] ;将[BX]中的16位二进制数送AX。
● 基址(Base Address):它是存放在基址寄存器BX或BP中的内容。
● 变址(Index Addess):它是存放在变址寄存器SI或DI中的内容。
对于某条具体指令,这三个地址分量可有不同的组合。如果存 在两个或两个以上的分量,那么就需要进行加法运算,求出操作数 的有效地址(EA),进而求出物理地址(PA)。正是因为这三种地址分 量有不同的组合,才使得对存储器操作数的寻址产生了若干种不同 的方式。
例:MOV AX, [2000H]
若DS=3000H,则物理地址=3000H ×10H+2000H
30000H + 2000H
32000H
32000H 50H 32001H 30H
[32000H]=50H [32001H]=30H
指令执行后:
低字节在前高字节在后
AH=30H,AL=50H
.
6
四、寄存器间接寻址
8086/8088指令系统有133条指令,共
6组,功能较强
数据传送指令
串处理指令
算术指令
控制转移指令
逻辑指令
处理机控制指令
.
14
为了更快的学习、领会指令系统,我们 作如下约定:
RR表示通用寄存器(AX,BX,CX,DX,BP,SP,SI,DI) SER表示段寄存器(CS,DS,ES,SS) MEM表示内存单元的有效地址,[MEM]表示该单元 的内容 AC表示AX或AL NN表示立即数 F表示标志寄存器
数,该操作为指令代码存放在代码段中。
二、寄存器寻址 操作码紧跟着的是寄存器的编码,该寄存器
中存放的是实际参与操的是一个存储单元的有效地
址(偏移地址),该单元存放的是实际参与操作 的数。
操作数物理地址=DS×10H+EA
AL←[BX], AH←[BX+1]
[DI],AX ;将AX中的16位二进制数送[DI]和 [DI+1]单元中
CX,[1000H];将[1000H]和[1001H]中的16位二进 制数送CX单元中
BX, 5040H ;将5040H送BX AL,‘E’; 将字符E送AL,即将E的ASCII码送AL AX,30H[BX+SI];将30H+BX+SI单元的内容送AX
.
3
由此可见,操作数可分为源操作数和目的操作 数。
源操作数:只能读取的操作数。 目的操作数:即可读取又可写入(存放操作结 果)的操作数。
操作数又可分为两大类:数据操作数和地址操 作数。
.
4
§3.1 8086/8088寻址方式
寻址方式——找到实际参与操作的数的方 式,从另一角度讲,也可以说是实际参与操作 的数的存取方式,下面介绍有关操作数的寻址 方式。
EA=
[BX] [BP] [SI] [DI]
寄存器间接寻址
EA=
[BX] [BP] [SI] [DI]
8位偏移量 16位偏移量
寄存器间接相对寻址
EA表示有效地址,[BP]的段地址寄存器为SS, 其余段地址寄存器为DS
操作数物理地址=DS×10H+EA
.
7
【例1】寄存器和存储器内容分别为:(AX)=0, (BP)=0030H,(SS)=2000H,(20030H) =1234H
指令的格式是: 操作码 操作数 …… 操作数
操作码 寻址方式(码) 形式地址码
在指令中操作码是不可缺少的,但操作数可 以没有,也可以有一个操作数或两个操作数。
.
2
根据操作数的个数,指令格式可分为以下几种: 1. 零操作数指令
指令格式中没有操作数或操作数是隐含约定的。 2. 一操作数指令 指令格式中有一个操作数,或还有一个隐含的操作 数(实际上是双操作数)。 3. 二操作数指令 指令中有两个操作数,其中一个为目的操作数,另 一个为源操作数。
.
15
一、数据传送指令
1、基本传送指令 MOV X, Y; X←Y
该指令可进行的传送有: RR←RR’,SER; RR,SER,AC←[MEM]; RR,[MEM]←NN
段寄存器
CS DS SS ES
存储器
16位 8\16位 立即数
8\16位
通用寄存器
AX BX CX DX 8\ BP SP SI DI 16 AL BL CL DL 位
执行指令:MOV AX ,[BP] 执 行 后 : ( AX)=?,(BP)=?,(SS)=?, (20030H)=? 图形表示如下:
.
8
【例2】
设执行前: (AX)=0040H,(BX) =0030H,(DS)=2000H,(20036H) =0050H
执行指令:ADD 6[BX],AX 执行后:(AX)=?,(BX)=?,(DS)
=?,(20036H)=? 图形表示如下:
.
9
执行:(20036H)+(AX) →20036H 执行后:(AX)=0040H,(BX)=0030H,(DS) =2000H,(20036H)=0090H。
.
10
有效地址可以由以下三种地址分量组成:
● 位移量(Displacement):它是存放在指令中的一个8位或16位的 数,但它不是立即数,而是一个地址。
第三章 8086/8088指令系统
指令是计算机工作的指示和命令,它 是一组代表一定意义的二进制编码信息, 程序是按一系列按一定规则顺序排列的指 令,而计算机(微型机)的整个工作过程 就是执行程序的过程。
.
1
指令的含义包含①指明该做什么?②指明对 谁做?
指令由两部分构成①操作码,②操作数。操 作码指明计算机做什么,操作数是参与操作的数。
.
11
五、基址变址寻址
EA=
[BX] [BP]
+
[SI] [DI]
基址变址寻址
[BX]
[SI]
8位偏移量
EA= [BP] + [DI] + 16位偏移量 基址变址相对寻址
EA表示有效地址,[BP]的段地址寄存器为SS, 其余段地址寄存器为DS
操作数物理地址=DS×10H+EA
.
12
.
13
§3.2 8086/8088的指令系统
AH BH CH DH
MOV 指令数据传送方向
.
16
例:MOV MOV MOV MOV
MOV
MOV
MOV MOV MOV
AX, BX ;将BX中的16位二进制数送AX AL, CL ;将CL中的8位二进制数送AL ES, DX ;将DX中的16位二进制数送ES AX,[BX] ;将[BX]中的16位二进制数送AX。
● 基址(Base Address):它是存放在基址寄存器BX或BP中的内容。
● 变址(Index Addess):它是存放在变址寄存器SI或DI中的内容。
对于某条具体指令,这三个地址分量可有不同的组合。如果存 在两个或两个以上的分量,那么就需要进行加法运算,求出操作数 的有效地址(EA),进而求出物理地址(PA)。正是因为这三种地址分 量有不同的组合,才使得对存储器操作数的寻址产生了若干种不同 的方式。
例:MOV AX, [2000H]
若DS=3000H,则物理地址=3000H ×10H+2000H
30000H + 2000H
32000H
32000H 50H 32001H 30H
[32000H]=50H [32001H]=30H
指令执行后:
低字节在前高字节在后
AH=30H,AL=50H
.
6
四、寄存器间接寻址
8086/8088指令系统有133条指令,共
6组,功能较强
数据传送指令
串处理指令
算术指令
控制转移指令
逻辑指令
处理机控制指令
.
14
为了更快的学习、领会指令系统,我们 作如下约定:
RR表示通用寄存器(AX,BX,CX,DX,BP,SP,SI,DI) SER表示段寄存器(CS,DS,ES,SS) MEM表示内存单元的有效地址,[MEM]表示该单元 的内容 AC表示AX或AL NN表示立即数 F表示标志寄存器