版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第3章 8086微处理器的指令系统(1)3.1 指令系统概述l 指令系统是一台计算机所能(识别和执行)的全部指令的集合。它与(微处理器)有着密切的关系,不同的微处理器有不同的指令系统。8086CPU包含133条指令l 指令是使计算机执行某种(特定操作)的二进制编码。指令一般包括两个部分:(操作码域)和(地址域)。填空操作码域:存放指令的操作码,即指明该指令应由计算机完成何种操作。地址域:确定操作数的值或地址、操作结果的地址,有的指令的地址域还指出下一条指令的地址。l 机器指令:计算机能(直接识别)的二进制代码。l 汇编语言:汇编语言是一种符号语言,用助记符表示操作码,用符号或符号地址表示操作数
2、或操作数地址,它与机器指令是一一对应的l 汇编程序:将汇编语言源程序翻译成机器语言(就是一条一条的机器指令),即目标程序。3.2寻址方式l 根据(指令内容)确定(操作数地址)的过程,称为寻址。l 根据寻址方式计算所得到的地址叫做(有效地址EA),也就是(段内偏移地址)。有效地址还需要与相应的(段基地址)组合才是20位的(物理地址PA) ,该工作由微处理器来完成。牢记什么是EA?什么是PA?怎么计算?后面有关于EA和PA的解释及计算方法!l 寻址方式在两种方式下被涉及:(操作数)的寻址方式和(指令)的寻址方式。如果没有特别说明,寻址方式是指源操作数的寻址方式。F操作数寻址1、隐含寻址(隐含了规定
3、的操作数)例:DAA指令,只有操作码,无操作数。规定对AL中的内容进行压缩BCD码转换。2、立即寻址(操作数(立即数)直接放在指令中,不需访问存储器)例:MOV AX ,1234H (若CS=1000H ,IP=100H) 可以进行寄存器寻址的寄存器:(16位)AX、BX、CX、DX、SI、DI、SP、BP (8位) AH、AL、BH、BL、CH、CL、DH、DL3、寄存器寻址(操作数就放在内部寄存器中,不需访问存储器)例:INC CX ;(CX)(CX)+1MOV AX ,BX ;执行后BX内容不变4、直接寻址(指令中直接给出操作数的存放地址)例1:MOV AX ,4000H (DS3000
4、H)例2:MOV ES:1234H,BL (ES4000H)注意:(1)指令中给出的4000H和1234H是操作数的偏移地址。(2)指令前缀指出段寄存器(例2)。(3)没有指出段寄存器,则默认的段寄存器为DS(例1)。5、寄存器间接寻址(内存单元的逻辑偏移地址由寄存器间接给出,只能使用BX、BP、SI、DI)例: MOV AX ,BX (若DS=2000H ,BX=1000H)重要:逻辑段地址使用隐式用法,即(1)DS与BX、SI、DI组成物理地址;(2)SS与BP、SP组成物理地址。IP只能在代码段中(CS)寻址,SP只能在堆栈段(SS)中寻址。另外,AX、CX、DX一般不能在寄存器间接寻址
5、中使用。例:若DS=0F3EH,SI=2000H,COUNT=0A8H,指令MOV AX,(SI+COUNT)中,源操作数的有效地址EA为_,其物理地址PA为_。答案:EA=SI+COUNT=2000H+0A8H=20A8HPA=DS*10H + EA = 0F3EH*10H + 20A8H = 0F3E0H+20A8H=11488HMOV AX,COUNTSIMOV AX,SICOUNT 总结:这三种形式,功能是相同的!MOV AX,SI+COUNT6、基址寻址和基址相对寻址(操作数地址在基址寄存器BX,BP中称为基址寻址;若还有位移量,则称为基址相对寻址)使用BX,默认的段寄存器是DS【例
6、1】 MOV CX ,36HBX 有效地址EA=36H+(BX) 物理地址PA(DS)×10H + EA【例2】 MOV -20BP,AL ;小心了!-20是十进制,其十六进制塔式是-14H 有效地址EA=(BP)-14H 物理地址PA(SS)×10H+EA而BP,SP的默认段寄存器为SS选择题:指令MOV AX,BX+SI中源操作数的段地址在 B 中 A.CS B.DS C.ES D.SS课件中,例3.11是不对的!例3.11 MOV AX,BX+disp 因使用BX,默认段寄存器是DS。 EA=BX+disp PA=DS×10H+ EADS7、变址寻址和变址相
7、对寻址(操作数地址在变址寄存器SI、DI中称为变址寻址;若还有位移量,则称为变址相对寻址)例3.13 MOV AH,SI+dispEA=(SI)或(DI)+disp PA= ×10H+ EA8、基址变址寻址和基址变址相对寻址有效地址EA(BX)或(BP)中的基址地址(SI)或(DI)中的变址地址disp有效地址公式:EA=(BX或BP)+(SI或DI)+disp例3.14 MOV AX,BP+DIEASS*10H + BP + DI ;此时隐含的段寄存器为SSMOV AX,BX+DIEADS*10H + BX + DI ;则隐含的段寄存器为DS(1)BX基地址寄存器、SI源变址寄存器
8、、DI目的变址寄存器与DS数据段寄存器组成物理地址(2)BP(基指针寄存器)、SP(堆栈指针寄存器)与SS(堆栈段寄存器)组成物理地址。(3)IP只能在代码段中(CS)寻址(4)SP只能在堆栈段(SS)中寻址。(5)AX、CX、DX一般不能在寄存器间接寻址中使用。例3.10 MOV AX,BXDI 使用BX,默认的段寄存器是DS若(DS)=2100H,(BX)=0158H,(DI)=0002H,(2115AH)=1234H则 EA= BX+DI =0158H+0002H=015AH PA=EA+21000H=2115AH 指令执行后,(AX)=1234H例3.11:MOV AX,MASK+BX
9、+SI 使用BX,默认的段寄存器是DS 若(DS)=3000H,(BX)=2000H, (SI)=1000H, MASK=0250H (33250H)=34H,(33251H)=12H 则 EA= MASK+BX+SI = 0250H +2000H+1000H=3250H PA= DS*10H + EA=30000H + 3250H = 33250H执行该指令后(AX)=1234H 9、I/O端口寻址8086采用I/O端口与存储器独立编址的方式(第2章的内容)。8086用20位地址线中的低16位来管理64KB的I/O端口空间,I/O端口的地址空间为0000HFFFFH(因为64K)。访问I/O
10、 端口需要专门指令IN和OUT,通过AX/AL来完成。(1)直接寻址 指令直接给出I/O端口地址,此地址应在0255(0-FFH)之间(范围小) 例如:IN AL,20H ;从端口地址20H读入一个字节(2)间接寻址,寄存器只能用DX 由DX给出I/O端口地址,此方式适用端口地址为065535(0-FFFFH)之间的任意值。(范围任意) 例如:MOV DX , 3E4HOUT DX , ALIN指令中目的操作数可为AL或AX;OUT指令中源操作数可为AL或AX例:分别指出下列指令中的源操作数和目的操作数的寻址方式(1)MOV BX, DI(2)MOV DX, 100(3)MOV DI , AL
11、(4)MOV BX+SI , CX(5)MOV DX , SI+106H(6)MOV AX , CX(7)AND DS:BP , AX(8)AND AX , DX寻址方式:1. 立即寻址 MOV AX, 1234H ;1234H是立即数2. 寄存器寻址 MOV AX, BX ;BX是寄存器3. 直接寻址 MOV AX, 1234H ;1234H是直接地址4. 寄存器间接寻址 MOV AX, BX ;BX是间接地址5. 基址寻址 MOV AX, BX+100H ;BX是基址寄存器6. 变址寻址 MOV AX, SI+100H ;SI是变址寄存器7. 基址加变址寻址 MOV AX, BX+SI+1
12、00H ;BX+SI基+变寄存器l 存储器操作数的物理地址PA的计算:是将段基地址左移四位加上有效地址EA(偏移地址)得到的。至少要记住:l BX,SI,DI配DS段l BP配SS段l 但是段寄存器和有效地址的配对是有规定的。执行速度:寄存器操作数 > 立即数操作数> 存储器操作数上面涉及的是操作数的寻址下面涉及的是指令寻址l 同样的指令(如MOV)由于寻址方式和操作数的不同,机器码的长度也不同。l 执行时间:指令的指令时间包括取址、译码和执行的时间,跟该指令的机器码的长短没有直接关系。 指令机器码 字节数 时钟数MOV AL,15HB0H 15H 2 4MOV AX,BX8BH
13、C3H 2 2指令的起始位置是由代码段CS决定的,段最大64Kb,没超出段的范围就是段内,超出了就是段间。 段内直接寻址l 段内寻址(不改变CS, 段内间接寻址只改变IP)EA=(IP)+disp 段间直接寻址l 段间寻址 段间间接寻址(即改变CS,又改变IP) 段内直接寻址l 段内寻址(不改变CS, 段内间接寻址只改变IP)EA=(IP)+disp 段间直接寻址l 段间寻址 段间间接寻址(即改变CS,又改变IP)JMP NEAR PTR PROGIA ;段内近转移 (IP)(IP)+ PROGIAJMP SHORT QUEST ;段内短转移 (IP)(IP)+ QUESTJMP 25H ;段
14、内短转移,-128+127 (IP)(IP)+ 25HJMP 1025H ;段内近转移,-32768 +32767 (IP)(IP)+ 1025HJMP BX ;段内间接转移 (IP) (BX)JMP WORD PTR BX+TABLE ; (IP) DS*10H+BX+TABLEWORD PTR是单字操作符JMP 3500H:080BH ;段间直接转移(CS)=3500H,(IP)=080BHJMP FAR PTR NEXT_PROG ;NEXT_PROG是符号地址,所在段的段地址送CS,段内的偏移量送IPJMP DWORD PTR PTRBX+DI+ALPHA ;DWORD PTR是双字操
15、作符EA=(BX)+(DI)+ALPHA PA=(DS)×10H+EA (IP) (PA) ;低地址内容送IP (CS) (PA+2) ;高地址内容送CS 转移的物理地址是:PA=(CS) ×10H+(IP)练习l 选择题:1 、一条完整的指令是由操作码和操作数两部分信息组成的。 2 、直接、间接、立即这 3 种寻址方式指令的执行速度有快到慢的排序是( C )A 直接、立即、间接 B 直接、间接、立即 C 立即、直接、间接 D 立即、间接、直接3 、指令系统中采用不同寻址方式的目的是( B )A 实现存储程序和程序控制 B 缩短指令长度,扩大寻址空间,提高编程灵活性C 可以
16、直接访问外存 D 提高扩展操作码的可能并降低指令译码难度4 、变址寻址方式中,操作数的有效地址等于( C ) 例:MOV AX,SI+100HA 基址寄存器内容加上偏移量 B 堆栈指示器内容加上偏移量C 变址寄存器内容加上偏移量 D 程序计数器内容加上偏移量5 、计算机指令中一般包含哪些字段?分别是什么含义?答:计算机指令中一般包含地址码和操作码两部分,地址码表示指令的操作对象,指出操作数的地址,操作码表示操作的性能及功能。6设BX=2000H,SI=3000H,指令MOV AX,BX+SI+8H的源操作有效地址为( )。A5000H B5008H
17、; C23008H D32008H注:有效地址EA就是方括号中表达式的值。EABX+SI+8H2000H+3000H+8H5008H7设DS=1000H,ES=2000H,BX=3000H,指令ADD AL,BX的源操作数的物理地址为( )。13000H B23000H C33000H D 3000H注:这是一个骗人的题!ES=2000H是蒙人的!源操作数BX,是寄存器间接寻址,B
18、X与段地址DS默认组合。物理地址PADS*10H + EA 10000H + 3000H 13000H8设DS=2000H,ES=3000H,SI=200H,指令MOV ES:SI,AL的目的操作数的物理地址为( )。A20200H B30200H C50200H D200H注:这也是一个骗人的题!DS=2000H是蒙人的!目的操作数ES:SI是带段超越的寄存器间接寻址,PAES*10H+EA30000H+SI30000H+20
19、0H30200H9指令MOV MEMBX,AX中的MEM是( )。A原码 B反码 C补码 D移码注:MEM是符号,它也对应着一个数值。计算机中所有数值默认以补码形式表示(第1章) 10用来作为寄存器间接寻址的寄存器有( 4 )个。只能使用BX,BP,SI,DIA8 &
20、#160; B6 C5 D411指令MOV BX+SI,AL中的目的操作数使用( )段寄存器。ACS BDS
21、;CSS DES注:BX+SI是基址+变址寻址,基址BX与段DS默认组合。12指令MOV BX,BP+5中的源操作数使用( )段寄存器。ACS BDS CSS DES注:操作数地址
22、在基址寄存器BX,BP中称为基址寻址;若还有位移量,则称为基址相对寻址。BP+5是基址相对寻址,基址BX与段DS默认组合,基址BP与段SS默认组合。13段内间接寻址只改变( )中的内容。ACS BIP CCS和IP DPSW14段间间接寻址只改变( )中的内容。ACS
23、0; BIP CCS和IP DPSW15指令JMP WORD PTR BX属于( )寻址。A段内直接 B段内间接 C段间直接 D段间间接16指令MOV AX,BX+SI+8的源操作数属于( )寻址。A直接
24、 B寄存器相对 C基址变址 D基址变址相对注:基址BX变址SI相对8,默认与段DS组合(是由BX决定的)17两个整数补码9CH和7AH相加运算后,会产生( )。A无溢出且无进位 B无溢出但有进位C有溢出且有进位 D有溢出但无进位 此方法,必须会!注:从表面上看,9CH是负数(1001 1
25、100H),7AH是正数(0111 1010H),相加后肯定无溢出。从算法上来看,采用双符号位的方法,有无溢出和进位要列计算式,重点看进位情况:11 001 1100 (-64H)+) 00 111 1010 ( 7AH)进位 11 111 0000 1 00 001 0110 ( 16H)第6位(粉色)相加,向第7位(最高位,最低位是第0位)有进位1;最高位相加,向符号位有进位1.两个进位相同“00”或“11”,则无溢出;不同“01”或“10”,则有溢出。18十进制数字74所对应的压缩型BCD码的形式是( )。A74 &
26、#160; B74H C4AH D4A注:压缩型BCD码就是每1位十进制数,对应4位二进制数。7对应0111B,4对应0100B,故结果为74H10十进制数字85所对应的非压缩型BCD码的形式是( )。A0085 B0085H &
27、#160;C0805 D0805H注:非压缩型BCD码就是每1位十进制数,对应8位二进制数。8对应0000 1000B,5对应0000 0101B,故结果为0805H20压栈操作是( )位数的操作。每次压栈都是一个字!背A8 B16 C32
28、 D任意1在下列寻址方式中,用来访问内存的寻址方式有( )。 A寄存器寻址 B寄存器间接寻址 C寄存器相对寻址 D直接寻址2用来作为寄存器间接寻址的寄存器有( )。只有BX,BP,SI,DI共4个
29、0; AAX BBX CBP CX3在下列指令中,源操作数使用DS段寄存器进行寄存器相对寻址的有( )。 AMOV AX
30、,DI4 BMOV AX , ES:SI8 CMOV AX,BP4 DMOV AX , BX4注:BX,SI,DI与段DS默认组合成物理地址,BP与段SS默认组合。但是选项B,已经非默认地指定了段ES,所以B错误。正确答案为A
31、,D4在下列指令中,源操作数的寻址方式是错误的有( )。AMOV AX,DIBX BMOV AX,SIDICMOV AX,BPBX DMOV AX,DX注:A是基+变,正确;B是变+变,无此形式,错误!C是基+基,无此形式,错误!D 的源操作数寻址形式DX,看似寄存器间接寻址!但是(内存单元的逻辑偏移地址由寄存器间接给出,只能使
32、用BX、BP、SI、DI)MOV AX,SIMOV AX,DIMOV AX,BPMOV AX,SX这四种形式都是正确,但(基+基)和(变+变)形式是错误的!再有就是寄存器间接寻址,只能使用BX、BP、SI、DI。l 填空题:1在一条指令中,立即数只能作 源 操作数。你见过MOV 1234H,AX吗?28086/8088 CPU形成的内存物理地址有 20 位。3指令“MOV AX,BX+SI”的源操作数在内存的 DS 段。BX默认与DS段组合4指令“MOV BX,BP+DI”的源操作数在内存的 SS 段
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 水上乐园水泵施工合同
- 环卫工程文明施工合同
- 航空航天施工合同范本
- 体育馆场地锚施工协议
- 危险品运输安全手册
- 人才交流合作协议
- 霍尔斯传感器课程设计
- 企业合作投标保密协议书
- 智能城市弱电施工合同
- 办公楼供热设备安装合同
- 人音版一年级上册《其多列》课件PPT
- 人教版初中英语说课省一等奖课件(全英文)
- 高三年级班级成绩分析报告
- 报纸先生的故事
- 整形美容科品管圈PDCA汇报模板-通过综合性护理干预措施降低疤痕发生率
- 中学排球校本课程教材(小学也可用)
- 2023天然气井防硫化氢安全检查表
- 国际贸易业务流程图(完整资料)
- 植物检疫学知到章节答案智慧树2023年华南农业大学
- 国际海上人命安全公约
- 北师大版初一数学计算能力大赛
评论
0/150
提交评论