微机原理第三章

合集下载

微机原理第三章习题答案

微机原理第三章习题答案

“微处理器系统原理与嵌入式系统设计”第三章习题解答3.1什么是冯·诺伊曼计算机结构?其运行的基本原理如何?冯.诺依曼计算机由运算器、控制器、存储器、输入设备和输出设备构成,采用二进制表示信息,以存储器为中心,按存储程序原理工作。

存储程序原理指编好的程序首先放入存储器,开始工作后,由控制器自动、高速依次从存储器中取出指令并执行。

3.2. 微处理器的体系结构可以分为几种?试分别说明各种体系结构的优缺点。

3.3 高级编程语言、汇编语言以及机器语言之间有哪些不同?机器语言是直接用二进制代码表达的计算机语言。

指令用“0”和“1”组成,并分成若干段,各段的编码表示不同的含义。

机器语言面向硬件,是唯一可以由硬件直接执行的语言。

汇编语言采用符号代替机器语言中的二进制码:用助记符(Mnemonic)代替操作码,用地址符号(Symbol)或标号(Label)代替地址码。

汇编语言与机器语言一一对应,因此不具有移植性,但更易于读写和理解。

汇编语言源程序需要汇编成机器语言才能交给硬件执行。

高级编程语言语法和结构更类似普通英文,且由于远离对硬件的直接操作,因此移植性较好。

高级语言源程序需要编译(或解释)成机器语言才能交给硬件执行。

3.5 什么是计算功能指令、数据传输指令以及控制流程指令?计算功能指令:对数据进行处理完成算术运算或逻辑运算等的指令。

数据传输指令:负责把数据、地址或立即数传送到寄存器、I/O端口或存储单元中,或者反方向传送的指令。

控制流程指令:用来控制程序执行流程的指令,有测试、转移、跳转等子类。

3.6 解释跳转、分支、调用以及中断所需进行的操作。

跳转:根据“跳转”指令指计算目的地址,修改程序指针。

分支:根据“分支”指令判断执行条件,计算跳转地址,修改程序指针。

调用:保存断点,根据“调用”指令计算子程序入口地址,修改程序指针,执行完毕后恢复断点。

中断:保护断点及现场,查找中断向量表以确定中断程序入口地址,修改程序指针,执行完毕后恢复现场及断点。

第3章---微机原理-汇编-朱定华PPT优秀课件

第3章---微机原理-汇编-朱定华PPT优秀课件

MOV AH,0
DIV BL ; ,BH ;BCD数十位与个位送AL
10
10
3.1.1 乘除法指令
3. 扩展指令CBW和CWD
要把一个8位二进制数除以一个8位二进制数,要有一 个16位二进制数在AX中.所以做8位除以8位的除法 前先要把8位被除数扩展为16位,做16位除以16位的 除法前要把16位被除数扩展为32位.这种扩展对于无 符号数除法只需将AH或DX清0,而对符号整数除法 则要通过扩展符号位来把被除数扩展。
11
11
3.1.1 乘除法指令
格式:CBW ; AL的最高位扩展至AH CWD ; AX的最高位扩展至DX
两指令都隐含操作数 在做8位除以8位、16位除以16位的除法之前, 应先扩展AL或AX中的被除数 扩展指令和符号整数除法仅对补码数适用
12
12
3.1.1 乘除法指令
如:有一符号字数组变量ARRAY,第1个字 是被除数,第2个字是除数,接着存放商和 余数,其程序段为:
3
3
3.1.1 乘除法指令
16位乘法指令所执行的操作是AL或AX乘以 source,乘积放回到AX或DX和AX
AL
×
sourc8
AX
×
DX
AX sourc16
AX
可用乘法运算将BCD数转换为二进制数 44
2.3.4 常用指令应用举例
例 将AX中小于(等于)255大于0的3位BCD数转换为 二进制数,存入字节变量SB中
14
14
3.1.2 BCD数调整指令
1.BCD数加法调整指令DAA和AAA (1)压缩BCD数加法调整
格式: DAA 功能:将AL中的和调整为正确的压缩BCD数 调整规则: (AL&0FH)>9或AF=1,则AL加6;

微机原理 第三章 微处理器

微机原理 第三章  微处理器

青岛理工大学琴岛学院
表3.1 通用寄存器的特定用法
寄存器 操作 寄存器 操作 在移位指令中作 移位次数计数器
AX
字乘,字除,字I/O
CL
AL
字节乘,字节除,字节I/O, 查表转换,十进制运算
字节乘,字节除
DX
字乘,字除指令 中作辅助累加器
堆栈操作,做堆 栈指针
AH
SP
BX
查表转换,做基址寄存器
SI
青岛理工大学琴岛学院
2)逻辑地址与物理地址
逻辑地址(LA)和物理地址(PA):
物理地址:就是存储器的实际地址,它是指CPU和存储器 进行数据交换时所使用的地址(20位)。
逻辑地址:是在程序中使用的地址,它由段基址和偏移地
址两部分组成(16位)。
物理地址=段基址(左移4位)+偏移量
形成20位段 起始地址 16位
青岛理工大学琴岛学院
2 . 8086/8088CPU的寄存器结构
8086/8088CPU中可供编程使用的有14个16位寄存器, 按其用途可分为3类:通用寄存器、段寄存器、指针和标 志寄存器,如所示。
AH BH CH DH SP BP SI DI FLAGS IP CS DS SS ES AL BL CL DL 累加器 基址寄存器 计数寄存器 数据寄存器 数据寄存器 通用寄存器 地址指针和 变址寄存器
2
3 4 5
6
存取一般变量(除3、4、5项外)
DS
有效地址EA
根据寻址方式计算出来的偏移量又叫操作数的有效地址EA
青岛理工大学琴岛学院
4. CPU对堆栈的设置与操作
堆栈的功能:用于暂存数据和现场保护 (特别是在过程调用或中断处理时暂存断 点信息) 堆栈的解释:实际上是由特定存储单元 构成的一个存储区,只是在这个存储区中 信息的出入严格按照“先进后出”或“后 进先出”的规则进行。

微机原理与接口技术第3章(指令部分)

微机原理与接口技术第3章(指令部分)
第 3 章 指令系统及汇编语言程序设计
例:编程计算 0+1+2+3+4+ -----10 编程计算
MOV AL,0 , MOV BL,1 , MOV CL,10 NEXT:ADD AL,BL , INC BL DEC CL JNZ NEXT ;CL≠0 转 ≠ HLT
1
3.1 概述 一、指令包含的基本内容
12
(3)相对寻址
例: MOV AX, [SI+100H]
;结果 : 结果 AX (DS×16+SI+100H) ×
例:MOV AL,[BP+DATA] MOV AL, DATA[BP] ; DATA是符号表示的位移量。 表示的位移量 是符号表示的位移量。
结果 : AL (SS×16+BP+DATA) ×
11
(2)间接寻址 例:MOV AX,[BX] , •结果 : AX 结果 (DS×16+BX) ×
...
3000H:0000H : • EA= BX /SI /DI , 物理地址=DS*16+EA 物理地址 • EA= BP 物理地址=SS*16+EA 物理地址 :1234H :50H :1235H :30H
1. 做什么操作? 做什么操作? MOV ,ADD, OR,CMP等助记符 等助记符
2. 操作的数据是什么? ①CPU内的寄存器; 操作的数据是什么? 内的寄存器 内的寄存器; 内存的某一个或几个单元 单元; ②内存的某一个或几个单元; 结果放在那里? 3. 结果放在那里? 立即数。 ③立即数。 端口; 端口 ④I/O端口; 下一条指令在哪里? 4. 下一条指令在哪里? IP←IP+1

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

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

▲按给出偏移地址方式的不同,分为以下5种: 寄存器间接寻址 寄存器相对寻址 基址加变址寄存器 相对基址加变址寄存器 MOV AL, [ BX ] MOV AL, [ BX + 10H ] MOV AL, [ BX + SI ] MOV AL, [ BX + SI + 10H ]
(1)寄存器间接寻址
寄存器寻址方式的操作数是寄存器的值,指令中直接 使用寄存器名,包括8位或16位通用寄存器和段寄存器。可 使用的16位寄存器:AX、BX、CX、DX、SI、DI、SP、 BP;其中:AX、BX、CX、DX可分成两8位使用。
例: MOV AX,CX
;(AX)
(CX)
INC CX
;(CX)
(CX)+1
3.直接寻址(Direct Addressing)
0002
AH
AL
默认段寄存器的关系: ① 使用BX、SI、DI,默认段寄存器为DS
(BX)
PA = ( DS )×10H + (SI) (DI)
② 使用BP,默认段寄存器为SS PA = ( SS )×10H + ( BP )
使用BX、SI、DI的寄存器寻址,默认段寄存器为DS
寄存器组 AH AL BH BL CH CL DH DL SI DI BP SP AX BX CX DX DS ES SS CS IP 地 址 加 法 器
运 算 器
控制总线CB


PSW标志 寄存器
执行部件控制电路
CPU
总线
内存
例: MOV AX , [ BX + SI ]
若 ( DS ) = 4000H
( BX ) = 2000H ( SI ) = 100H 则内存操作数的物理地址为:

微机原理第3章习题与答案解析

微机原理第3章习题与答案解析

习题一、选择题1.寻址方式指出了操作数的地点,一般来说_______。

A.立刻寻址给出了操作数的地点B.寄存器直接寻址的操作数在寄存器内,而指令给出了储存器C.直接寻址直接给出了操作数自己D.寄存器直接寻址的操作数包括在寄存器内,由指令指定寄存器的名称答案: D2.寄存器寻址方式中,操作数在_________。

A. 通用寄存器B. 货仓C.内存单元D.段寄存器答案: A3.寄存器间接寻址方式中,操作数在_________ 。

A. 通用寄存器B. 货仓C.内存单元D.段寄存器答案: C4.以下指令中的非法指令是 ______。

A. MOV [SI+BX], AXB.MOV CL, 280C.MOV [0260H], 2346HD.MOV BX, [BX]答案: B5.设 (SP)=0100H ,(SS)= 2000H ,履行 PUSH BP 指令后,栈顶的物理地点是 _____。

A.200FEHB.0102HC. 20102HD.00FEH答案: A6.指令 LEA BX, TAB 履行后,其结果是 ______。

A. 将 TAB 中内容送 BXB.将 TAB 的段基址送 BXC.将 TAB 的偏移地点送 BXD.将 TAB 所指单元的储存内容送 BX答案: C7.以下正确的指令格式有______。

A.MOV [BX], 1B.MOV AL, 0345HC.MOV ES: PTR[CX], 3D. XLAT答案: D8.设 (AX)=C544HA.CF=0,OF=0 ,在履行指令B.CF=0,OF=1ADD AH,AL 以后,C.CF=1,OF=0______。

D,CF=1,OF=1答案: C9.若 AL 、 BL 再履行 DAA 中是压缩BCD后, (AL)=_____数,且在履行。

ADD AL, BL 以后,(AL)=0CH , CF=1 ,AF=0 。

A.02HB.12HC.62HD.72H 答案: B10.履行以下程序后AL 的内容为 _____。

微机原理课程总结3章

微机原理课程总结3章

第3章从8086到Pentium系列微处理器的技术发展由于课时的关系,本章内容一般作为自学或讨论学习的内容。

但是,本章内容对本课程学习的升华具有潜在的意义,故在此也进行提示。

3.1分析教材内容本章主要对80386 CPU,同时也对80486及Pentium微处理器的改进之处和特点进行简单提示。

3.1.1分析重点难点问题1. 80386微处理器1) 80386的特点及其体系结构,请参见教科书P50-52,注意:硬件支持多任务处理。

2) 80386引脚的功能,请参教科书见P53,注意:理解协处理器接口信号。

3) 80386的寄存器组,请参见教科书P54-56,注意:掌握各寄存器的功能。

4) 80386的工作模式,请参见教科书P57,注意:理解三种模式,3种工作模式可以相互转换。

5) 80386中断,请参见教科书P59-60,注意:80386的中断管理机制在实模式和保护模式下是不同的。

2. 80486微处理器1) 80486的主要特点,请参见教科书P60-61。

2) 80486的内部结构,请参见教科书P61-64。

注意和80386的区别。

3. Pentium微处理器1) Pentium体系结构,请参见教科书P65-67,注意Pentium微处理器在486体系结构基础上,还作了哪些增强性的改进。

2) Pentium Ⅱ微处理器,请参见教科书P68。

注意其结构上的特色。

3) Pentium Ⅲ微处理器,请参见教科书P69。

注意其SSE指令。

4) Pentium Ⅳ微处理器,请参见教科书P69。

注意其两组独立工作的ALU。

3.1.2 典型例题解析本章例题主要从微处理机体系结构和新的设计思想出发,以8086微处理机为基础,把重点放在Pentium微处理机的新体系结构和新的设计思想上。

例如Pentium微处理机新体系结构的特点?相对8048体系结构有哪些增强点等?这些问题有助于提高计算机系统结构的水平。

有关这方面的问题,上节已很明确的写出,在此不再赘述。

微机原理第三章:8086微处理器结构

微机原理第三章:8086微处理器结构

4.8086 和8088 二者的指令系统完全兼容
(1)有24 种寻址方式,具有乘、除法指令等。 (2)取指令和执行指令的操作并行运行,运行速度大大提高。
(3)具有最小模式和最大模式,应用领域宽广,适应性强。
(4)可方便地和数据处理器8087、I/O 处理器8089 或其它处理器 组成多处理机系统,提高数据处理能力和输人输出能力。
代码段寄存器 CS 标 志 寄 存 器
数据段寄存器 DS
堆栈段寄存器 SS
附加段寄存器 ES
由于8086/8088 CPU 可直接寻址的存储器空间是1M字节,直接寻址需要 20位地址码,而所有的内部寄存器都是16位的,用这些寄存器只能寻址 64K字节,为此需要采取分段技术来解决这个问题。
表3.1
通用寄存器的隐含使用
程序调试过程中。
3.1.2 8086/8088 的寄存器结构
四、指令指针寄存器 IP ★ 16 位的指令指针寄存器 IP 用来存放将要执行的下一条 指令在代码段中的偏移地址。 ★ 在程序运行过程中,BIU 可修改 IP 中的内容,使它始终 指向将要执行的下一条指令。 ★ 程序不能直接访问 IP,但可通过某些指令修改 IP 内容。 ★ 如遇到转移类指令,则将转移目标地址送人IP中,以实 现程序的转移。
★ 规则字的读/写操作可以一次完成。由于两个存储体上的地址
线 A19~A1 是连在一起的,只要使 A0=0,BHE=0,就可 以实现一次在两个存储体中对一个字的读/写操作。 ★ 读写的是从奇地址开始的字(高字节在偶体中,低字节在奇体 中),这种字的存放规则称为“非规则字”或“非对准字”。 ★ 非规则字的读/写,需要两次访问存储器才能完成。 第一次访问存储器读/写奇地址中的字节;
三、标志寄存器 FR

微机原理第3章指令

微机原理第3章指令

第3章指令系统机器指令:能指示计算机完成基本操作的二进制代码指令系统:CPU可执行的机器指令的集合。

为了方便编程,人们又把完成特定操作的机器码用特定的符号表示,这就产生了符号表示的机器指令-------指令助记符。

第3章8086指令系统机器指令由二进制代码组成,一条指令包括操作码和操作数(或地址)两部分,操作码指明该指令进行何种操作,操作数用来说明操作对象。

个别指只有操作码没有操作数。

由于不同的指令所表达的信息不尽相同,因此指令的长度即机器码字节数也有长有短。

8086指令系统的指令是可变长指令(1~6个字节)3.18086CPU寻址方式重点是存储器寻址存放在存储器中的数据称为存储器操作数。

指令中需要确定存储单元的段地址、偏移地址(亦称有效地址EA),以及存储器操作数的类型。

段地址存放在段寄存器中,确定段地址实际上就是确定段寄存器,采用的方法是默认或添加段超越前缀。

生成存储器有效地址有多种方法,这些方法形成了对存储器操作数的多种寻址形式。

确定数据类型的方法是源操作数和目的操作数类型一致原则或附加类型说明。

立即寻址方式中操作数也在存储器中,但立即寻址中的立即数包含在指令中,随程序存放在代码段,CPU在取指令时就获得操作数。

这里所说的存储器操作数是存放在数据段、附加段或堆栈段中,取指令时也不会被立即取到。

段超越前缀变量的定义在第四章详细介绍直接寻址:MOV AX,[2000H];寄存器间接寻址:MOV ES:[DI],AH基址寻址:MOV BYTE PTR[BX+1200H],10变址寻址:MOV DL,[SI+2AH]基址加变址寻址:MOV CL,[BX+SI+5]MOV AX,[BP+DI]MOV CL,[BX+SI+5]的等价形式:MOV CL,5[BX][SI]、MOV CL,5[BX+SI]、MOV CL,[BX][SI+5]MOV CL,[BX+SI-5]等价于MOV CL,[BX+SI+65531] MOV CL,[BX-SI]MOV CL,[SI+DI]错误!MOV[BX+DI],1000H正确吗?3.2.1数据传送类指令传送指令把数据从一个位置传送到另一个位置使用MOV指令应注意1.立即数只能作为源操作数2.无存储器之间直接传送与交换的指令3.没有用立即数对段寄存器直接赋值的指令4.段寄存器之间无传送指令5.两个操作数的类型要一致6.要能确定是字节还是字操作mov ah,al mov bvar,ch mov ax,bx mov ds,ax mov al,[bx]下列MOV指令正确吗?MOV AL,050AHMOV SI,DLMOV[BX+SI],255MOV DS,100HMOV[BX],[SI]MOV[BX+SI],bvarbvar是一个已定义过的字节变量 MOV CS,[SI]将数据段中偏移地址为2000H、2001H、2002H的3个字节的存储单元置数FFH。

微机原理第三章

微机原理第三章
15
执行周期也需要三个节拍:这里以LDA例行程序为 例:
(4) T3=1,IR高四位送至控制器进行分析,IR低四 位送总线,MAR接受此低四位并指向PROM的 某个单元。(第一次访问的是指令区,第二次访 问的是数据区)
CON= CPEP LMER LIEILAEA SUEU LBLB
= 0 0 1 0 01 0 0 0 0 0 0
果而分别跳转至其他子程序。 3·循环程序——程序进行过程中,在某一循环体进行若干
次循环运行,然后再继续前进。 4·调用子程序~一程序进行至某一阶段,调用存储于某存
储区中的某个子程序,然后返回至主程序继续运行下去。
35
【例3.1】程序清单(循环程序) R0 LDA 6H 把(R6)装人A去 R1 SUB 7H 从(A)减去(R7)
(2)运行/停车触发器 (3)“启动”和“清零”按钮
图3-7用方块图展示了控制部件各个电路间的关系。
27
28
3.1-3.5节小结
• 1. 掌握机器周期、时钟周期(机器节拍)的概念 • 2. 以一个指令为例,掌握各机器节拍所完成的工作 • 3. 了解控制部件的组成电路 • 作业(P57):3.2、3.3、3.5、3.6、3.7、3.12
LDA=1
25
由图可见五条指令的控制器就已经这么复杂,由此可 知要扩大指令系统,其控制矩阵的结构以及设计上的问题 是相当复杂的。这样从结构上用逻辑电路的方法来实现控 制字的方法称为硬连线方法(硬件方法)。也可以用软件 的方法来实现这个目的,这就是所谓微程序法。这将在后 面做简要介绍。
26
3.5.3 其它控制电路: (1)时钟脉冲发生器:它一般由两部分组成,即时钟振 荡器及射极输出器。前者是石英晶体振荡器,后者则用 以降低输出电阻,以提高带负载能力。

微机原理第三章习题与参考答案

微机原理第三章习题与参考答案

第三章习题与参考答案3.1 已知 (DS) = 1000H,(ES) = 2000H,(SS) = 3000H,(SI) = 0050H,(BX) =0100H,(BP) =0200H,数据变量DISP的偏移地址为1000。

指出下列指令的寻址方式和物理地址。

(1) MOV AX,0ABH 立即寻址无(2) MOV AX,BX 寄存器寻址无(3) MOV AX,[l000H] 直接寻址 10000H(4) MOV AX,DATA 直接寻址 (DS*16+DATA )(5) MOV AX,[BX] 寄存器间接寻址 10100H(6) MOV AX,ES:[BX] 寄存器间接寻址 20100H(7) MOV AX,[BP] 寄存器间接寻址 30200H(8) MOV AX,[SI] 寄存器间接寻址 10050H(9) MOV Ax,[BX+l0] 寄存器相对寻址 1010AH(10) MOV AX,DISP[BX] 寄存器相对寻址 11100H(1l) MOV AX,[BX+SI] 基址变址寻址 10150H(12) MOV AX,DISP[BX][SI] 相对基址变址寻址 11150H3.2 分别说明下例指令采用的寻址方式和完成的操作功能。

(1) MOV CX,2000H 立即寻址将立即数2000H送CX寄存器(2) MOV DS,AX 寄存器寻址将AX寄存器内容送DS段寄存器(3) AND CH,[1000H] 直接寻址将[DS*16+1000H]单元的内容送CH寄存器(4) ADD [DI],BX 寄存器间接寻址将CL寄存器的内容送[DS*16+DI]单元(5) MOV SS:[3000H],CL 直接寻址将CL寄存器的内容送[SS*16+3000H]单元(6) SUB [BX][SI],1000H 直接寻址将立即数1000H送[DS*16+BX+SI+50H]单元(7) ADD AX,50H[BX][SI] 相对基址变址寻址将[DS*16+BX+SI+50H]单元的内容送AX寄存器(8) PUSH DS 寄存器寻址将DS寄存器的内容送[SS*16+SP]单元(9) CMP [BP][DI],AL 寄存器寻址将AL寄存器的内容送[SS*16+DI+BP]单元3.3 判断下列指令正误,如果错误请指出原因。

微机原理讲义(第三章)

微机原理讲义(第三章)
CS DS、SS、ES
通用寄存器 AX、BX、CX、DX、 SI、DI、BP、SP
指令是计算机执行某种操作的命令。计算机为了 完成不同的功能而要执行不同的指令。一台计 算机能够识别和执行的全部指令称为该计算机 的指令系统或指令集。 不同的微处理器有不同的指令系统, 80X86/Pentium系列微处理器的指令集是在 8086/8088CPU指令系统上发展起来的。
第3章 80X86/Pentium 指令系统
第3章 80X86/Pentium 指令系统
• 8086/8088指令系统中对段地址有个基本 规定: • 在正常情况下,由寻址方式中有效地址 规定的基地址寄存器来确定段寄存器, 即只要寻址方式中出现BP寄存器作为基 地址,段寄存器一定采用堆栈段SS,其余 的情况都采用数据段DS。
第3章 80X86/Pentium 指令ቤተ መጻሕፍቲ ባይዱ统
第3章 80X86/Pentium 指令系统
关注以下三个方面: • 功能 • FR • 结果
第3章 80X86/Pentium 指令系统
数据传送指令
通用数据传送指令
MOV PUSH POP XCHG XLAT IN OUT
LEA LDS LES
MOV
PUSH POP XCHG XLAF IN OUT
第3章 80X86/Pentium 指令系统
设DS=1200H, BX=05A6H, BP=40A0H, SI=2000H, 位移量disp=1618H • MOV AX , [BP]
SS=5000H, DI=3000H,
EA=40A0H PA=SSx16+EA=50000H+40A0H=540A0H 执行结果: 将堆栈段540A0H和540A1H两单元的内容取出送 至AX。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

10
1. 立即寻址 指令操作数部分直接给出指令的操作数,它与指令操 作码相接,顺序存放在代码段中。立即数有 8位和16 位之分。 例1 : MOV AH,36H MOV CX,2A50H ; AH ; CX 立即数36H 立即数2A50H
11
注意: (1) 立即寻址方式只能用于源操作数,主要用于给寄 存器赋值。 (2) 立即寻址方式不执行总线周期,执行速度快。
MOV BL,2[BX] 或 MOV BL,[BX+2] ;(DS:[BX+2])BL
21
6. 变址寻址 操作数在存储器内,指令将变址寄存器SI、DI内容与 指令指定的位移量之和作为操作数所在存储单元的有 效地址EA(偏移地址)。段地址规定为DS的内容。 EA=
[SI] [DI]
+
8位或16位 位移量
第三章 指令系统
3.1 8086/8088指令系统概述 3.2 8086指令系统
1
一、8086/8088指令系统的特点
1.指令系统的兼容性 2. 指令格式的灵活性 3. 寻址方式的多样性 4. 可对多种类型的数据进行处理 5. 可构成多处理机系统
2
二、指令格式
指令:指令是指示计算机完成特定操作的命令 指令系统:指令系统是计算机能够执行全部命令的集 合,它取决于计算机的硬件设计。指令 系统因机而异,没有通用性。 执行的运算 指令中应包含的信息: 运算结果的去向 运算数据的来源
14
DS=3000H MOV AX,[2000H]
15
注意: (1) 直接寻址方式的操作数所在存储单元的段地址 一般在数据段寄存器DS中。 (2) 如果操作数在其他段,则需要在指令中用段超 越前缀指出相应的段寄存器名。 例4:MOV AH, ES∶ [2000H] 将附加段寄存器ES的内容乘16,再加上 2000H作为操作数所在存储单元的地址,取 出该存储单元的内容送到寄存器AH中。
30
3.2 8086的指令系统
指令系统包括九大类、133种基本指令,通过寻址 方式的变化与数据形式(字节、字型)的组合,可构 成上千条指令。指令系统按功能分为数据传送类、算 术运算类、逻辑运算与移位类、串操作类、控制转移 类、处理机控制、输入输出、中断等,本节将分别说 明。
31
3.2.1数据传送指令 数据传送类指令实现CPU内部寄存器之间、CPU与存 储器之间、CPU与I/O端口之间的数据传送。 1. 通用数据传送指令 包括 MOV、进栈、出栈指令、交换指令和换码指令。 (1)一般数据传送指令 MOV(8位/16位)
9
三、寻址方式 计算机可以对存储器、寄存器中的数据进行各种操 作,如取数、存数、加运算、减运算等,这就需要找到 数据的存放地址,再对其中的数据执行相应的操作,最 后将运算结果送往指定的地址单元或寄存器。指令的寻 址方式就是寻找指令操作数所在地址的方式,以确定数 据的来源和去处。熟练地掌握寻址方式对学习指令系统 和汇编语言程序设计具有重要作用。 下面介绍8086/8088的几种寻址方式。
SI←SI±1
DI←DI±1
27
9. I/O端口寻址 寻找输入输出设备的端口地址,可分为直接端口寻 址 和间接端口寻址。 直接端口寻址:由指令直接给出I/O设备的端口地址。 它规定端口地址为8位,能寻址256 个端口 间接端口寻址:由DX给出I/O设备的端口地址。由于DX 是16位,因此间接端口寻址能寻址多达64K 个端口。 例:IN AL,20H ;将地址为20H的外设内容读入AL中 OUT DX,AL;AL中内容输出给以DX的内容为地址 的外设
2. 寄存器寻址 操作数放在寄存器内,由指令直接给出某个寄存器 的名字,以寄存器的内容作为操作数。 寄存器可以是16位的AX、BX、CX、DX、SI、DI 、SP、BP寄存器,也可以是8位的AH、AL、BH、 BL、CH、CL、DH、DL寄存器。
12
例 2: 注意:
MOV DEC
AX,CX AL
28
10、 隐含寻址 指令隐含了的一个或两个操作数的地址,即操作数 在默认的地址中。
例: AAA; 对AL中的内容进行十进制加法调整,并 把调整后的结果放入AH和AL中。这条指 令的隐含操作数是AH和AL。
29
例:设BX=0158H, DI=10A5H, 位移量=1B57H, DS=2100H,求各寻址方式
MOV AX,[BX][SI]
26
8.字符串寻址 用于字符串操作指令。规定变址寄存器SI中的内容 是源数据串的段内偏移地址,而变址寄存器DI中 的内容是目标数据串的段内偏移地址。 源数据串的段地址规定是数据段DS,目标数据串 的段地址规定是附加段ES。指令执行后SI和DI的 内容自动增量(或减量),增(或减)值为1或2。 例 : MOVSB 执行后: [DI]←[SI]
36
(2) 堆栈操作指令 堆栈:是按“后进先出”原则工作的一段存储器区域。 堆栈寄存器SS——段地址 堆栈指针SP——始终当前栈顶所在的存储单元地址, 即最新入栈数据所在的存储单元的地址。 压栈操作:PUSH OP 功能:把OP字数据压入栈中,结果SP-2SP 原则:高字节压在高地址,低字节压在低地址 执行过程: SP←SP-1; [SP] ←OPH SP←SP-1 ; [SP] ←OPL
6
2、寄存器操作数: 表示参加运算的数存放在指令给出的寄存器中,可 以是16位或8位。
例:MOV AX,BX MOV DL,CH
7
3、存储器操作数:

例:MOV AX,[1200H] MOV AL, [1200H]
偏移地址
┇ 1200H 22H 11H
AH AL
8
例如: MOV AL,[BP] 该指令生成的机器码是8A4600H
下的有效地址和物理地址。
1)直接寻址 MOV AX,[1B57H] 有效地址=1B57H 物理地址=21000H+1B57H=22B57H 2)寄存器间接寻址 MOV AX, [BX] 有效地址=0158H 物理地址=21000H+0158H=21158H
3)基址寻址 MOV AX, [BX+1B57H] 有效地址=0158H+1B57H=1CAFH 物理地址=21000H+1CAFH=22CAFH 4)变址寻址 MOV AX,[DI+1B57H] EA=10A5H+1B57H=2BFCH 物理地址=21000H+2BFCH=23BFCH 5)基址加变址寻址 MOV AX,[BX+DI+1B57H] EA= 0158H+10A5H+1B57H=2D54H 物理地址=21000H+2D54H=23D54H
19
5. 基址寻址 操作数在存储器内,指令中寄存器(BX或BP)的内容 与指令指定的位移量之和作为操作数所在存储单元的 有效地址EA(偏移地址)。
EA=

[BX] [BP]
+
8位或16位 位移量
使用BX时,段地址为DS的内容; 使用BP时,段地址为SS的内容。
20
例 6: SS=2000H,BP=1000H,COUNT=2000H (16位偏移量 ) 指令: MOV AX,COUNT[BP] 解:物理地址=16×SS+BP+16位偏移量 =20000H+1000H+2000H=23000H 指令执行结果是将23000H和23001H单元的内容送 入寄存器AX中。
17
MOV BX,[SI]
18
例5:已知: DS=2100H,DI=2000H 指令: MOV AX,[DI] 解: 物理地址=16×DS+DI =16×2100H+2000H=23000H 指令执行结果是将23000H和23001H单元的内容送 入寄存器AX中。 注意: 1. 只有SI,DI,BX,BP 可作为间址寄存器。 2. 若操作数所在存储单元不在数据段DS中,需要在指 令中用段超越前缀表明其所在段的段名。
24
例8:已知: DS=2000H,BX=1000H, SI=0500H,MK=1120H 指令: MOV AX, [MK+BX+SI] 解: 物理地址=20000H+1000H+0500H +1120H =22620H
指令执行结果是 将22620H、22621H单元 的内容送入寄存器AX中。
25
34
注意: MOV指令的两个操作数(源、目的)均可采用不同的 寻址方式。 源操作数和目的操作数的类型必须一致 不允许把立即数作目的操作数,也不允许向段寄存器 送立即数。 不允许在段寄存器之间、存储器单元之间传送数据。 CS、IP寄存器不能用作目的操作数。
MOV CS,AX ╳ 一般传送指令不影响标志位。
3
指令格式:
操作码
[操作数],[操的数据 源操作数: 指令加工之前的数据 目的操作数:指令加工之后形成的数据
4
指令中的操作数表征方法:
表征参加操作的数据本身 表征数据存放的地址 立即数
寄存器 存储器
5
操作数类型 1、立即数操作数: 表示参加操作的数据本身,可以是8位或16位 例: MOV AX,1234H ; AX 1234H MOV BL,22H 立即数无法作为目标操作数 立即数可以是无符号或带符号数,其数值应在 可取值范围内
35
例:判断下列指令正确与否: √ MOV AL, BL √ MOV CX, BX × 类型不一致 MOV BX, DL MOV DX, 34H √ MOV DS, 1234H × 立即数不能送段寄存器 √ MOV ES, AX × CS不能作目的操作数 MOV CS, BX MOV [SI], CX √ MOV [DI], [SI] × 不能同时为存储器操作数 MOV 2000H, AX × 目的不能为立即数
16
4. 寄存器间接寻址
相关文档
最新文档