西安邮电大学微机原理与汇编语言第3章概论
微机原理与接口技术课件微机第三章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章汇编语言基础

低8位
高8位
代 码 段
2、直接寻址(Direct Addressing)
• 在指令的操作码后面直接给出操作数的16位偏 移地址,与操作码一起存放在内存的代码段;
低8位在前,高8位在后;默认段为DS数据段,允许段 超越。
• 16位偏移地址必须用[ ]括起来。
• MOV AL, [4000H]
字
;将DS:4000H之内容送入AL(
AH、AL、BH、BL、CH、 CL、DH、DL存放字节操作 9 数;
3、存储器操作数
• 存储器操作数可以是字节、字、双字,分 别存在1个、2个、4个存储单元中;它既可 以用作源操作数也可以用作目的操作数; • 注意:对大多数指令,不允许源操作数和 目的操作数同时为存储器操作数,即不允 许存储器到存储器的操作。 • 存储器单元的地址由两部分组成:段基址 和偏移地址(也叫有效地址),所以各种 存储器操作,都涉及到段寄存器;
AH AL 02H …
码 段
83200H
…
数 据 段
26
允许段超越;
• 基址--变址—相对寻址指令的书写格式允许有以下
• • • • • • • •
几种: MOV AX, DATA[SI][BX] MOV AX, [BX+DATA][SI] MOV AX, [BX+DATA +SI] MOV AX, [BX]DATA[SI] MOV AX, [BX+SI]DATA 下列指令是非法的: MOV AX, [DI+SI+DATA] MOV AX, [BX+BP+DATA]
10
8088对寄存器使用的约定
内存访问类型 堆栈操作 默认段 寄存器 SS 可指定段 寄存器 无 段内偏移地址来源 SP
微机原理第03章4

例: Jmp data[si] 如果 data=1000 SI=500 (1500)=2000 Ip=2000
1500 1501 1502 1503
2000
第3章:3.6.2 条件转移指令
条件转移指令Jcc根据指定的条件确定程序 是否发生转移。其通用格式为:
;首先CX←CX-1;然后判断;若CX≠0,转移
JCXZ label
;为0循环指令
:如果CX=0,则转移
label操作数采用相对短寻址方式 还 有 LOOPZ/LOOPE 和 LOOPNZ/LOOPNE 两 条 指令 dec cx jnz label
第3章:3.6.3 循环指令(p.78) 指令
LOOP OPRD LOOPZ / LOOPE OPRD
功能
CX-1,计数器不为零循环 CX-1,计数器不为零且相等时 循环
循环条件
CX0 CX 0且 ZF=1
LOOPNZ / LOOPNE OPRD CX-1,计数器不为零且不相等 时循环
ADD BX,0 ;增加一条指令
第3章:例3.23 判断是否为字母Y
;寄存器AL中是字母Y(含大小写),则令AH=0, 否则令AH=-1 cmp al,’y’ ;比较AL与小写字母y je next ;相等,转移 cmp al,’Y’ ;不相等, ;继续比较AL与大写字母Y je next ;相等,转移 mov ah,-1 ;不相等,令AH=-1 jmp done ;无条件转移指令 next: mov ah,0 ;相等的处理:令AH=0 done: ……
第3章:目标地址的寻址范围:段内寻址
段内转移——近转移(near)
微机原理第3章微型计算机原理及应用教案

第3章 8088/8086MPU的指令系统
PA=(ES)*10H+
(BX) (SI) (DI)
+
DISP8 DISP16
DISP叫做位移量,实际上它是一个数值,可以是8位也 可以是16位。
第3章 8088/8086MPU的指令系统
4.基址加变址寻址方式 这是一种基址加变址来定位操作数地址的方式,操作数 的有效地址是一个基址寄存器(BP或BX)和一个变址寄存器 (SI或DI)的内容之和。 MOV CL,[BX+SI] PA=(DS)*10H+(BX)+(SI) MOV CH,[BX+DI] PA=(DS)*10H+(BX)+(DI)
注意事项: PUSH 和POP 指令只能是字操作,不能是字节操作。 POP的DST不允许是CS寄存器。 PUSH和POP 指令不能使用立即数方式。 PUSH 和 POP不影响标志位。
第3章 8088/8086MPU的指令系统
3.交换指令: (XCHG) 格式:XCHG OPR1,OPR2 其中,OPR代表操作数寄存器。 功能:(OPR1)(OPR2) 注意:
第3章 8088/8086MPU的指令系统
5.相对基址加变址寻址方式 操作数的有效地址是基址加变址,再加上一个位移量得 到。一般用于寻址复杂的数组中的元素。
MOV DH,[BX+DI+20H] 源操作数PA=(DS)*10H+(BX)+(SI)+20H 中20H即为DISP
;其
第3章 8088/8086MPU的指令系统
两个操作数不能同时在存储器中。也不能为立即数。 不允许使用段寄存器。 不影响标志位。
第3章 8088/8086MPU的指令系统
微机原理第3章课件(全)

比如AL,BX,CX,DS、IP等等。 【例3-4】MOV AX,BX MOV AL,BL 其中,AX,BX是16位寄存器寻址方式;AL,BL是8位寄存器 寻址方式。
第3章 指令系统和寻址方式 3.2.3 存储器寻址方式 当操作数放在存储器中的某个单元时,CPU要访问存储器 才能获得该操作数。如果存储器的存储单元地址是20位,把通 过各种方法算出段内偏移地址(有效地址),结合段地址形成20 位物理地址找到操作数的方法,统称为存储器寻址方式。 1. 直接寻址方式 直接寻址方式是指寻找的操作数的地址在指令中直接给出。 这种寻址方式在汇编格式中表示为 ● 操作码 地址表达式 (或[地址表达式]) ● 操作码 [数字表达式]
第3章 指令系统和寻址方式 【例3-14】 MOV AX,[BX] [SI](或写为MOV AX, [BX+SI]) 若 (DS)=2000H,(BX)=0500H,(SI)=0010H 则 偏移地址=0500H+0010H=0510H 20位物理地址=20000H+0510H =20510H 如(20510H)=12H,(20511H)=34H,操作的示意图如图3.5所示。
指令由两部分组成:操作码字段和地址码字段,格式如图3.1所 示。
第3章 指令系统和寻址方式
操作码
操作数(地址码)
图3.1 指令格式 操作码字段:用来说明该指令所要完成的操作。 地址码字段:用来描述该指令的操作对象。一般是直接给出 操作数,或者给出操作数存放的寄存器编号,或者给出操作数存 放的存储单元的地址或有关地址的信息。
第3章 指令系统和寻址方式 其中,“267”是数字;“10010011B AND 0FEH”是一个数 字表达式;PORT1是一个用EQU定义的变量名,属于常数; DATA1是定义的段名,实际上就是段地址,是一常数。这些都 是立即寻址方式。 汇编立即寻址方式时,汇编程序首先计算出数字表达式的 值,然后将其写入指令的地址码字段,这称为立即数。
(完整版)微型计算机原理(第三章课后答案)

微型计算机原理第三章80X86微处理器1.简述8086/8088CPU中BIU和EU的作用,并说明其并行工作过程。
答:(1)BIU的作用:计算20位的物理地址,并负责完成CPU与存储器或I/O端口之间的数据传送。
(2)EU的作用:执行指令,并为BIU提供所需的有效地址。
(3)并行工作过程:当EU从指令队列中取出指令执行时,BIU将从内存中取出指令补充到指令队列中。
这样就实现了取指和执行指令的并行工作。
2.8086/8088CPU内部有哪些寄存器?其主要作用是什么?答:8086/8088CPU内部共有14个寄存器,可分为4类:数据寄存器4个,地址寄存器4个,段寄存器4个和控制寄存器2个。
其主要作用是:(1)数据寄存器:一般用来存放数据,但它们各自都有自己的特定用途。
AX(Accumulator)称为累加器。
用该寄存器存放运算结果可使指令简化,提高指令的执行速度。
此外,所有的I/O指令都使用该寄存器与外设端口交换信息。
BX(Base)称为基址寄存器。
用来存放操作数在内存中数据段内的偏移地址,CX(Counter)称为计数器。
在设计循环程序时使用该寄存器存放循环次数,可使程序指令简化,有利于提高程序的运行速度。
DX(Data)称为数据寄存器。
在寄存器间接寻址的I/O指令中存放I/O端口地址;在做双字长乘除法运算时,DX与AX一起存放一个双字长操作数,其中DX存放高16位数。
(2)地址寄存器:一般用来存放段内的偏移地址。
SP(Stack Pointer)称为堆栈指针寄存器。
在使用堆栈操作指令(PUSH或POP)对堆栈进行操作时,每执行一次进栈或出栈操作,系统会自动将SP的内容减2或加2,以使其始终指向栈顶。
BP(Base Pointer)称为基址寄存器。
作为通用寄存器,它可以用来存放数据,但更经常更重要的用途是存放操作数在堆栈段内的偏移地址。
SI(Source Index)称为源变址寄存器。
SI存放源串在数据段内的偏移地址。
微机原理与接口技术第3章 汇编语言与程序设计01

存器。
又如指令:
MOV AX,ES:[2100H]
设执行前(ES)=1000H,EA=2100H,
(12100H)=2AH,(12101H)=17H
执行后(AX)=172AH
在在汇直编接语寻言址中中,,可指以令使中用不符允号许地两址个代操替作数数值都地是址存。储器操作数。 例例如如::欲将MDOS中V 10A0XH,字[单VA元L的UE内] 容传送至200H单元中,不能用 “其MO中V,[V02A0L0UHE],表[01示00存H放]”操,而作只数能单用元如的下符两号条地指址令。完成: 符号地址M出O现V在A指X令,[0中10时0H,]可;将省0略10方0H括字号单,元内容先送AX 例如 : MOMVOV[02A00XH, ],ADXAT;A再通过AX送0200H字单元
存器、一个存放变址基值的变址寄存器和一个偏移量,两个寄存器中的 数据及偏移量相加,作为操作数的偏移地址,即有效地址EA。基址寄 存器主要有BX、BP,变址寄存器主要有SI和DI。其中基址寄存器BX默 认数据段寄存器DS,基址指针 BP默认堆栈段寄存器SS。 例如指令: MOV AX,MASK[BX][DI]
另外,还有一些用来说明汇编过程,或对汇编过程进行辅助说明 的指令,称为伪指令。
汇编语言由汇编语言指令系统、伪指令及相应的语法规则组成。 优点:可读性强,易于编程、理解和记忆,执行速度快,常用来 设计一些对实时性要求比较高的程序。
5 / 26
3.2 8086寻址方式
寻址方式是用于说明指令中如何提供操作数或提供操作数存放地址 的方法。同一条指令可有不同的寻址方式,以说明不同的操作对象。
据在存储器中的地址及操作结果存放的地址。 指令字:表示一条指令的二进制数。 按其长度可分为单字节、双字节、三字节、四字节等; 按操作数的个数又可分为无操作数、单操作数、双操作数以至三操作 数指令,也称为无地址、一地址、二地址以至三地址指令。 其中存放 结果的称为目的操作数或目的地址,其它则称为源操作数或源地址。
微机原理与接口技术第3章 汇编语言与程序设计03

① 标号:是由字母开头的字符串组成,以冒号“:”结束,表示一 条指令的符号地址。标号最长31个字符,由字母A~Z、数字0~9和 一些特殊字符?、.、@、_、$组成。但是数字不能作为标号的第一 个字符,圆点仅能用作标号第一个字符。 ② 助记符:表示操作性质的指令,如果带有前缀,用空格分开。 ③ 操作数:指令操作的对象,按指令要求,可能有一个、两个或者 没有。操作数有两个时用逗号“,”分开。操作数可以是常数、寄存 器名、标号、变量或表达式等。 ④ 注释:以分号“;”开头,是对语句或程序的说明,仅在源程序 清单中列出,不作其它处理。 (2)伪指令语句 是一种说明性的语句,用来对汇编过程进行控制,比如对数据列表、 存储空间分配、程序起始地址及段定义等,汇编时不生成目标代码。 伪指令语句格式如下:
[符号名] 伪指令 [参数] [;注释] ① 符号名:同标号,但是后面没有冒号“:”,在不同的伪指令语 句中,符号名可以是常量名、变量名、过程名、段名、结构名、记录 名等。 ② 伪指令:是要求汇编程序完成具体操作的命令,比如数据定义伪 指DB、DW、DD等,段定义伪指令SEGMENT和ENDS等。 ③ 参数:是对汇编过程的进一步说明,可以是常量、变量、标号、 过程名、结构名、记录名或一些专用符号,比如BYTE、FAR等;参 数的个数由伪指令确定。 ④ 注释:与指令语句中的注释相同。 (3)宏指令语句 宏指令是将程序中多次使用的程序段定义为一条指令,即宏指令。 在对宏指令汇编时,以原程序代码取代宏指令。宏指令格式如下: [标号:] 宏指令名 [参数1] [,参数2] [,…] [;注释 ]
3.4 汇编语言程序格式与常用伪指令
汇编语言有约定的书写格式,这就要求读者在编程时,严格遵循 约定的格式,合理使用伪指令和宏。
3.4.1 汇编语言程序格式 3.4.2 常量、变量、表达式与运算符 3.4.3 常用伪指令 3.4.4 宏指令 3.4.5 条件汇编 3.4.6 保护方式编程指令
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
负责全部指令 的执行。
2) 执行部件EU(Execution Unit) 执行部件EU由通用寄存器、标志寄存器、运 算器(ALU)和EU控制系统等组成。 功能: EU负责全部指令的执行。 任务: ① 向BIU提供数据和所需要访问的内存或I /O端口的地址, ② 对通用寄存器、标志寄存器和指令操作 数进行管理。
数据 寄存器
指针和变址 寄存器
通用寄存器
AH AL AX BH BL BX CH CL CX DH DL DX
SP BP SI DI
ALU 数据总线(16位)
地址 加法器
AB(20位) ∑
CS
DB(16位)
DS
SS
ES
IP
内部寄存器
总线控制 电路
8086总线 DB(16位)
暂存寄存器
ALU
EU 控制电路
指令队列缓冲器
(8位)
成20位的内存物理地址。 1 2 3 4 5 6
8086总线 DB(16位)
总线接口单元(BIU)
功能: 负责完成CPU与存储器(内存或主存)或I/O 设备之间的数据传送。 任务:
① 取指令到指令队列缓冲器 ② 从内存或外设端口读取数据 ③ 向内存或外设端口发送数据 俗称完成“外勤”工作。
8086/8088CPU:分段实方式
80286CPU : 分 段 实 方 式 、 保 护 方 式 ( 可 提供虚拟存储管理和多任务管理机制)。
8038680586CPU : 分 段 实 方 式 、 保 护 方 式、虚拟8086方式(可同时模拟多个8086处理 器工作)。
虚拟存储管理:为用户提供一个比实际主 存空间大得多的程序地址空间,从而可使用户程 序的大小不受主存空间的限制。
3. 地址总线从8086的20根到80586的36根。 地址总线是在对存储器或I/O端口进行访问时, 传送由CPU提供的要访问的存储单元或I/O端口 的地址信息总线,其宽度决定了处理器能直接 访问的主存容量大小(1MB64GB) 。
4. 高速缓冲存储器Cache的使用,大大减 少了CPU读取指令和操作数所需的时间,使CPU 的执行速度显著提高。从80386以后增加了高 速缓冲存储器Cache。
总线接口部件BIU
AB(20位)
(Bus Interface Unit)
地址 加法器
∑
总线接口部件由段
寄存器、指令指针、地 址形成逻辑、总线控制
CS
DB(16位)
DS
SS
ES
逻辑和指令队列等组成。
IP
BIU与外部总线连接
内部寄存器
总线控制 电路
为执行部件EU完成所有
数据总线(16位)
的总线操作,并计算形
多任务管理:可允许多个用户或一个用户 的多个任务同时在机器上运行。
3.2 8086/8088微处理器
Intel 8086是16位微处理器,有16条数 据总线,可以处理8位或16位数据;有20条地 址总线,可以直接寻址220=1M个存储单元和 64K个I/O端口。Intel 8088是准16位处理器, 其指令系统与8086完全兼容,CPU内部结构仍 为16位,但外部数据总线是8位。这样设计的 目的主要是与原有的8位外围接口芯片兼容。
3.2.1 8086/8088内部结构
8086微处理器为了充分使用总线以提高程序 的执行速度被设计成为两个独立的功能部件:执 行部件和总线接口部件。
1. 总线接口部件BIU(Bus Interface Unit)
总线接口部件由段寄存器、指令指针、地址 形成逻辑、总线控制逻辑和指令队列等组成。 BIU与外部总线连接为执行部件EU完成所有的总 线操作,并计算形成20位的内存物理地址。
数据 寄存器
指针和变址 寄存器
通用寄存器
AH AL AX BH BL BX CH CL CX DH DL DX
SP BP SI DI
ALU 数据总线(16位)
暂存寄存器
ALU
EU 控制电路
标志寄存器
执行单元(EU)
2.执行部件EU (Execution Unit)
执行部件EU由 通用寄存器、标志 寄存器、运算器 (ALU)和 EU控 制 系 统等组成。
教材及参考书
《微型计算机原理》王忠民 王钰 王晓婕 编著 《微型计算机原理》学习与实验指导 王钰 王劲松 刑高峰 编著
西安邮电学院计算机学院 计算机科学与技术系 2011.8
第3章 80x86微处理器
主要内容:
80x86微处理器简介 8086/8088微处理器 8086/8088的存储器和I/O组织 从80286到Pentium系列的技术发展
1. 主频从8086的4.77MHz到80586的166MHz, PentiumⅡⅣ更高,可达3GHz。主频是指芯片 所使用的主时钟频率,它直接影响计算机的运 行速度。
2. 数据总线从8086的16位到80586的64位。 数据总线是计算机中组成各部件间进行数据传 送时的公共通道。其位数(宽度)表示CPU的字 长,数据总线位数越多,数据交换的速度越快。
微机系统增加了高速缓冲存储器后,使系 统的存储器体系形成三级组织结构,即由高速 缓冲存储器Cache、主存和外存组成。如图3.1 所示。
微处理器 CPU
高速缓冲 存储器 (Cache)
内存储器 (主存)
外存储器 (外存)
图3.1 存储器的三级结构
80x86CPU 在 发 展 过 程 中 , 存 储 器 的 管 理 机制也发生了较大变化。
3.1 80x86微处理器简介
80x86微处理器是美国Intel公司生产的系 列微处理器。从8086开始到目前已进入第五代 微 处 理 器 : 8086 ( 8088 ) 、 80286 、 80386 、 80486 和 80586 ( Pentium 、 Pentium ⅡⅣ 、 Pentium D 双核)。其主要发展特点是:
指令队列缓冲器 123456
标志寄存器
执行单元(EU)
总线接口单元(BIU)
3. 8088与8086的区别
Intel 8088微处理器内部采用16位结构,实 质上与8088基本上是相同的,其内容的两个功 能部件中EU与8086一样,而BIU略有区别:
① 8086的指令队列是6字节长,而8088的指 令队列为4字节长;