微机原理与接口技术(3)18086寻址方式与指令系统精品PPT课件

合集下载

微机原理与接口技术课件微机第三章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

微机原理第三章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指令从第一个操作数中 减去第二个操作数,并将结 果存储在目标操作数中。
逻辑运算类指令
逻辑运算类指令用于执行逻 辑与、或、非等逻辑运算。

微机原理与接口技术课件PPT

微机原理与接口技术课件PPT

指令MOV BX,[BP+COUNT]书写有下面的等效形式: MOV BX,[BP]+COUNT MOV BX,COUNT[BP] 这种寻址方式可用于表格的处理,通过位移量来设置表格的首地址;利 用修改基址寄存器或变址寄存器的内容来获得表项的值。
6 、基址变址寻址
操作数的有效地址是一个基址寄存器和一个变址 寄存器的内容之和。其物理地址为: (DS)×16+(BX)+(SI/DI) 或(SS)×16+(BP)+(SI/DI)
例3-8基址变址寻址,假定(DS)=2000H,(SS)= 3000H,(BX)=1800H,(BP)=2080H ,(DI)=1000H, (SI)=0800H, (22800H)=80CFH,(32880H)=067AH MOV AX,[BX][DI] MOV AX,[BP+SI]
7、 基址变址相对寻址
3 、直接寻址
直接寻址指的是操作数在存储器中的有效地址EA (Effective Address )直接包含在指令中,书写时 有效地址加上中括号
例3-3 存储器直接寻址 MOV AX,[1000H] ;将DS段的1000H和1001H两个 单元的内容送入AX寄存器中 MOV BX,ES:[2000H] ;将ES段的2000H~2001H两个 单元的内容送入BX寄存中,其中ES为段超越前缀 MOV AX,BUF ;将DS段内以有效地址BUF (符号地址)起始的两个单元的内容送入AX寄存 器中
练习
指出下列指令中源操作数的寻址方式。若 是存储器寻址,写出有效地址和物理地址; 设 (DS)=3000H,(ES)=1000H, (SS)=1500H,(SI)=00B0H, (DI)=5040H,(BX)=0700H,(BP)=1200H; 1) MOV AX,2040H 2) MOV DX,[BP] 3) MOV DI,ES:[BX+2] 4) MOV BX,[20H] 5) MOV AX,[BX+DI] 6) MOV AX,[BX+SI+1]

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

微机原理及接口技术课件第3章 8086寻址方式与指令系统
3.1 指令格式 3.2 8086寻址方式 3.3 8086指令系统 3.4 数据传送指令 3.5 算术运算指令 3.6 逻辑运算和移位指令 3.7 串操作指令 3.8 程序控制指令 3.9 处理器控制指令
17
3.2 8086寻址方式
4.寄存器间接寻址 MOV AX, [SI] ; 将[SI]为有效地址的存储器单元中的操作数送至 ; AX,默认DS为当前段基寄存器 MOV AX, [BP] ; 将[BP]为有效地址的存储器单元中的操作数送至AX, ;默认SS为当前段基寄存器
18
3.2 8086寻址方式
如果转向地址直接放在指令中,则这样的转移称为直接转移,视转移地 址是绝对地址还是相对地址(即地址位移量)又可分别称为绝对转移和相 对转移;如果转向地址间接放在其他地方(如寄存器中或内存单元中), 则这样的转移称为间接转移。
26
3.2 8086寻址方式
1.段内直接寻址 采用段内直接寻址方式,在汇编指令中直接给出转移的目标地
13
3.直接寻址
3.2 8086寻址方式
MOV AX, [2000H] MOV BX, NUM MOV VAR, AL MOV DATA, SP
; 将数据段中2000H单元内容送至AX中 ; 把数据段存储单元NUM中的字内容送至BX ; 把AL的字节内容送至数据段存储单元VAR中 ; 把SP的内容送至数据段存储单元DATA中
5
3.2 8086寻址方式
8086CPU的寻址方式有两类:数据寻址和转移地址寻址。 在讨论寻址方式之前,先简单介绍一条汇编语言中最常用 的指令:
MOV dst, src ; dst←(src)
其功能是将由“源操作数src”所指出的数据传送到由“目 的操作数dst”所指定的地方,其dst用于指定目的操作数的 寻址方式,src用于指定源操作数的寻址方式。

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

微机原理与接口技术课件微机第三章
如果 RESULT DW 3E4CH; 符号地址 MOV AX,RESULT
医学课件ppt 9
微机原理与接口技术
4、寄存器间接寻址(Register indirect addressing) 内存单元的逻辑偏移地址通过 寄存器间接给出
例: MOV SI , 61A8H MOV DX , [SI]
医学课件ppt 10
;B8 34 12 ;A1 34 12
医学课件ppt 3
微机原理与接口技术
一、8086的寻址方式说明
1.有效地址EA(Effective Address) 当操作数在内存中时,指令的操作数给出
所访问的内存单元的逻辑地址。在寻址方式中, 逻辑地址的形成是由多个分量组合而成,该组 合地址又叫有效地址。
医学课件ppt 11
6、基址加变址寻址(Based
微机原理与接口技术
Indexed
addressing)
它的EA是由三部分组成的,基址寄存 器BX或BP的内容加上变址寄存器的内容再 加位移量。物理地址由基址寄存器按规则 选择段寄存器,也可以使用段超越。
例: MOV AX , 8AH[BX][SI] 该例中EA=8AH+BX+SI 物理地址=DS×10H+8AH+BX+SI
医学课件ppt 7
两个概念
微机原理与接口技术
段超越: MOV AX , [3E4CH] MOV AX , ES:[3E4CH]
符号地址:
MOV AX , RESULT
医学课件ppt 8
微机原理与接口技术
如何区分RESULT是立即数还是符号地址?
如果 RESULT EQU 3E4CH; 立即数 MOV AX,RESULT
▪ 2.若当前SS=3500H,SP=0800H,说明堆栈段在存储 器中的物理地址,若此时入栈10个字节,SP内容是 什么?若再出栈6个字节,SP为什么值?

微机原理与接口技术课件

微机原理与接口技术课件

255(00H--FFH),即一个字节的地址值。端口间接
寻址DX的取值范围为0-65535(0000H—FFFFH),
很明显当端口地址超出255时,只能先将地址送给 DX,然后再用DX间接寻址。
例3.8: IN AX,41H
;41H为端口直接寻址
OUT DX,AL ;DX为端口间接寻址
转移指令的寻址方式
例3.6:(以下第二操作数为基址变址寻址方式) MOV AX,[BX+SI]
MOV BX,DS:[BP+SI] MOV BP,[BX+DI] MOV DX,[BP][DI] ;另一种书写格式
5 相对基址变址寻址方式
• 存储器操作数的内存偏移地址部分是由某一个基 址寄存器的内容加上某一个变址寄存中的内容再 加上一个相对偏移量的寻址方式叫基址变址寻址 方式,即EA=BR+IR+n。写在汇编指令中的BR 只能为BX或BP,IR只能为SI或DI,所以它们只有 四种组合:BX+SI+n、BX+DI+n、BP+SI+n、 BP+DI+n,若用到BP则默认相对SS段,其它则 默认相对DS段。相对偏移量可以是常数、常量、 常数表达式以及变量名等。
3.2.1.3 存储器寻址方式
• 指令中操作数是操作对象在内存中的存放地址的寻址方式 叫存储器寻址方式,操作对象实质上是内存地址所对应的 存储单元中的内容。前面已讲过内存的地址是由段地址及 段内偏移地址确定的,段地址的确定实质上是确定用哪个 段寄存器,段寄存器除非在指令中特别指定(即段超越, 用段寄存器名加“:”),其它情况下均为默认的,默认情 况如表3.1所示(括号内代表可以使用的段超越)。
第三章 寻址方式及指令系统
3.1基本概念
3.2寻址方式
操作数的寻址方式 转移指令的寻址方式

微机原理与接口技术4章.ppt

微机原理与接口技术4章.ppt
概述
▲汇编语言(Assembly Language) 指令的助记符 + 符号地址 + 标号 是机器语言的符号表示,是较低级的语言。
▲源程序 利用汇编语言编写的程序,称源程序。不能被机器 识别。
▲源程序的运行 汇编程序翻译成二进制的浮动目标程序 连接程序将目标文件与库文件相连,形成可执行程 序 可执行的程序在机器上直接运行
例 IN AL, PORT
;PORT为输入端口号
AND DX, PORT AND 0FEH
OUT DX, AX
;DX为输出端口号
25
§4-2 MASM中的表达式 ——关系运算符 三、关系运算符 包括6种: EQ( 相 等 ) 、 NE( 不 等 ) 、 LT( 小 于 ) 、 GT( 大 于 ) 、 LE(小于或等于)、GE(大于或等于) 。 注意: •关系运算符的两个操作数必须是数据,或是同一 段内的两个存储单元的地址; •若结果为真,输出全是l,即0FFH或0FFFFH; •若结果为假,输出全是0。
26
§4-2 MASM中的表达式 ——关系运算符
例 MOV AX,10H GT 16
ADD BL,6 EQ 0110B
MOV CX,((PORT LT 5) AND 100) OR
GE 5) AND 200)
汇编时,计算表达式形成指令为:
MOV AX,0
ADD BL,0FFH
MOV CX,100
;当端口< 5时
§4-2 MASM中的表达式
概述
表达式:运算对象 + 运算符。
·在汇编时进行运算,运算结果作为语句中的操作数。
运算对象:常数、变量、标号。
·得到的运算结果可以是一个常数字,也可以是一个存储
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
标志(Flag)用于反映指令执行结果 或控制指令执行形式 8088处理器的各种标志形成了一个16 位的标志寄存器FLAGS(程序状态字 PSW寄存器)
程序设计需要利用标志的状态
第3章:标志寄存器-分类
状态标志--用来记录程序运行结果的状态 信息,许多指令的执行都将相应地设置它
CF ZF SF PF OF AF
控制标志--可由程序根据需要用指令设置, 用于控制处理器执行指令的方式
DF IF TF
标志寄存器FLAGS
15 12 11 10 9 8 7 6 5 4 3 2 1 0
OF DF IF TF SF ZF
AF
PF
CF
第3章:进位标志CF(Carry Flag)
当运算结果的最高有效位有进位(加法)或借 位(减法)时,进位标志置1,即CF=1; 否则CF=0
当运算结果最低字节中“1”的个数为 零或偶数时,PF=1;否则PF=0
PF标志仅反映最低8位中“1”的个数是 偶或奇,即使是进行16位字操作 3AH+7CH=B6H=10110110B 结果中有5个“1”,是奇数:PF=0
第3章:溢出标志OF(Overflow Flag)
若算术运算的结果有溢出,则OF=1; 否则 OF=0
SP为堆栈指针寄存器(Stack Pointer),指示 堆栈段栈顶的位置(偏移地址) B数P据为区在基域堆址堆,栈指采栈段针用(中寄“St的存先ac基器进k)地(后是址B出a主”se存或P中“o一后in个t进er特先)殊出,的”表示
SP和存BP取寄操存作器方与式、SS而段不寄是存随器机存联取合方使式用。以确 定堆栈段用中8的08存8/8储08单6形元成地的址微机系统中,堆
3AH + 7CH=B6H,产生溢出:OF=1 AAH + 7CH=(1)26H,没有溢出:OF=0
第3章:什么是溢出
处理器内部以补码表示有符号数
• B68H位=表1达0的11整01数1范0B围,是最:高+1位27为~1-,128 作为1如6有果位符运表号算达结数的果范是超围负出是数这:个+范32围76,7就~ 产-生32了76溢8 出 • 对有B6溢H出求,反说加明1有等符于号:数的运算结果不正确 01001001B+1=01001010B=4AH=74 3A•H所+7以C,H=BB66HH表,达就有是5符8+号1数24的=真18值2,为-74
两个单元相互独立,分别完成各自操作, 还可以并行执行,实现指令预取(指令读取 和执行的流水线操作)
第3章:3.1.3 8088/8086的寄存器结构
8088/8086的寄存器组有
8个通用寄存器
4个段寄存器
1个标志寄存器
图示
1个指令指针寄存器
他们均为16位!
第3章:1. 通用寄存器
8088有8个通用的16位寄存器
第3章:符号标志SF(Sign Flag)
运算结果最高位为1,则SF=1; 否则SF=0
有符号数据用最高有效位表示数据的符号 所以,最高有效位就是符号标志的状态
3AH+7CH=B6H,最高位D7=1:SF=1 84H+7CH=(1)00H,最高位D7=0:SF=0
第3章:奇偶标志PF(Parity Flag)
栈区域被称为堆栈段
第3章:2. 指令指针寄存器
IP(Instruction Pointer)为指令指针寄存 器,指示主存储器指令的位置 随着指令的执行,IP将自动修改以指示下 一条指令所在的存储器位置 IP寄存器是一个专用寄存器 IP寄存器与CS段寄存器联合使用以确定下 一条指令的存储单元地址
第3章:3. 标志寄存器
已经超出-128~+127范围,产生溢出,故OF=1; 补码B6H表达真值是-74,显然运算结果也不正确
第3章:溢出和进位的区别
溢出标志OF和进位标志CF是两个意义 不同的标志 进位标志表示无符号数运算结果是否 超出范围,运算结果仍然正确 溢出标志表示有符号数运算结果是否 超出范围,运算结果已经不正确
第3章:(2)变址寄存器
16位变址寄存器SI和DI 常用于存储器变址寻址方式时提供地址
SI是源地址寄存器(Source Index) DI是目的地址寄存器(Destination Index)
在串操作类指令中,SI、DI还有较特殊的 用法
现在不必完全理解,以后会详细展开
第3章:(3)指针寄存器
指针寄存器用于寻址内存堆栈内的数据
第3章: 溢出和进位的对比
例1:3AH+7CH=B6H
无符号数运算: 58+124=182 范围内,无进位
有符号数运算: 58+124=182 范围外,有溢出
3AH + 7CH=B6H,没有进位:CF = 0 AAH + 7CH=(1)26H,有进位:CF = 1
第3章:零标志ZF(Zero Flag)
若运算结果为0,则ZF=1; 否则ZF=0
注意:ZF为1表示的结果是0 3AH+7CH=B6H,结果不是零:ZF=0 84H+7CH=(1)00H,结果是零:ZF=1
(1)数据寄存器: AX BX CX DX (2)变址寄存器: SI DI (3)指针寄存器: BP SP
4个数据寄存器还可以分成高8位和低8位两 个独立的寄存器,这样又形成8个通用的8 位寄存器
AX: AH A章:(1)数据寄存器
第3章
第3章:8086寻址方式与指令系统-教学重点
8088/8086的寻址方式 8088/8086的基本指令
数据传送 加减运算 逻辑运算、移位 控制转移、功能调用
汇编语言程序段
第3章: 3.1.2 8088/8086的功能结构
8088的内部结构从功能上分成两个单元
1. 总线接口单元BIU 管理8088与系统总线的接口 负责CPU对存储器和外设进行访问 2. 执行单元EU 负责指令的译码、执行和数据的运算
AX称为累加器(Accumulator)
使用频度最高。用于算术、逻辑运算以及与外设传送信 息等
BX称为基址寄存器(Base address Register)
常用做存放存储器地址
CX称为计数器(Counter)
作为循环和串操作等指令中的隐含计数器
DX称为数据寄存器(Data register)
常用来存放双字长数据的高16位,或存放外设端口地址
相关文档
最新文档