3-1 8086寻址方式FENG_第1页
3-1 8086寻址方式FENG_第2页
3-1 8086寻址方式FENG_第3页
3-1 8086寻址方式FENG_第4页
3-1 8086寻址方式FENG_第5页
已阅读5页,还剩67页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、内容提要回忆: 8086 CPU结构一、指令系统概述二、8086/8088寻址方式8086 CPU结构内部暂存器 IP ES SS DS CS输入/输出控制电路外部总线执行部分控制电路1 2 3 4 5 6ALU标志寄存器 AH AL BH BLCH CL DH DL SP BP SI DI通用寄存器地址加法器指令队列缓冲器执行部件 (EU)总线接口部件 (BIU)16位20位16位8位回忆:2执行部件总线接口部件通用寄存器四个专用寄存器SP:堆栈指针,其内容与堆栈段寄存器SS的 内容一起,提供堆栈操作地址。 BP:基址指针:构成段内偏移地址的一部分. SI:(Source Index):SI

2、含有源地址意思,产 生有效地址或实际地址的偏移量。 DI:(Destination Index):DI含有目的意思, 产生有效地址或实际地址的偏移量。算术逻辑单元ALU:主要是加法器。大部分指令的执行由加法器完成。标志寄存器:16位字利用了9位。 标志分两类:状态标志(6位):反映刚刚完成的操作结果情况。控制标志(3位):在某些指令操作中起控制作用。320位地址加法器四个段寄存器:CS、DS、SS、ESCS管理代码段;DS管理数据段SS管理堆栈段;ES管理附加段.16位的指令指针寄存器IP:IP中的内容是下一条指令对现行代码段基地址的偏移量,6字节的指令队列指令队列共六字节,总线接口部件BIU

3、从内存取指令,取来的总是放在指令队列中;执行部件EU从指令队列取指令,并执行。4 8086 CPU的存放器 8086CPU中可供编程使用的有14个16位存放器,按其用途可分为3类:通用存放器、段存放器、指针和标志存放器 累加器AHALBHBLCLDHDLCHSPSIDIIPFLAGSCSDSSSESBP基址存放器计数存放器数据存放器堆栈指针存放器基址指针存放器源变址存放器目的变址存放器指令指针存放器标志存放器代码段存放器段存放器附加段存放器堆栈段存放器数据存放器地址指针和变址存放器控制存放器通用存放器数据段存放器5存储器的分段管理8086CPU有20条地址线最大可寻址空间为2201MB物理地址

4、范围从00000HFFFFFH8086CPU将1MB空间分成段(Segment)每个段最大限制为64KB最小视需要而定分段后在用户编程时,采用逻辑地址,形式为段基地址 : 段内偏移地址6段地址左移4位加上偏移地址得到物理地址14600H 0100H14700H物理地址计算方法:物理地址= 段地址16 +偏移地址。例某单元的逻辑地址是1460H:0100H ,求其物理地址。7段存放器和逻辑段8086有4个16位段存放器,每个段存放器用来确定一个逻辑段的起始地址,每种逻辑段均有各自的用途CS(代码段)指明代码段的起始地址SS(堆栈段)指明堆栈段的起始地址DS(数据段)指明数据段的起始地址ES(附加

5、段)指明附加段的起始地址8逻辑段分配9一、指令系统概述了解根本概念:指令及指令系统指令的格式指令分类方法指令中的操作数类型指令的机器代码形式101、指令与指令系统指令:控制计算机完成某种操作的命令指令系统:处理器所能识别的所有指令的集合如:Intel 8086指令系统共有117条根本指令112、指令格式操作码 OP 操作数说明要执行哪种操作 如:数据传送 加法 减法 等操作用助记符表示 如:MOV ADD SUB是指令执行的参与者,即操作的对象123、指令分类方法 可按功能可分类Intel 8086指令系统共有117条根本指令,可分成6大类 数据传送类指令 算术运算类指令 位操作类指令 串操作

6、类指令 控制转移类指令 处理机控制类指令133、指令分类方法操作码操作数 按操作数的多少可分为3种指令: 0 操作数指令NOP ;空操作指令单操作数指令INC CX ;(CX) (CX)+1DEC CX ;(CX) (CX)-1双操作数指令MOV AX,BX ;(AX) (BX)144、指令中的操作数参与操作的数据有3种表征方式立即数 数据包含在指令中存放器操作数 数据包含在存放器中存储器操作数 数据在内存中操作码 操作数 ,操作数指令中描述数据的来源或去向的方法称为 寻址方式15二、8086/8088寻址方式立即寻址 (Immediate addressing)存放器寻址方式(Registe

7、r addressing)直接寻址 (Direct addressing)存放器间接寻址方式存放器相对寻址方式基址变址寻址方式基址变址相对寻址方式161. 立即寻址指令的助记符形式 MOV AL,34H 指令中的操作数直接包含在机器代码中,紧跟在操作码之后(操作数作为指令的一局部存放在操作码之后的主存单元中)机器代码是B0 34前一个字节B0是操作码 (含一个操作数AL)后一个字节34H是立即数指令长度 2字节指令指令的机器代码形式操作码操作数17立即寻址指令MOV AL,34H;(AL)34H;机器代码是B0 34指令功能执行过程例机器码在代码段中的存放形式18立即数寻址的功能19立即数寻址

8、的执行20操作数包含在机器代码中,紧跟在操作码之后 如 MOV AL,34H这种操作数被称为立即数Immediate立即寻址方式常用来给存放器赋值常用格式MOV Reg, imm请写出MOV AL, 56H的机器码 注意:掌握指令的助记符格式理解机器码在代码段中的存放形式立即寻址方式要点21立即数imm可以是8位数值(00HFFH) MOV AL, 34H立即数imm也可以是16位数值(0000HFFFFH)如: MOV AX,0102H 机器代码是B8 02 01前一个字节B8是操作码 (含一个操作数AX),后两个字节02 01是16位立即数 (低字节在前,高字节在后)3字节指令222. 存

9、放器寻址方式操作数存放在存放器中,可以是:8个通用存放器Reg8位存放器16位存放器4个段存放器SegRegDS、SS、ES、CS注意在任何情况下,不允许给CS送数据23存放器寻址指令MOV BX,AX;(BX)(AX)指令功能例24存放器寻址的功能25存放器寻址指令MOV AX,3000H;(AX)3000HMOV DS,AX ; (DS) (AX)执行过程存放器寻址机器代码是8E08立即数寻址例26存放器寻址的执行27立即寻址和存放器寻址指令在执行时,不再访问内存,称为与存储器无关的寻址方式执行指令时,如果要访问内存, 这种寻址方式称为与存储器有关的寻址方式8086有多种存储器寻址方式3.

10、 直接寻址方式4. 存放器间接寻址方式5. 存放器相对寻址方式6. 基址变址寻址方式7. 基址变址相对寻址方式难点之一先理解再骤步掌握283. 直接寻址方式在指令中直接给出有效地址默认的段地址在DS段存放器设(DS)=3000HMOV AX,2000H;AX(DS)*16+2000H);指令代码:A1 0020EA=2000H物理地址=(DS)16+EA=32000H指令功能执行过程指令中给出操作数的偏移地址 称之为有效地址EA (Effective Address) 而数据在数据段中29直接寻址的功能30直接寻址的执行31在指令中给出的是数据的有效地址,而不是数据一般,数据与机器码不在同一个

11、段中如 MOV AX,2000H 的执行过程涉及两个段CPU通过计算物理地址后再访问数据 直接寻址方式要点(AX)(DS)*16+2000H)32 设(DS)=3000H,编写指令,把30100H单元中的字节数据传送到AL存放器中,把30100H单元中的字数据传送到DX存放器中。MOV AL,0100H ;(AL)=34HMOV DX,0100H ;(DX)=5634H例33 设(DS)=3561H,用MOV指令完成以下功能。(AL)(35610H)(BL)(356FFH)(CL)(40002H)课堂作业34 设(DS)=3561H,用MOV指令完成以下功能。(AL)(35610H)(BL)(

12、356FFH)(CL)(40002H)课堂作业MOV AL,0000H 以AF开头的数,加前导0MOV BL,00EFHMOV CL,0A9F2H 35注意直接寻址方式默认DS段存放器 可使用段超越前缀,用来指定段存放器 设(ES)=5000H MOV AX,ES:2000H ;(AX)(ES)*16+2000H) ;EA=2000H , ;物理地址=(ES)16+EA =52000H36关于段的超越 MOV Reg,2000H默认DS段存放器 若访问的不是DS段,一定要使用段超越前缀,用来指定段存放器 MOV Reg,SegReg : 2000H 关于段的超越实际很简单比方王五说:“赛格的优

13、盘很廉价,只要110元。请问:110元人民币还是美元?373. 直接寻址方式(1)默认DS,但允许段超越。MOV AL,ES:2500H(2)直接寻址方式适用于处理单个变量。 若要处理批量数据或表格数据应使用其它与存储器有关的寻址方式小结4. 存放器间接寻址方式5. 存放器相对寻址方式6. 基址变址寻址方式7. 基址变址相对寻址方式38参与操作数据存放在内存中由存放器间接给出操作数的有效地址例 设(DS)=3000H MOV AL,0100H;直接寻址 ;(AL)(DS)*16+0100H)等价于以下指令段:MOV BX,0100HMOV AL,BX;(AL)(DS)*16+(BX)BX 称为

14、间址存放器EA=(BX)=0100H物理地址=(DS)*16+EA 4. 存放器间接寻址方式简化描述为:(AL)(BX)39使用何种寻址方式?字节传送还是字传送?MOV AX,0100HMOV AX,0100HMOV AL,0100HMOV AX,BXMOV AX,BXMOV AL,BX注意区分以下指令:40允许段超越段地址取决于间址存放器:BXSIDI 默认DS(数据段)BP 默认SS(堆栈段)只有4个存放器可用作间接寻址注意MOV AL,ES:BX;物理地址=(ES)*16+(BX) 41存放器间接寻址设(DS)=3000HMOV BX,2000HMOV AX,BX;物理地址=(DS)*1

15、6+(BX) =32000H;(AX)(DS)*16+(BX) ;指令代码:8B07指令功能执行过程例42存放器间接寻址的功能43存放器间接寻址的执行44 设(DS)=3000H,编写程序,把从30100H单元开始的100个字节数据累加,累加和的低8位存入AL中。MOV AL,0 MOV CX,100MOV BX,0100HL1:ADD AL,BX ;(AL)(AL)+(BX)INC BX ;(BX)(BX)+1DEC CX ;(CX)(CX)-1JNZ L1;若(CX)0则转向L1,否则执行下一条指令HLT ;暂停(AL)=X0+X1+ +X99设置地址指针应用例如 1 处理批量数据45 设

16、(DS)=3000H,编写程序,把从30100H单元开始的100个字节数据累加,累加和的低8位存入AL中。MOV AL,0 MOV CX,100MOV BX,0100HL1:ADD AL,BX ;(AL)(AL)+(BX)INC BX ;(BX)(BX)+1DEC CX;(CX)(CX)-1JNZ L1;若(CX)0则转向L1,否则执行下一条指令HLT ;暂停(AL)=X0+X1+ +X99问 题 1 :可以用作间接寻址的存放器有哪几个?SI DI BP ? DX ? BX 46 设(DS)=3000H,编写程序,把从30100H单元开始的100个字节数据累加,累加和的低8位存入AL中。MOV

17、 AL,0 MOV CX,100MOV BX,0100HL1:ADD AL,BX ;(AL)(AL)+(BX)INC BX ;(BX)(BX)+1DEC CX;(CX)(CX)-1JNZ L1;若(CX)0则转向L1,否则执行下一条指令 HLT ;暂停(AL)=X0+X1+ +X99问 题 2 :若要把累加和的低8位存入30164H单元,如何编程?MOV BX,AL47分别执行以下程序后,问(DS:0020H)=?MOV AL,0 MOV CX,5NEXT:INC ALDEC CXJNZ NEXT MOV 0020H,AL例 MOV AL,0 MOV CX,256NEXT:INC ALDEC

18、CXJNZ NEXTMOV 0020H,AL(DS:0020H)=00H(DS:0020H)=05H485. 存放器相对寻址方式操作数的有效地址是间址存放器内容加上一个位移量(displacement)例:设(DS)=3000H,(BX)=1000HMOV AL,BX+1000H有效地址=(BX)+1000H物理地址=(DS)*16+(BX)+1000H =32000H 有效地址由2个局部组成间址存放器+disp49BX本身的值不变(只引用BX之值,并不修改BX)存放器相对寻址方式的几点说明:1.有效地址由两个局部组成:间址存放器+disp2.执行指令时并不影响间址存放器的内容 如:设(DS)

19、=3000H,(BX)=1000H MOV AL,BX+1000H3.等价指令格式MOV AL,BX+1000HMOV AL,1000H+BXMOV AL,1000HBX常用格式504.间址存放器与段存放器的对应关系允许段超越MOV AL,ES:20HBX;物理地址=(ES)*16+20H+(BX) 51存放器相对寻址指令设(DS)=3000H,(BX)=1000HMOV AL,1000HBX;有效地址 EA=1000H+(BX)=2000H;物理地址 =(DS)*16 +EA =32000H ;(AX)(32000H)指令功能例52存放器相对寻址的功能53存放器相对寻址指令 MOV AX,

20、1000HSI;(AX)(DS)*16+1000H+(SI) ;机器代码是8B84 0010执行过程例54存放器相对寻址的执行55 某数据表的首地址为3000H:0100H,欲读取表中第10个数据,存放到AL中。应用例如 2 查表程序MOV AX,3000H MOV DS,AXMOV BX,0100HL2:MOV AL,9BX ;(AL)(BX)+9) 设,DS:BX 指向表的首地址则,第10个数据的地址? EA= (BX) + 9相对寻址的优点:基地址不动,改变位移量,可访问不同的表格元素BX 基址存放器指向首地址便于访问表格566. 基址变址寻址方式操作数的有效地址是一个基址存放器和一个变

21、址存放器的内容之和 例:设(DS)=3000H,(BX)=1500H,(SI)=0500H, MOV AL,BX+SI有效地址 EA=(BX)+(SI)物理地址=(DS)*16+(BX)+(SI) =32000H 有效地址由2个局部组成基址存放器+变址存放器57基址变址寻址方式几点说明:1. 等价指令格式MOV AL,BX+SIMOV AL,BX+SIMOV AL,BXSI常用格式有效地址 EA=(BX)+(SI)582. 基址存放器与段存放器的对应关系只能用 BX 或 BP 作基址存放器只能用 SI 或 DI 作变址存放器59MOV AX,BXMOV AX,BXMOV AX,BPMOV AX

22、,CXMOV AL,2500HBXMOV AL,BXSIMOV AX,BXDIMOV AX,BPSIMOV DL,BXBPMOV DX,SIDI分析以下语句是否正确?课堂作业603. 基址存放器与段存放器的对应关系允许段超越MOV AL,ES:BXSI;物理地址=(ES)*16+(BX)+(SI) 61基址变址寻址指令指令功能执行过程例:设(DS)=3000H, (BX)=1500H,(SI)=0500H, MOV AL,BXSI有效地址 EA=(BX)+(SI)=2000H物理地址=(DS)*16+EA =32000H 62基址变址寻址的功能63基址变址寻址的执行64 某数据表的首地址为3000H:0100H,欲读取表中第10个数据,存放到AL中。L3:MOV AL,BXSI ;(AL)(BX)+(SI)设,DS:BX 指向表的首地址第10个数据的地址? 则,EA= (BX) + (SI)优点:BX不动,改变SI,可访问表格的不同元素,适用

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论