版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第三章第三章 8086CPU8086CPU的寻址方的寻址方式式和指令系统和指令系统教学目的及要求教学目的及要求1. 掌握数据寻址方式2. 掌握基本指令的功能及其应用3. 熟悉常见指令的功能4. 理解常见语法错误、符号扩展等问题 指令指令是计算机能够识别和执行的操作命令,是计算机用以控制各个部件协调工作的命令。指令系统指令系统是微处理器所能执行的指令的集合,它与微处理器有密切的联系,不同的微处理器有不同的指令系统 。 指令是计算机能够识别和执行的操作命令。一条完整的指令称为一个指令字。主要描述CPU应进行何种操作、寻址并使用哪一种操作数以及下一条指令存放在何处。 指令有机器指令机器指令和符号指令
2、符号指令两种。3.1 指令格式指令格式操作码操作码地址码地址码操作码:表示该指令所要完成的操作。地址码:表示参与运算的操作数或操作数的地址。机器指令都是由“0”、“1”组成,是二进制代码。一、机器指令一、机器指令二、符号指令(二、符号指令(助记符指令)汇编语言助记符指令书写的基本格式为:标号:操作码操作码 目的操作数 ,源操作数 ;注释 其中,操作码是指令语句中不可缺少的;带括号的项是可选项;多个操作数间是以,隔开的;操作码与操作数之间必须以空格分开。每种指令的操作码操作码:n用一个唯一的助记符表示(指令功能的英文缩写)n对应着机器指令的一个二进制编码指令中的操作数操作数:n可以是一个具体的数
3、值n可以是存放数据的寄存器n或指明数据在主存位置的存储器地址三、汇编语言三、汇编语言1、汇编语言即:以助记符助记符形式表示的计算机指令。助记符是便于人们记忆、并能描述指令功能和指令操作数的符号;助记符是表明指令功能的英语单词或其缩写。2、汇编语言程序:用汇编语言书写的程序; 汇编程序:将汇编语言程序“汇编”成机器代码目标模块的程序。3、汇编语言的特点优点:n直接控制计算机硬件部件n编写“时间”和“空间”两方面最有效程序缺点:n与处理器密切有关n需要熟悉计算机硬件系统、考虑许多细节n编写繁琐,调试、维护、交流和移植困难3.2 8086的寻址方式的寻址方式 所谓寻址方式,是指寻找和获得操作数、操作
4、数地址的方法。操作数是指令中的操作对象。操作数采取哪一种寻址方式,对机器运行的速度和效率有相应的影响。一般情况下,操作数在微机系统中有以下四种四种存放方式:立即操作数立即操作数 操作数包含在指令当中,是一个固定数值的操作数;相应的寻址方式称为立即寻址。寄存器操作数寄存器操作数 寄存器操作数存放在CPU的某个寄存器中;相应的寻址方式称为寄存器寻址。存储器操作数(内存操作数)存储器操作数(内存操作数) 操作数存放在内存的数据区中。相应的寻址方式称为存储器寻址。I/O端口操作数端口操作数操作数存放在I/O端口中;相应的寻址方式称为I/O端口寻址。3.2.1 立即寻址立即寻址(Immediate Ad
5、dressing) 操作数直接存放在指令中,紧跟在操作码之后,作为指令的一部分,存放在代码段代码段里,这种操作数称为立即数。 立即数可以是位或16位的。16位的立即数是高位字节放在高地址,低位字节放在低地址。使用场合:经常用于给寄存器赋初值。注意:只能用于源操作数字段,不能用于目的操作数字段。例:例:MOV AL,05HMOV AL,05H指令执行后指令执行后: : ( (AL)=05HAL)=05H例:例:MOV AX,3064HMOV AX,3064H指令执行后指令执行后: (: (AX)=3064HAX)=3064H立即寻址方式立即寻址方式.操作码操作码64H64H30H30H代代码码段
6、段64H64H.30H30HALALAHAH指指令令.操作码操作码05H05H代代码码段段05H05H.ALAL指指令令3.2.2 寄存器寻址寄存器寻址( ( Register Addressing )Register Addressing )操作数在CPU的某个寄存器中,指令指定寄存器号。对于16位操作数,寄存器可以是:AX,BX,CX,DX,SI,DI,SP,BP以及段寄存器CS,DS,SS,ES。对于8位操作数,寄存器可以是:AL,AH,BL,BH,CL,CH,DL,DH。寄存器寻址方式特点:指令长度短,执行速度快。例:指令执行前:(AX)3064 (SS)1234 MOV SS,AX
7、指令执行后: (SS)3064H (AX)保持不变。 指令执行前:指令执行前:指令执行后指令执行后: :寄存器寻址方式寄存器寻址方式SSSSAXAX3064H3064H3064H3064H1234H1234H3064H3064H3.2.3 存储器寻址存储器寻址( ( Memory Addressing )Memory Addressing )操作数存放在某个逻辑段的存储单元中。CPU要访问存储器中的操作数,必须计算出存放操作数的存储单元在存储器中的物理地址,然后才能对指定的存储单元进行读/写操作。编程时主存使用逻辑地址:段地址和偏移地址编程时主存使用逻辑地址:段地址和偏移地址段地址可以使用默认
8、逻辑段,不用显式说明u一般是DS,指向数据段u采用BP或SP作为基地址,默认SS指向堆栈段段地址必要时使用段超越指令前缀显式说明u段超越指令前缀:段寄存器名后跟英文冒号uCS DS SS ES 存储器寻址存储器寻址: : 段地址表达段地址表达存储器寻址:偏移地址表达存储器寻址:偏移地址表达主存操作数的偏移地址常被称为有效地址有效地址EAEA16位有效地址 基址寄存器变址寄存器位移量u基址寄存器:BX或BPu变址寄存器:SI或DIu位移量:8或16位有符号值常用的存储器操作数寻址有以下几种方式:1、直接寻址2、寄存器间接寻址3、基址寻址4、变址寻址5、基址变址寻址6、带位移的基址变址寻址一、直接
9、寻址一、直接寻址(Direct Addressing)1、操作数地址的16位偏移量(有效地址EA),直接包含在指令中,存放在代码段中指令操作码之后。2、操作数一般存放在数据段中,必须先求出操作数的物理地址,然后再访问存储器才能取得操作数。物理地址:物理地址:PAPA16d16d或(或(1010H H)(DS)+EA(DS)+EA3、8086允许数据存放在数据段以外的其它段中,即允许段超越。此时应在指令中指定段超越(可以是CS,SS,ES)。例:MOV AX,1070H ;DS段的1070H和1071H两单元的内容传送到AX中。假设DS=5000H,地址为51070H字存储单元的内容是6789H
10、。1070H+存储器代码段数据段1070OP50000H.6789.00000HDS1650000H67 89AXAH AL51070H51070H51071H例:MOV AX,3100H(DS)=6000H , (63100H)=3050H 则:(AX)=?直接寻址方式直接寻址方式6000H6000H.操作码操作码00003131.50H50H30H30H.6 0 0 0 06 0 0 0 03 1 0 03 1 0 0+ +6 3 1 0 06 3 1 0 063100H63100H30H30H50H50HAHAHALAL代代码码段段数数据据段段DSDS(AX)=3050H(1)在汇编语言
11、中规定,可以对某个存储单元赋予变量名。即可以用符号地址代替数值地址。如:MOV AX,VALUE 或 MOV AX,VALUE(2)直接寻址方式隐含的段寄存器是DS,8086允许段超越,即允许使用CS、SS、ES作为段寄存器,这时必须在指令中特别标明。(3)指令中不允许两个操作数都是存储器操作数,其中一个必须使用寄存器方式。注意:注意:例如:将DS中100H单元的内容送至200H单元中,不能使用MOV 0200H, 0100H,必须使用下列指令完成:MOV AX, 0100HMOV 0200H, AX 操作数在存储器中,操作数地址的16位偏移量(有效地址EA)包含在:BP、BX、SI、DI寄存
12、器中。1)若选择SI、DI、BX作为间接寻址 操作数存放在数据段区域中,即默认DS为段寄存器,用(DS)作为段地址。即操作数物理地址为: 物理地址PA=16 d (DS)+(BX) 物理地址PA=16 d (DS)+(SI) 物理地址PA=16 d (DS)+(DI)二、寄存器间接寻址方式二、寄存器间接寻址方式(Register Indirect Addressing)6000H6000H2000H2000HDSDSDIDI6 0 0 0 06 0 0 0 02 20 00 00 0+ +6 2 0 0 06 2 0 0 0.AOHAOH50H50H.62000H62000H50H50HA0H
13、A0HBLBLBHBH数数据据段段例:MOV BX,DI (DS)=6000H (DI)=2000H PA=62000H (62000H)=50A0H (BX)=50A0H寄存器间接寻址方式寄存器间接寻址方式 MOV BXMOV BX,DIDI2)若选择BP寄存器作为间接寻址 操作数在堆栈段区域中,用SS寄存器的内容作为段地址。 操作数物理地址: PA=16d (SS)+(BP)例: MOV BP, AX执行前: (SS)=1000H , (BP)=3000H , (AX)=1234H执行后:PA=13000H (13000H)=1234H寄存器间接寻址方式寄存器间接寻址方式 MOV BP,
14、AXMOV BP, AX1000H1000H3000H3000HSSSSBPBP1 0 0 0 01 0 0 0 03 30 00 00 0+ +1 3 0 0 01 3 0 0 0.34H34H12H12H.13000H13000H12H12H34H34HALALAHAH堆堆栈栈段段寄存器间接寻址方式寄存器间接寻址方式 MOV BP, AXMOV BP, AX3 )用 SI、DI、BX 、BP作为间接寻址允许段超越 指令中可以指定段超越前缀来取得其他段中的数据。例: MOV ES:DI, AX MOV DX, DS:BP这种寻址方法可以用于表格处理,在循环结构程序设计中经常用到间址方式。 操
15、作数的有效地址(EA)是一个基址或变址寄存器的内容和指令中指定的8位或16位位移量之和。 EAEA= =(BX)(BX)(SI)(SI)(DI)(DI)+ +8位位移量8位位移量16位位移量16位位移量(BP)(BP)三、三、基址寻址基址寻址(Based AddressingBased Addressing) 变址寻址变址寻址(Indexed AddressingIndexed Addressing)操作数一般在内存的数据段中,但允许段超越。除有段超越前缀之外,形成物理地址有二种方式:PA=16d (DS)+PA=16d (DS)+(BX)(BX)(SI)(SI)(DI)(DI)+ +8位位移
16、量8位位移量16位位移量16位位移量PA=16d (SS)+PA=16d (SS)+ (BP)(BP)+ +8位位移量8位位移量16位位移量16位位移量指令中逻辑地址表达式形式有以下表示方法:基址/变址寄存器 + 位移量基址/变址寄存器位移量位移量基址/变址寄存器再假设548ACH字存储单元的内容是55AAH那么,执行该指令后,(AX)=55AAH例:MOV AX,DI+1234H 假设(DS)=5000H,(DI)=3678H则:源操作数的物理地址是548ACH50000H 3678H 1234H548ACH+MOV AX,1234HDI另一种书写格式例: MOV AX, COUNTBP或M
17、OV AX, COUNT+BP设COUNT为16位位移量。指令执行前: (SS)=5000H, (BP)=3000H,COUNT=2040H,(AX)=1234H指令执行后:EA=5040HPA=55040H(55040H)=5548H(AX)=5548H 寄存器相对寻址方式寄存器相对寻址方式MOV AX,COUNTBPMOV AX,COUNTBPOPOPOPOP40H40H20H20H.48H48H55H55H.55H55H48H48H存储器存储器操操作作码码位移量位移量COUNTCOUNT代代码码段段堆堆栈栈段段55040H55040H50000H50000HAHAHALAL 操作数的有效
18、地址是一个基址寄存器和一个变址寄存器的内容之和,基址寄存器名和变址寄存器名均由指令指定。四、基址变址寻址方式四、基址变址寻址方式(Based Indexed AddressingBased Indexed Addressing) 8086中,BX、BP用作基址寄存器,SI、DI用作变址寄存器。操作数逻辑地址表达式为:段寄存器:基址寄存器 + 变址寄存器段寄存器:基址寄存器变址寄存器当BX用作基址寄存器时,默认段寄存器为DS;当BP用作基址寄存器时,默认段寄存器为SS。(BP)(BP)+ +(DI)(DI)(SI)(SI)EA=EA=(BX)(BX)+ +(DI)(DI)(SI)(SI)EA=E
19、A=除有段超越前缀之外,形成物理地址有二种方式:PA=16d(DSPA=16d(DS)+)+ (BX)(BX)+ +(DI)(DI)(SI)(SI)PA=16d(SPA=16d(SS S)+)+ (BP)(BP)+ +(DI)(DI)(SI)(SI)例: MOV AX, BXSI或 MOV AX, BX+SI执行指令前: (DS)=3200H, (BX)=0456H, (SI) =1094H (334EAH)=4567H执行指令后: EA=14EAH PA=334EAH (AX)=4567H基址加变址寻址方式基址加变址寻址方式 MOV AX,BX+SIMOV AX,BX+SI.67H67H45
20、H45H存储器存储器32000H32000H334EAH334EAH45H45H67H67HALALAHAH数数据据段段.用途:这种寻址方式主要用于二维数组中检索数组元素和二重循环程序等场合。这种寻址方式允许段超越。使用段超越前缀格式: MOV AX,ES:BXSI 操作数有效地址是一个基址寄存器和一个变址寄存器的内容和8位或16位位移量之和 。(BP)(BP) + +(DI)(DI)(SI)(SI)+ +8位位移量8位位移量16位位移量16位位移量EA=EA=(BX)(BX) + +(DI)(DI)(SI)(SI)+ +8位位移量8位位移量16位位移量16位位移量EA=EA=5 5、带位移的
21、基址加变址寻址方式、带位移的基址加变址寻址方式(Relative Based Indexed addressing)除有段跨越前缀之外,形成物理地址有二种方式:(DI)(DI)PA=16d(SSPA=16d(SS)+)+ (BP)(BP)+ +(SI)(SI)+ +8位位移量8位位移量16位位移量16位位移量(DI)(DI)PA=16d(DSPA=16d(DS)+)+ (BX)(BX)+ +(SI)(SI)+ +8位位移量8位位移量16位位移量16位位移量例:MOV AX, MASKBXDIMOV AX, MASK BX+DIMOV AX,MASX+BX+DI执行指令前:(DS)=3000H(
22、BX)=1346H(DI)=0500HMASK=1234H(32A7AH)=4050H执行指令后:EA=2A7AHPA=32A7AH(AX)=4050H 相对基址加变址相对基址加变址MOV AX, MASK+BX+DIMOV AX, MASK+BX+DIOPOPOPOP34H34H12H12H.50H50H40H40H存储器存储器30000H30000H32A7AH32A7AH40H40H50H50HALALAHAH数数据据段段操操作作码码位移位移量量MASKMASK代代码码段段1、三种类型操作数 立即操作数、寄存器操作数、存储器操作数。2、三种类型操作数特点(1)立即操作数 立即数只能作为源操作数,不能作为目标操作数。相应的寻址方式为立即寻址。寄存器操作数寄存器操作数可能存放在: 8086的通用寄存器(AX、BX、CX、DX)、地址指针(BP、SP)或变址寄存器(SI、DI)以
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 消保考试题库及答案
- 业务学习考核试题及答案
- 2026年西藏(公务员)行测真题(含答案)
- 2025年广西壮族自治区防城港市七年级历史上册期中考试试卷及答案
- 医学课件-全自动除颤仪的操作流程
- 2026年中国不锈钢缠绕垫片市场调查研究报告
- 2026年中国三相复费率/预付费电能表市场调查研究报告
- 2026年中国丁维钙粉市场调查研究报告
- 2026年中国95%醚菊酯原药市场调查研究报告
- 2026年轻纺行业技能鉴定考试-纺织机器设备安装工历年参考题库含答案解析
- 2026年苏科版八年级信息技术上册(全册)教学设计(附目录)
- 浙江杭州育才中学2026-2027学年七年级上学期开学检测数学试题(含简单答案)
- 业主委员会考核物业评分细则
- 2026年重庆市“五方面人员”选拔乡镇领导班子考试历年参考题库(含完整答案)
- 人工拆除工程施工方案方案
- 隧道掌子面素描图文讲解
- 2026新版海姆立克急救法培训
- 2026修订二手车背户买卖协议
- 统编版八年级道德与法治上册知识点清单总结复习清单
- 2025年10月25日全国事业单位联考C类《职业能力倾向测验》真题及答案【含解析】
- 江苏疾控中心招聘笔试题库
评论
0/150
提交评论