北航微机原理第3章(4)8086指令系统

合集下载

微机原理课件第三章8086寻址方式和指令系统

微机原理课件第三章8086寻址方式和指令系统
2取 单.如操元果作的指数 地令寄, 址中存钥 。用器匙对寄就于间存或相寄接器=当存D寻B于器SP址×进存间1方行储接6+式间D接I的寻E址A计,寄则算存默器 认操作
数寻在址堆方栈式段来中说,,操就作相数当的于段钥地匙址在段寄存器SS中,操 作放数在的寄物存理器地中址,=即SS寄×存1器6+给BP出。 了要访问的存储单元地址。
DS 3000H ×16

SI 2000H
操作码
+ COUNT 4000H
00
代码段
40
寄存器3相60对00H寻址方式也允许使┋用段超越前缀,
如MOV BX,ES:COUNT[DI]则段地址为ES,物
理地址=ES×16+DI+COUNT。
BH
BL

BX 56
78
36000H
78
56
数据段

指令MOV BX,COUNT[SI]的执行过程
{{ }} 组合起来([B只X能]+相[S加I)]+,D同8或时D还1可6 以加上一个8位或
((1SE86IE8和位A种A种=D的=)I)位也移不[[[[[[[BBB量能BSDBXPPPIIX]],]同]]]]+++但时++++[[[DDDDSDB出8888IIIX现或 或或 或]]]和+++在DDBDDD11P方1188866不66或 或 或括能DDD号111同寄中666时;存出器现相 变在相对 址方对基 寻括寻号址 址址中,
{ 设((D3E86A种S0==0M)300HO0)V[[[[0HBSBD=XIPIB,5]]]]X6或S7,+I8=18H[2S6位0I位0+位0C位H移O,移U量位N量T移] 量COU默 默N认 认T=DS4SS0段 段00H,

微机原理第3章8086指令系统

微机原理第3章8086指令系统

微机原理第3章8086指令系统8086是Intel公司推出的一种16位微处理器,是x86架构的第一代处理器。

8086指令系统是8086微处理器所支持的指令集合,本章将介绍8086指令系统的基本特性和指令编码格式。

8086指令系统采用变长指令编码格式,指令长度可以是1个字节到多个字节,提供了多种寻址方式和丰富的操作类型。

8086指令系统共支持256条标准指令,可以执行各种算术逻辑运算、数据传输和控制流操作。

8086指令由操作码和操作数组成。

操作码指示了执行的具体操作,操作数则是操作码所针对的数据。

8086指令系统提供了多种寻址方式,包括立即寻址、直接寻址、寄存器寻址、寄存器间接寻址、寄存器相对寻址和基址变址寻址等。

立即寻址是将常数或数据直接作为操作数,如MOVAX,1000H,表示将立即数1000H传送到AX寄存器。

直接寻址是通过指定一个内存单元的地址来作为操作数,如MOVAL,[BX],表示将BX寄存器指向的内存单元的内容传送到AL寄存器。

寄存器寻址是直接将一个寄存器作为操作数,如MOVAX,BX,表示将BX寄存器的内容传送到AX寄存器。

除了寻址方式,8086指令系统还提供了多种操作类型,如算术逻辑运算、数据传输和控制流操作等。

算术逻辑运算可以进行加、减、乘、除等数学运算,如ADD、SUB、MUL、DIV等指令。

数据传输可以进行数据的读取和存储操作,如MOV、PUSH、POP等指令。

控制流操作可以用于程序的跳转和条件判断,如JMP、JZ、JC等指令。

8086指令系统还支持多种数据类型的操作,包括字节、字和双字等。

字节操作是对8位数据进行操作,字操作是对16位数据进行操作,双字操作是对32位数据进行操作。

指令的操作数大小可以根据需要选择合适的寄存器或内存单元。

总之,8086指令系统是8086微处理器所支持的指令集合,提供了多种寻址方式和操作类型,支持多种数据类型的操作。

通过掌握8086指令系统,可以编写出高效、精确的8086汇编程序,实现各种功能和算法。

第3章8086指令系统

第3章8086指令系统

寻址方式 段寄存器 有效地址
DISP[BX][SI]
DS (BX)+(SI)+DISP
DISP[BX][DI]
DS (BX)+(DI)+DISP
DISP[BP][SI]
SS
(BP)+(SI)+DISP
DISP[BP][DI]
SS (BP)+(DI)+DISP
物理地址
(DS) ×10H+ (BX)+(SI)+DISP
(DS) ×10H+ (BX)+(DI)+DISP
(DS) ×10H+ (BP)+(SI)+DISP
(SS) ×10H+ (BP)+(DI)+DISP
例:下述各条指令都是错误的
• MOV AX, [CX] • MOV AX, [BX][BP] • MOV AX, [SI][DI] • MOV AX, 112200H[BX]
为数据段中的变量:
• MOV 1AH, CL ; 立即数不能作为目的操作数。
• MOV 1200H, AX
• MOV CS,BX
; CS, IP不能作为目的操作数
• MOV W1,[BX] ; 两个内存操作数之间不能传送
• MOV [1200H], [BX]
2. 段前缀
寻址方式隐含地规定了存储器操作数的段地址。
5.操作数的类型必须一致 例如,
MOV AX , BX
; 正确。指令执行后,AX←(BX),但BX不变
MOV AX, BL
; 错误。源和目的的位数不相同
MOV AL, 256
; 错误。 256=100H,超过了AL能存放的数的

微机原理第三章 8086的寻址方式和指令系统ppt课件

微机原理第三章 8086的寻址方式和指令系统ppt课件
①寻址方式不同; ②用DW定义,COUNT单元中的内容可修改,用EQU定义, COUNT为常数。
4、寄存器间接寻址方式 (Register Indirect Addressing)
EA在指定的寄存器中,只能是基址BX、BP,变址SI、 DI四者之一。 MOV AX, [DX] (非法)
默认关系:SS:BP, DS:BX、SI、DI 可进行段超越,如 MOV AX,DS:[BP]
• 根据有效地址EA〔Effective Address〕的构成 方式,存储器寻址分为以下五种:
• 段寄存器使用的基本约定 •
3、直接寻址方式(Direct Addressing) EA就在指令中,默认段寄存器为DS 如:MOV AX,[2000H] 设DS=3000H 则EA=2000H,PA=DS×16+EA=32000H, 操作数来自32000H〔或3000H:2000H处),结果AX=3514H
例如: MOV AX,COUNT[BX][SI] MOV AX,COUNT[BX+SI] MOV AX,[BX+SI+COUNT]
以上三者等价
如 MOV AX,MASK[BX][SI] 设DS=4100H,位移量MASK=0134H,BX=2500H,SI=1200H 则EA=(BX)+(SI)+MASK=3834H,PA= (DS)
• 8086的指令按功能可分为六大类:数据传送指令、 算术运算指令、逻辑运算和移位指令、字符串处 理指令、控制转移指令、处理器控制指令。
一、数据传送指令:负责数据在寄存器、存储器、I/O端口 之间的传递,特点是不影响标志位。
1.通用数据传送指令 (1) MOV 传送指令〔Move) 格式:MOV 目的,源;(源)→(目的)

微机原理第三章8086的寻址方式和指令系统PPT课件

微机原理第三章8086的寻址方式和指令系统PPT课件

04 寻址方式和指令系统的关 系
寻址方式对指令执行的影响
01
寻址方式决定了指令操作数的来源和访问方式,从而
影响指令的执行效率和正确性。
02
不同的寻址方式可能导致指令执行时间不同,因为它
们可能需要不同的计算步骤和内存访问次数。
03
寻址方式的正确选择可以简化指令的执行过程,提高
指令的执行效率。
指令系统对寻址方式的支持
在个人电脑(PC)领域,IBM PC/AT是基于8086的扩展版 80286开发的,奠定了现代PC 的基础。
8086也被广泛应用于工业控制、 自动化设备、仪器仪表等领域。
现代计算机系统中8086的继承和发展
尽管随着技术的进步,更先进的微处理器已经取代了8086在主流应用中的地位, 但8086的设计理念和架构仍然在许多嵌入式系统、低功耗应用中得到继承和发展 。
CALL指令用于调用子程序, 并将返回地址压入堆栈。
处理器控制类指令
处理器控制类指令用于控制 处理器的状态和行为。
包括HLT、INT、IRET等指令。
02
01
03
HLT指令用于暂停处理器执 行,等待中断或系统调用。
INT指令用于触发软件中断, 执行中断处理程序。
04
05
IRET指令用于从中断返回, 恢复程序的执行。
算术运算类指令用于执行 加、减、乘、除等算术运 算。
ADD指令将两个操作数 相加并将结果存储在目标 操作数中。
ABCD
包括ADD、SUB、MUL、 DIV等指令。
SUB指令从第一个操作数中 减去第二个操作数,并将结 果存储在目标操作数中。
逻辑运算类指令
逻辑运算类指令用于执行逻 辑与、或、非等逻辑运算。

微机原理 第03章 8086的指令系统

微机原理 第03章 8086的指令系统

计算机科学与技术学院系统教研室
【例】设 DS=3000H,SI=2000H,(32000H)=50H, (32001H)=40H, 执行指令 MOV AX,[SI]后,AX = ?
① 根据指令中给出的寄存器及寄存器内容得到存储单元的物理地 址: DS × 16 + 2000H = 32000H ② 把该内存单元开始的两个字节的内容传送到AX中。低地址单元 内容传送到AL中,高地址单元内容传送到AH中。 AX = 4050H
4.指令有极强的寻址能力
8086的寻址方式多达9种,特别是对内存的寻 址方式十分灵活。
5.指令有处理多种数据的能力
8086指令能处理8位/16位数、带符号/无符号 数以及压缩BCD数/非压缩BCD数。带符号数和无 符号数有相应的乘法、除法指令,压缩BCD数和非 压缩BCD数有相应的调整指令。
计算机科学与技术学院系统教研室
2. 数据传送指令 以MOV指令为例,其格式为:

MOV 目的操作数,源操作数 目的操作数和源操作数均可采用不同的寻址方式, 两个操作数的类型必需一致。
计算机科学与技术学院系统教研室
3.2.2 寻址方式介绍
存储器
1.立即寻址
操作数就在指令中,紧 跟在操作码后面,作为指令 一部分存放在内存的代码段 中,这种操作数称为立即数。
计算机科学与技术学院系统教研室
C. I/O端口寻址(I/O port addressing)
当操作数在外部设备时,使用I/O指令。此时有两种 不同的寻址方式访问I/O端口。
(1) 当外部设备地址用8位寻址时,直接端口寻址方式。 此方式中,I/O地址仅有256个,即0~255(00H~FFH)。 IN AL , 25H (2)当外部设备地址为16位(或超过8位)时,采用DX寄存 器间接寻址方式。此时的端口地址多达216个。 MOV DX , 3E4H OUT DX , AL 由于外部设备的数据宽度不同,输入指令中的目的操 作数、输出指令中源操作数可为AL或AX。

第三章 8086的指令系统()PPT课件

第三章 8086的指令系统()PPT课件

7、串寻址(String addressing)
串寻址方式仅在8086的串指令中 使用。规定源操作数的逻辑地址为 DS:SI;目的操作数的逻辑地址为 ES:DI。当执行串指令的重复操作时, 根据设定的方向标志(DF),SI和 DI会自动调整。
8、I/O(输入/输出)端口寻址 (I/O port addressing)
2、MOV数据传送指令
其格式为:
MOV 目的操作数,源操作数
目的操作数和源操作数均可采用不 同的寻址方式,但两个操作数的类 型必需一致。
二、寻址方式介绍
1.立即寻址(Immediate addressing) 操作数就在指令中,紧跟在操作码后
面,作为指令一部分存放在内存的代 码段中,这种操作数称为立即数。
1、通用数据传送指令
1)、MOV 传送指令 指令格式为: MOV 目的 ,源
2)PUSH 进栈指令
指令格式为:PUSH 源操作数 其操作过程是: a、SP-1,
指示堆栈中可以存放数据的位置,存源 操作数的高8位; 。
3)POP 出栈指令
指令格式为:POP 目的操作数
一、8086的操作码
指令由操作码和操作数(地址码) 组成。8086的指令长度是可变的,一 条指令一般由1-6个字节组成(加上 前缀字节,最长可为7字节)。
二、8086指令中寄存器的编码
8086指令中通常使用一个或两个 操作数,在少数指令中有隐含的第三 个操作数。
三、指令中的操作数
1、单指令操作数
当操作数在外部设备时,使用I/O指令。 此时有两种不同的寻址方式访问I/O端口。 (1) 直接端口寻址方式。 (2) 采用寄存器间接寻址方式 (3) 输入指令中目的操作数可为AL或
AX;输出指令中源操作数可为AL或AX。 例:

微机原理及接口技术课件第3章 8086寻址方式与指令系统

微机原理及接口技术课件第3章 8086寻址方式与指令系统
8086汇编语言指令由4部分组成,格式如下: [标号:] [前缀] 助记符 [操作数] [ ; 注释]
其中,方括号表示的部分为任选部分,在具体指令中不是必需的。
4
第3章 8086寻址方式与指令系统
3.1 指令格式 3.2 8086寻址方式 3.3 8086指令系统 3.4 数据传送指令 3.5 算术运算指令 3.6 逻辑运算和移位指令 3.7 串操作指令 3.8 程序控制指令 3.9 处理器控制指令
; 将立即数1234H送入累加器AX ; 将立即数0FH送入累加器AL ; 将立即数12H送入变量VAR指向的存储单元 ; 把0000H送入DI ; 把字母A的ASCII码(41H)送入AH ; 把ASCII码(4241H)送入BX ; 把二进制数10100011B送入CL ; 把100(64H)送入数据段由SI和SI+1指向的 ; 两个存储单元中
25
3.2 8086寻址方式
一般情况下指令是顺序逐条执行的,但实际上也经常发生执行转移指令改变程 序执行流向的现象。与前述数据寻址方式是确定操作数的地址不同,转移地址 寻址方式是用来确定转移指令的转向地址(又称转移的目标地址)。下面首先 说明与程序转移有关的几个基本概念,然后介绍4种不同类型的转移地址寻址 方式,即段内直接寻址、段内间接寻址、段间直接寻址和段间间接寻址。图36展示了4种程序转移地址的寻址方式。
4.寄存器间接寻址
寄存器间接寻址分为两种情况: (1)以SI、DI、BX间接寻址,通常操作数在现行数据 段区域中,此时DS×16+REG为操作数的地址,REG表示 寄存器是SI、DI、BX之一。 ( 2 ) 以 寄 存 器 BP 间 接 寻 址 , 操 作 数 在 堆 栈 段 中 , 即 SS×16+BP为操作数的地址。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• ROL、ROR、RCL、RCR的使用方法相同,对标志位的影响相同: 移出位给CF;当移位次数为1时,影响OF。
• SHR/SAR每移1位,可视为分别将无符号数和带符号数除以2;使 用SHL/SAL每移1位,可视为将数值乘以2。
2020/7/13
8
School of Automation Science and Electrical Engineering
➢ 串操作指令是唯一的一组源操作数和目的操作数都在存储单元的指令。
➢方向标志DF决定指针的修改方向— DF =0,指针加;DF =1,指针减。串元素的类型决 定修改量——字节串,指针加减1;字串,指针加/减2。 ➢加有重复前缀时,固定使用CX计数并修改重复次数,再根据CX值及标志位ZF判断是否 重复进行串操作。前缀本身不影响任何标志位。
1.两个操作数要满足类型组合:D (R或M), S(R/M/N)
2.TEST不改变目标操作数内容, 其后常紧跟条件转移指令以 实现判断分支, AND将运算结果送目标操作数
3.逻辑操作按位进行
2020/7/13
4
School of Automation Science and Electrical Engineering
LODS B ;(字节)(AL) ((DS):(SI)),(SI) (SI) ±1 LODS W ;(字) (AX) ((DS):(SI)),(SI) (SI)±2
2020/7/13
1
School of Automation Science and Electrical Engineering
Computer and Systems
第3章 8086/8088微处理器及其系统
92种基本指令,全部公开,
六个功能组(六大类)
一、 数据传送(Data transfer)P65-P73 二、 算术运算(Arithmetic)P73-P86 三、 逻辑运算和移位指令(Logic & Shift) 四、 串操作(String manipulation) 五、 控制转移(Control Transfer) 六、 处理器控制(Processor Control)
9
School of Automation Science and Electrical Engineering
Computer and Systems
5. 8086/8088指令系统
四、串操作(String manipulation)
–串内存中一段地址连续的字节或字存储单元。通常用于 存放同一类数据。数据源:源串;数据结果:目的串。
Computer and Systems
5. 8086/8088指令系统
三、逻辑运算和移位指令(Logic & Shift)
– 逻辑运算指令格式 – 逻辑与 AND D, S – 逻辑或 OR D, S – 异 或 XOR D, S – 逻辑非 NOT D
– TEST TEST D,S
; DEST∧SRC→DEST ; DEST ∨ SRC → DEST ; DEST ⊕ SRC → DEST ; DEST → DEST ; DEST ∧ SRC
5. 8086/8088指令系统
四、串操作(String manipulation)
– LODS(Load from string)读串指令,一般不加前缀
LODS ;(字节)(AL) ((DS):(SI)), (SI) (SI) ±1 ;(字) (AX) ((DS):(SI)),(SI) (SI)±2
MOV单指令不能完成存储单元之间的数据传送; MOVS指令就是为解决 存储单元之间数据传送而设置的 MOVSB/MOVSW隐含了源、目的操作数
2020/7/13
12
School of Automation Science and Electrical Engineering
Computer and Systems
;移1位 ;移CL次
2020/7/13
6
School of Automation Science and Electrical Engineering
Computer and Systems
5. 8086/8088指令系统
三、逻辑运算和移位指令(Logic & Shift)
– 循环移位指令
2020/7/13
四、串操作(String manipulation)
– CMPS(Compare string ) 串比较指令
CMPS D,S ;((ES):(DI) - (DS):(SI)),结果不存,置标志
CMPSB
; (字节) (SI) (SI)±1,(DI)←(DI) ±1
CMPSW
; (字)(SI) (SI)±2,(DI) (DI)±2
2020/7/13
5
School of Automation Science and Electrical Engineering
Computer and Systems
5. 8086/8088指令系统
三、逻辑运算和移位指令(Logic & Shift)
– 移位指令
格式: SAL/SAR/SHL/SHR OPRD,1 SAL/SAR/SHL/SHR OPRD,CL
–串操作对串中各项进行操作(传送、比较、检索、装入 (读)、存储(写)),也叫数据块操作。串操作指令是 8086/8088实现内存之间数据传送的一组指令。
–串操作重复前缀加在串操作指令之前,根据不同条件判 断是否重复执行串操作。可以实现对整个串的同一种操作。
2020/7/13
10
School of Automation Science and Electrical Engineering
Computer and Systems
5. 8086/8088指令系统
三、逻辑运算和移位指令(Logic & Shift)
– 逻辑运算指令应用
• AND指令通常用于将操作数的某些位清0 AND AL,0FCH ;AL的低2位清0,其余保持不变 • TEST指令常用于“取出”操作数的某一位来进行判断 TEST AL,20H ;取AL的D5位
与前缀REPNE连用
(DI)—字符串起始地址,(AL)或(AX) — 关键字
两数相减, 只影响标志, 不影响操作数, 其它特性同MOVS
在串中查找关键字。
2020/7/13
14
School of Automation Science and Electrical Engineering
Computer and Systems
– 分析下面的程序段所实现的功能(可以用别的指令实现吗) SHL AL,1 ; 将AL中数左移1位,得2X MOV BL,AL ; 2X保存在BL中 MOV CL,2 ; 移位次数置入CL中 SHL AL,CL ; 2X左移2位,得8X ADD AL,BL ; 2X加上8X,所以AL中为10X
2020/7/13
三、逻辑运算和移位指令(Logic & Shift) –小结
• AND、TEST、OR、XOR指令对标志位的影响:固定使CF=OF=0; 根据运算结果改变SF、ZF、PF。
• NOT指令形式上只有一个操作数;不影响任何标志位。
• SAL、SAR、SHL、SHR指令的使用方法相同,对标志位的影响 也相同:移出位给CF;根据结果改变SF、ZF、PF;当移位次数为1 时,影响OF。
位 循环移位

串操作
处 理
重复控制
助记符
AND, TEST, OR, XOR, NOT SHL, SAL, SHR, SAR ROL, ROR, RCL, RCR MOVS, CMPS, SCAS, LODS,STOS REP, REPE/REPZ, REPNE/REPNZ
2020/7/13
3
School of Automation Science and Electrical Engineering
Computer and Systems
第3章 8086/8088微处理器及其系统
• 1. 8086/8088微处理器结构
– 微处理器功能结构 – 寄存器结构(编程结构)
• 2. 8086/8088存储器组织 • 3. 8086/8088工作方式
– 时序和引脚信号 – 最大和最小模式
• 4. 8086/8088寻址方式 • 5. 8086/8088指令系统
STD; 设DF=1 MOV CX,6 ;串操作次数
MOV SI, 1005 MOV DI, 1007 REP MOVSB
X
2020/7/13
13
School of Automation Science and Electrical Engineering
Computer and Systems
5. 8086/8088指令系统
与前缀REPZ连用
两数相减,只影响标志,不影响操作数,其它操作规定与MOVS同。
作用:比较两个串是否完成相同(P88,例3.67)
– SCAS (Scan string ) 串扫描、搜索指令
SCБайду номын сангаасS
SCASB
;(字节)(AL) - ((ES):(DI)),(DI)(DI)±1
SCASW
;(字)(AX)- ((ES):(DI)),(DI) (DI)±2
5. 8086/8088指令系统
思考:重叠串操作
SI 4000H:1000H 34 4000H:1000H 34H,0F2H,1CH,89H,76H,6BH
4000H:1001H F2
4000H:1002H 1C 4000H:1002H
DI 4000H:1003H 89 4000H:1003H
相关文档
最新文档