微机接口原理 第4章 8086 CPU 指令系统

合集下载

微机原理(杭州电子科技大学【4】8086系统结构[2-3]

微机原理(杭州电子科技大学【4】8086系统结构[2-3]

15:28
22
二、系统的复位与启动
【8086CPU时序】
① 复位信号:通过RESET引脚上的触发信号来引起8086系统复位和启
动,RESET至少维持4个时钟周期的高电平。
② 复位操作:当RESET信号变成高电平时,8086/8088CPU结束现行
操作,各个内部寄存器复位成初值。
标志寄存器
清零
指令寄存器 CS寄存器 DS寄存器 SS寄存器 ES寄存器
的比例倍频后得到CPU的主频,即: CPU主频 = 外频 × 倍频系数
⑥ PC机各子系统时钟(存储系统,显示系统,总线等)是由系统频率按 照一定的比例分频得到。
15:28
5
内频 550MHz Pentium III
倍频系数5.5
L1 Cache
L2 550MHz Cache
处理机总线 100MHz
微机原理与接口技术
第四讲
15:28
第二章 8086系统结构
内容提要
z微型计算机的发展概况 z8086CPU内部结构 z8086CPU引脚及功能 z8086CPU存储器组织 z8086CPU系统配置 z8086CPU时序
15:28
2
※有关概念介绍
z 主频,外频,倍频系数 z T状态 z 总线周期 z 指令周期 z 时序 z 时序图
总线操作
读存储器操作 (取操作数)
写存储器操作 (将结果存放到内存)
读 I/O 端口操作 (取 I/O 端口中的数)
写 I/O 端口操作 (往 I/O 端口写数)
中断响应操作
总线周期
存储器读周期 存储器写周期 I/O 端口读周期 I/O 端口写周期 中断响应周期
15:28

《计算机组成原理》教程第4章指令系统

《计算机组成原理》教程第4章指令系统

4
二 指令的格式
即指令字用二进制代码表示的结构形式
包括 操作码:操作的性质 操作码 地址码:操作数(operand)的存储位置,即参加操作的 operand , 地址码 数据的地址和结果数的地址
操作码域(op) 地址码域(addr)
5
1.操作码 操作码
指令的操作码表示该指令应进行什么性质的操作。 组成操作码字段的位数一般取决于计算机指令系统的 规模。 固定长度操作码:便于译码,扩展性差 . 可变长度操作码:能缩短指令平均长度 操作码的的位数决定了所能表示的操作数,n位操 作码最多表示2n种操作
(2). 堆栈工作过程 .
(一)进栈操作 ① 建立堆栈,由指令把栈顶地址送入SP,指针 指向栈顶。 ② 进栈:(A)→Msp, (sp)-1→SP ;Msp:存储 器的栈顶单元 (二)出栈操作 (SP)+1→SP, (Msp)→A
22
五.指令类型
一个较完善的指令系统应当包括: 数据传送类指令: 例)move、load、store等 算术运算类指令: 例)add、sub、mult、div、comp等 移位操作类指令: 例) shl,shr,srl,srr 逻辑运算类指令: 例)and、or、xor、not等 程序控制类指令: 例)jump、branch、jsr、ret、int等 输入输出指令: 例)in、out等 字符串类指令: 例)如alpha中cmpbge、inswh、extbl等 系统控制类指令: 例)push、pop、test等
18
10) *段寻址方式 段寻址方式 Intel 8086 CPU中采用了段寻址方式(基址寻址的特例)。 由16位段寄存器和16位偏移量产生20位物理地址 11)*自动变址寻址 自动变址寻址 指在变址方式中,每经过一次变址运算时,都自动改变变址寄存 器的内容,以后在PDP-11中详讲.

《微机原理与接口技术》课程教学大纲

《微机原理与接口技术》课程教学大纲

《微机原理与接口技术》课程教学大纲课程编号:适用专业:电子信息科学与技术学时数:48学分数: 3一、课程类别:微机原理与接口技术是电子信息科学与技术的专业基础课。

二、课程教学目标通过本课程的学习,通过本课程的学习,使学生掌握微处理器的工作原理及时序,微型计算机与外部设备数据传送的基本方法;掌握常用接口芯片的硬件结构、编程要点及使用方法;能够读懂简单的接口电路原理图及相关的控制程序;能够根据要求设计简单的常用的接口电路,编写相应的程序段;掌握实验、系统设计的基本方法。

为后继课程的学习及未来从事微机硬件及软件开发打下基础。

三、课程的目的与任务《微机原理与接口技术》课程学习内容为微型计算机系统的基本硬件组成、汇编语言指令系统、常用可编程接口电路、微机基本工作原理与应用。

通过本课程的学习,使学生掌握和理解微机的基本原理及应用开发方法,能根据实际要求完成微机系统的软、硬件设计,为后续课程奠定专业技术基础。

四、理论教学的基本要求1、了解:微机的应用前景和发展趋势;微机应用前景;8086最小模式的设计方法;现代微机的基本组成原理、功能、特点;存储器的基本工作原理;中断控制的特点、中断处理方法;微机中断系统的作用;8259的操作命令字和控制命令字的意义和使用方法;8255与8086的应用扩展设计方法;8255的方式控制字及状态字意义和使用方法、初始化设计方法;8253的6种应用扩展硬、软件设计方法;8253的引脚功能和内部组成结构;0832引脚功能和内部结构及0832与8086CPU的扩展设计方法;0809引脚功能和内部结构及0809与8086CPU的扩展设计方法;8086微机系统的小键盘设计方法;8086微机系统的七段码显示器的设计方法。

2、理解:中断请求与中断相应的基本工作过程;8259引脚功能和内部结构及各部分的工作原理与特点;8259中断触发方式和中断响应过程;多级中断响应过程;8255的三种工作方式;A/D及D/A变换器接口基本特点与转换原理;3、掌握:8086指令的寻址方式;8086的指令功能和使用方法;8086汇编语言程序格式形式和各种表达方式;汇编语言程序基本设计方法和基本要求;8086中断系统结构、8086内部与外部中断的特点、中断类型与中断向量、8086中断处理过程;8255的引脚功能和内部组成结构;8253的6种工作方式与输入/输出的时序、初始化编程;8251的控制字与状态字、初始化编程。

楼第4章指令系统习题解答

楼第4章指令系统习题解答

楼第4章指令系统习题解答习题解答:1.什么是寻址模式?8086/8088 CPU的寻址模式是什么?答:指令的寻址方式就是指获得操作数所在地址的方法。

8086/8088cpu指令的寻址方式可分为8种,为立即寻址、直接寻址、寄存器寻址、寄存器间接寻址、寄存器相对寻址、基址变址寻址、基址变址相对寻址、隐含寻址。

2.指示源操作数和目标操作数在以下指令中的寻址方式(1)movax,[si]源操作数:寄存器寻址目的操作数:寄存器间接寻址(2)movdi,100源操作数:寄存器寻址目的操作数:立即寻址(3)mov[bx],al源操作数:寄存器间接寻址目的操作数:寄存器寻址(4)mov[bx+si],cx源操作数:基址变址寻址目的操作数:寄存器寻址(5)adddx,106h[si]源操作数:寄存器寻址目的操作数:寄存器相对寻址3.阅读以下说明(1)sti对(2)call1000h错(3)divax,dl错(4)shlal,4错(5)popax对(6)inal,[30h]错(7)inccs错(8)out40h,al对4.地址是根据已知的物理条件计算的。

已知:SS=1000h,ES=2000h,DS=3000h,CS=4000H,BX=5000h,di=1200h,BP=2300h(1)(2)(3)(4)(5)5.将SP的初始值设置为2400h,ax=4000H,BX=3600h,然后在执行pushax指令后,SP=?,执行pushbx和popax后,SP=?答:则执行指令pushax后,sp=2400h-2=23feh,再执行pushbx和popaxMovax,[2300h]计算公式:DS×16+2300hmov[BX][di],ax计算公式:DS×16+BX+diaddax,es:[2100h]计算公式:es×16+2100hsubdx,[BP+6]计算公式:SS×16+BP+6movax,[di]计算公式:DS×16+di后sp=23feh。

第4章指令系统层习题参考解答-汇编语言与计算机组成原理 答案

第4章指令系统层习题参考解答-汇编语言与计算机组成原理 答案

1.什么是“程序可见”的寄存器?程序可见寄存器是指在用户程序中用到的寄存器,它们由指令来指定。

2. 80x86微处理器的基本结构寄存器组包括那些寄存器?各有何用途?基本结构寄存器组按用途分为通用寄存器、专用寄存器和段寄存器3类。

通用寄存器存放操作数或用作地址指针;专用寄存器有EIP和EFLAGS,分别存放将要执行的下一条指令的偏移地址和条件码标志、控制标志和系统标志;段寄存器存放段基址或段选择子。

3.80x86微处理器标志寄存器中各标志位有什么意义?常用的7位:CF进位标志: 在进行算术运算时,如最高位(对字操作是第15位,对字节操作是第7位)产生进位或借位时,则CF置1;否则置0。

在移位类指令中,CF用来存放移出的代码(0或1)。

PF奇偶标志: 为机器中传送信息时可能产生的代码出错情况提供检验条件。

当操作结果的最低位字节中1的个数为偶数时置1,否则置0。

AF辅助进位标志: 在进行算术运算时,如低字节中低4位(第3位向第4位)产生进位或借位时,则AF置1;否则AF置0。

ZF零标志:如指令执行结果各位全为0时,则ZF置1;否则ZF置0。

SF符号标志:其值等于运算结果的最高位。

如果把指令执行结果看作带符号数,就是结果为负,SF置1;结果为正,SF置0。

OF溢出标志: 将参加算术运算的数看作带符号数,如运算结果超出补码表示数的范围N,即溢出时,则OF置1;否则OF置0。

DF方向标志: 用于串处理指令中控制处理信息的方向。

当DF位为1时,每次操作后使变址寄存器SI和DI减小;当DF位为0时,则使SI和DI增大,使串处理从低地址向高地址方向处理。

4.画出示意图,简述实模式下存储器寻址的过程。

20位物理地址如下计算(CPU中自动完成):10H×段基址+偏移地址=物理地址5. 画出示意图,简述保护模式下(无分页机制)存储器寻址的过程。

采用对用户程序透明的机制由选择子从描述子表中选择相应的描述子,得到欲访问段的段基址、段限等有关信息,再根据偏移地址访问目标存储单元。

计算机微机原理8086指令

计算机微机原理8086指令
8086从功能上分成两大部分: 总线接口单元BIU(Bus Interface Unit) 执行单元EU (Execution Unit)
7
总线接口单元BIU (Bus Interface Unit)
负责8086CPU与存储器和I/O设备 功能: 间的信息传送。
8
执行单元EU (Execution Unit)
14
通用寄存器的名称与符号
① AX (Accumulator) --累加器
② BX (Base) --基址寄存器
③ CX (Count) --计数寄存器 ④ DX (Data) --数据寄存器 ⑤ SI (Source Index)是源变址寄存器
数据寄存器
⑥ DI (Destination Index)是目的变址寄存器
38
物理地址和逻辑地址的转换
由于段地址一般存放在段寄存器,所以物理地 址和逻辑地址的转换关系也可表示为: (段寄存器) (CS) 物理地址= (DS) (SS ) 左移4位 + 偏移地址
(ES)
逻辑地址的形式为 段寄存器:偏移地址
39
段寄存器
8086有4个16位专门存放段地址的段寄存器 CS--(Code Segment)(代码段)指明代码段的起 始地址 SS-- (Stack Segment)(堆栈段)指明堆栈段的起 始地址 DS-- (Data Segment)(数据段)指明数据段的起 始地址 ES-- (Extra Segment)(附加段)指明附加段的起 始地址 每个段寄存器用来确定一个逻辑段的起始地址,每种逻 辑段均有各自的用途
27
数据信息的表达单位

计算机中信息的单位 二进制位Bit:存储一位二进制数:0或1, 记做b 字节Byte:8个二进制位,D7~D0,记做B 字Word:16位,2个字节,D15~D0 双字DWord:32位,4个字节,D31~D0

第4章8086,8088微机汇编语言程序设计


2)段内偏移量(Offset) 它是标号与段起始地址之间相距的字节数,为一16位 无符号数。 3)类型(Type) 类型表示该标号所代表的指令的转移范围,分NEA R(近)与FAR(远)两种。NEAR类型的标号仅在 同一段内使用,用2字节指针给出转移的偏移量属性(即 只改变IP值,不改变CS值);而FAR类型的标号无此限 制,必须用4字节指针指出转移的段地址与段内偏移量。 当标号用作JMP或CALL等指令的目标操作数时,若 为段内转移或调用则采用NEAR类型;若为段间转移或 调用则应当采用FAR类型。 JMP FAR PTR LINE
第4章 8086/8088汇编语言程序设计
汇编语言程序设计是开发微机系统软件的基本 功,在程序设计中占有十分重要的地位。
由于汇编语言具有执行速度快和易于实现对硬件的控 制等独特的优点,所以至今它仍然是用户使用得较多的程 序设计语言。特别是在对于程序的空间和时间要求很高的 场合,以及需要直接控制设备的应用场合,汇编语言更是必 不可少了。 由于汇编语言本身的特点,本章将选择目前国内广泛 使用的IBM PC机作为基础机型,着重讨论8086/8088汇编 语言的基本语法规则和程序设计的基本方法,以掌握一般 汇编语言程序设计的初步技术。
(1)立即操作数 立即操作数在指令中直接给出,不需要使用 寄存器,也不涉及访问数据区的操作,只能作为 源操作数。立即操作数是整数,可以是1字节或 2字节。在汇编语言中,立即操作数用常量(包 括数值常量和符号常量)以及由常量与有关运算 符组成的数值表达式表示。 如:MOV BX,1000+5*3 (2)寄存器操作数 通用寄存器AX、BX、CX、DX、BP、 SP、DI、SI以及段寄存器CS、SS、D S、ES都可以作为操作数。如:MOV BX,AX

微机原理习题集答案

第1章 概述1.电子计算机主要由.电子计算机主要由 运算器运算器 、 控制器控制器 、 存储器存储器 、 输入设备输入设备 和 输出设备输出设备 等五部分组成。

等五部分组成。

等五部分组成。

2. 运算器运算器 和 控制器控制器 集成在一块芯片上,被称作CPU CPU。

3.总线按其功能可分.总线按其功能可分 数据总线数据总线 、 地址总线地址总线 和 控制总线控制总线 三种不同类型的总线。

三种不同类型的总线。

4.计算机系统与外部设备之间相互连接的总线称为.计算机系统与外部设备之间相互连接的总线称为 系统总线(或通信总线)系统总线(或通信总线) ;用于连接微型机系统内各插件板的总线称为系统内总线(板级总线) ; CPU 内部连接各寄存器及运算部件之间的总线称为内部连接各寄存器及运算部件之间的总线称为 内部总线内部总线 。

5.迄今为止电子计算机所共同遵循的工作原理是迄今为止电子计算机所共同遵循的工作原理是 程序存储程序存储 和 程序控制程序控制 的工作原理。

的工作原理。

这种原理又称这种原理又称为 冯·诺依曼型冯·诺依曼型 原理。

原理。

第3章 微处理器及其结构1.8086/8088 CPU 执行指令中所需操作数地址由执行指令中所需操作数地址由 EU EU EU 计算出计算出计算出 16 16 16 位偏移量部分送位偏移量部分送位偏移量部分送 BIU BIU BIU ,由,由,由 BIU BIU BIU 最后最后形成一个形成一个 20 20 20 位的内存单元物理地址。

位的内存单元物理地址。

2.8086/8088 CPU CPU在总线周期的在总线周期的在总线周期的T1 T1 T1 时刻,用时刻,用时刻,用A19/S6A19/S6A19/S6~~A16/S3 A16/S3 输出输出输出 20 20 20 位地址信息的最高位地址信息的最高位地址信息的最高 4 4 4 位,而在位,而在其他时钟周期,则输出其他时钟周期,则输出 状态状态 信息。

微机原理 复习8086


地址 数据
CLK DEN VCC 8284 RES 外部复位信号 RESET RDY MN/MX CLK RESET READY 8086 BHE A19~A16 AD15~AD0 INTR S0 S1 S2
பைடு நூலகம்
INTA AMWC DT/R AIOWC ALE MRDC MWTC IORC 8288 IOWC BHE AB 存储器 8286 T OE DB I/O接口
• 8086指令队列的作用是什么? 答:作用是:在执行指令的同时从内存 中取了一条指令或下几条指令,取来的指 令放在指令队列中这样它就不需要象以往 的计算机那样让CPU轮番进行取指和执行的 工作,从而提高CPU的利用率。
EU
指令队列
BIU
8086CPU内部寄存器有哪几种?各自的特点 和作用是什么? 8086CPU有14个16位寄存器和8个8位寄 存器,可分为: 数据寄存器;指针和变址寄存器;段寄 存器;指令指针寄存器;标志寄存器。
• 为了实现寻址1MB存储器空间,8086CPU将 1MB的存储空间分成若干个逻辑段进行管理, 4个16位的段寄存器来存放每一个逻辑段的 段起始地址。
• 已知堆栈段寄存器(SS)=2400H,堆栈指 针(SP)=1200H,计算该堆栈栈顶的实际 地址,并画出堆栈示意图。 • (SS)=2400H,(SP)=1200H ;PA=(SS)×10H+(SP)= 2400H×10H +1200H = 25200H。
8086CPU 重新启动后,从何处开始执行指 令? • 答:重新启动后,CS=FFFFH,IP=0000H,故 从物理地址为FFFF0H 的位置开始执行指令 。
8086 系统中存储器采用什么结构?用 什么信号来选中存储体?
• 答:8086 系统中,存储器采用分体结构,1MB 的 存储空间分成两个存储体:偶地址存储体和奇地 址存储体,各为512KB。 • 使用A0 和BHE 来区分两个存储体。当A0=0 时,选 中偶地址存储体,与数据总线低8位相连,从低8 位数据总线读/写一个字节。当BHE =0 时,选中奇 地址存储体,与数据总线高8 位相连,从高8 位数 据总线读/写一个字节。 • 当A0=0,BHE =0 时,同时选中两个存储体,读/写 一个字。

微机原理与接口技术习题答案3

第3章8086CPU指令系统1.写出完成下列要求的变量定义语句:(1)在变量var1中保存6个字变量:4512H,4512,-1,100/3,10H,65530;(2)在变量var2中保存字符串:’BYTE’,’word’,’WOR’D;(3)在缓冲区buf1中留出100个字节的存储空间;(4)在缓冲区buf2中,保存5个字节的55H,再保存10个字节的240,并将这一过程重复7次;(5)在变量var3中保存缓冲区buf1的长度;(6)在变量pointer中保存变量var1和缓冲区buf1的偏移地址。

解:var1DW4512H,4512,-1,100/3,10H,65530var2DB’BYTE’,’word’,’WORD’buf1DB100DUP(?)buf2DB7DUP(5DUP(55H),10DUP(240))var3DBLENGTHbuf1pointerDWvar1,buf1(或者pointerDWOFFSETvar1,OFFSETbuf1)2.设变量var1的逻辑地址为0100:0000,画出下列语句定义的变量的存储分配图:var1DB12,-12,20/6,4DUP(0,55H)var2DB‘Assemble’var3DW‘AB’,‘cd’,‘E’var4DWvar2var5DDvar2解:3.指令正误判断,对正确指令写出源和目的操作数的寻址方式,对错误指令指出原因(设VAR1,VAR2为字变量,L1为标号):(1)MOVSI,100(2)MOVBX,VAR1[SI](3)MOVAX,[BX](4)MOVAL,[DX](5)MOVBP,AL(6)MOVVAR1,VAR2(7)MOVCS,AX(8)MOVDS,0100H(9)MOV[BX][SI],1(10)MOVAX,VAR1+VAR2(11)ADDAX,LENGTHVAR1(12)ORBL,TYPEVAR2(13)SUB[DI],78H(14)MOVSVAR1,VAR2(15)PUSH100H(16)POPCS(17)XCHGAX,ES(18)MOVDS,CS(19)JMPL1+5(20)DIVAX,10(21)SHLBL,2(22)MOVAL,15+23(23)MULCX(24)XCHGCL,[SI](25)ADCCS:[0100],AH(26)SBBVAR1-5,154解:(1)MOVSI,100正确。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

注意:
① 寄存器寻址方式的指令操作在CPU内部执行,不需 要执行总线周期,执行速度快。
② 寄存器寻址方式既适用于指令的源操作数,也适用
于目的操作数,且可同时用于源操作数和目的操作数。
(3)与存储器寻址有关的相关知识 操作数在存储单元中时,在指令中直接或间接地 给出存放操作数的逻辑地址,以存取操作数。 存储器的逻辑地址由两部分构成:段基址和段内 偏移。 在8086的各种存储器寻址方式中,寻找存储单元 对应的偏移地址可以由多种成分组成,称为有效地 址(本教材中用EA表示)。 依据有效地址组成成分的不同,存储器寻址可以 分为直接寻址、寄存器间接寻址、寄存器相对寻址、 基址变址寻址和相对基址变址寻址等形式。 EA=[基址寄存器]+[变址寄存器]+[位移量(操作数 部分的形式地址D)] 程序实际运行时对应的物理地址基本计算公式如下: PA=(段基址寄存器)×16+EA
(5)寄存器间接寻址方式(Register indirect addressing) 操作数在存储器中,指令中寄存器的内容作为操作数 在存储单元的有效地址。寄存器可以是某个基址寄存 器BX、BP,或某个变址寄存器SI、DI。 EA=(REG) PA=(SREG)×16+EA
【例4-6】,MOV
AL,[SI]
MOV IN DX,0021H ;将端口号0021H送DX AL,DX
2. 与转移地址有关的寻址方式
PA=(CS)×16+(IP)
8086 CPU中与转移有关的指令有:无条件转移、有条 件转移、过程调用、循环和中断等类型。
直接寻址指转移的目标地址直接出现在指令,这种地 址一般称呼为标号,含义就是机器指令所处的位置, 或者说以符号形式出现的指令的内存地址。
EA=3000H,假设ES=3000H,内存单元([33000H]) =12H,([33001H])=34H,则:
PA=ES×16+EA=30000H+3000H=33000H 注意:① 直接寻址方式的操作数所在存储单元的段地 址一般在数据段寄存器DS中。
② 如操作数在其他段,则需用段超越前缀。
③ DB命令定义一个变量,或者说定义一个符号地址。
于是新指令所在位置 EA=(IP)=5030H, PA=(CS)×16+(IP)=15000H+5030H=1A030H;
(4)段间直接远转移寻址 指目标地址在另外一个代码段,指令中直接提供了要 去的转移地址的段地址和偏移地址,用指令指定的偏 移地址取代IP的内容,用指定的段地址取代CS的内容, 完成段的转换。
假设DS=2345H,SI=1023H,则:EA=SI)=1023H, PA=(DS)×16+EA=23450H+1023H=24473H 【例4-7】,MOV 注意: BX,[BP]
① 直接寻址方式的操作数所在存储单元的段地址一般 在数据段寄存器DS中。
② BP对应段寄存器默认选SS,SI,DI和BX则默认选DS。
① 立即数寻址方式只能用于源操作数,主要用于给
寄存器和存储器赋值。 ② 立即数寻址方式不执行总线周期,执行速度快。 ③ 立即数为16 位时,存放遵循“低前高后”原则, 低位字节存放在存储器低地址单元,高位字节存放在
存储器高地址单元。
(2)寄存器寻址方式(Register addressing)
操作数放在寄存器内,由指令直接给出某个寄存器 的名字,以寄存器的内容作为操作数。寄存器可以是 16位的AX、BX、CX、DX、SI、DI、SP、BP寄存器,也 可是8位的AH、AL、BH、BL、CH、CL、DH、DL寄存器。
4.1.2
寻址方式
寻址方式(Addressing Mode):在指令中指定操作 数的位置,即给出地址信息,在执行时需要根据这 个地址信息找到需要的操作数的方式。
1)与数据有关的寻址方式。
2)与转移地址有关的寻址方式。
1. 数据寻址方式
(1)立即寻址方式(Immediate addressing) 指令操作数部分直接给出指令的操作数,与指令操作 码相接,顺序存放在代码段中。立即数有8/16 位 。 注意:
PA=(SREG)×16+EA
(8)相对基址变址寻址方式(Relative based indexed addressing)
操作数在存储器内,指令将基址寄存器(BX或BP)与 变址寄存器(SI或DI)内容以及与指令指定的位移量 (DISP)之和作为操作数所在存储单元的有效地址。 位移量是一个8位(DISP8)或16位(DISP16)的带符 号二进制数。以基址寄存器为准选择段寄存器。
PA=(CS)×16+(IP)=15000H+1000H=16000H;
则新位置: EA=(IP)=2000H,此时IP值即AX的值。 则:转移PA=(CS)×16+转移EA=17000H。 存储器单元的:EA=(BX)+(SI)+100H=4100H PA=(DS)×16+EA=44100H
设([44100H])=30H,([44101H]=50H),IP=5030H。
(6)寄存器相对寻址方式(Register relative addressing)
操作数在存储器内,指令中寄存器的内容与指令指定 的位移量(DISP)之和作为操作数所在存储单元的有 效地址。寄存器可以是基址寄存器BX、BP,也可以是 变址寄存器SI,DI。位移量是一个8位(DISP8)或16 位(DISP16)的带符号二进制数。
(10)直接端口寻址
指端口地址以8位立即数形式表示,直接显式地出现在 I/O指令中。此时端口的寻址范围为00H~FFH(十进制 的0~255)。
(11)间接端口寻址
指端口地址事先赋予寄存器DX,出现在I/O指令中的是 DX寄存器而不是显式的端口地址。因为DX是16位寄存 器,这时端口的寻址范围为0000H~FFFFH。 【例4-14】
新指令所在位置:对于使用寄存器的:EA=(REG), EA→IP;
对于使用存储器单元的:EA=(存储器操作 数),EA→IP;PA=(CS)×16+EA
例4-17,JMP
AX
JMP
WORD
PTR
[BX+SI+100H]
设:AX=2000H,BX=1000H,SI=3000H,DS=4000H, (CS)=1500H,(IP)=1000H,则内存中的JMP语句取出前:
(1)段内直接短转移寻址 EA=当前(IP)+位移量DISP8→IP
PA=(CS)左移4位+EA,CS值不变
【例4-15】,JMP SHORT ALPHA 假设:ALPHA=20H,执行前(CS)=1500H,(IP)=3200H, 则:PA=(CS)×16+(IP)=15000H+3200H=18200H; 取出JMP语句后要转移去位置的 EA=当前 (IP)+ALPHA=3202H+20H=3222H; 则:转移PA=(CS)×16+转移EA=15000H+3222H=18222H。 结果:(IP)=3222H,CPU将转移到内存地址为18222H 中去取指令来执行。
(4)直接寻址方式(Direct addressing) 操作数在存储器中,指令中直接给出操作数所在存储 单元的有效地址,代表操作数所在存储单元距离段首 址的字节数。有效地址是一个无符号的16位二进制数。
【例4-3】,MOV
AL,[2000H]
EA=2000H,若假设DS=1000H,则:
PA=DS×16+EA=10000H+2000H=12000H 【例4-4】,MOV BX,ES:[3000H]
(1) CS、IP不能是目的操作数; DS:BX,DI,SI
(2) 默认的段寄存器情况;
(4) MOV指令不影响标志位;
SS:SP
(3) 不允许堆栈空间变动过程中出现中断; SS,SP时禁止
外部中断
(5) 不允许在两个段寄存器之间直接传送数据,可利用 通用寄存器过渡的方法;
间接寻址方式指转移的目标地址不直接出现在指令, 而是把转移的目标地址间接地存储在某一寄存器或者 内存变量中。
转移寻址可分为以下类型: 段内直接寻址(Intrasegment direct addressing)、 段内间接寻址(Intrasegment indirect addressing)、段间直接寻址(Intersegment direct addressing)和段间间接寻址(Intersegment indirect addressing)。
常见语句形式:
JMP
FAR
PTR
标号
新指令所在位置:EA=(IP),即标号低位地址信息 (8086CPU是低16位,在前)
CS=标号高位地址信息(最高16位,在后)
PA=更新后(CS)左移4位+更新后(IP)
4.2
8086 CPU指令系统
8086 CPU指令系统中的常用指令,大多数指令可 处理字数据、字节数据;算术、逻辑运算不局限于累 加器,存储器操作数也可直接参加算术、逻辑运算。
EA=REG)+DISP8(或DISP16)
PA=SREG)×16+EA
(7)基址变址寻址方式(Based indexed addressing) 操作数在存储器内,指令将基址寄存器(BX或BP)与 变址寄存器(SI或DI)内容之和作为操作数所在存储 单元的有效地址EA。以基址寄存器为准选择段寄存器。 EA=(基址寄存器)+(变址寄存器)
EA=(基址寄存器)+(变址寄存器)+DISP8(或 DISP16) PA=(SREG)×16+EA
(9)与端口寻址有关的相关知识 端口(Port)是指专门负责和外设进行输入和输出工作 的特殊寄存器,每个端口都有它的唯一的一个编号, 这就是端口地址号。在端口寻址中,可以认为操作数 位置在端口中或者说在外设中,在指令中直接或间接 地给出存放操作数的端口地址,以存取操作数。 I/O端口的寻址方式有两种:直接端口寻址和间接端口 寻址。
相关文档
最新文档