您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > 第3章 寻址方式与指令系统-1
1本章主要教学内容指令格式及寻址的概念8086指令系统寻址方式及应用各类指令的表示、功能、特点及其应用DOS功能调用和BIOS中断调用第3章寻址方式与指令系统2本章教学要求通过学习:理解指令格式及寻址方式熟悉CPU指令系统的组成掌握各类指令的特点和应用第3章3本次课主要教学内容指令格式及寻址的概念8086各类寻址方式及其应用数据传送类指令的特点及其应用第3章4第3章1.指令系统与指令格式计算机要执行的各种操作命令称指令。全部指令集合为该计算机指令系统。指令以二进制编码形式存放在存储器中,称机器指令,CPU可直接识别。用助记符表示的指令称汇编指令,具有直观、易理解、好记忆的特点。3.1指令格式及寻址5指令中应包含的信息:运算数据的来源运算结果的去向执行的操作指令格式:操作码[操作数],[操作数]执行何种操作目标操作数源操作数参加操作的数据或数据存放的地址第3章6常用指令格式:零操作数指令:操作码单操作数指令:操作码操作数双操作数指令:操作码操作数,操作数多操作数指令:操作码三操作数及以上第3章78086指令长度1~6个字节。其中操作码字段为1~2个字节(B1、B2),操作数字段为0~4个字节(B3~B6)。每条指令长度根据指令操作功能和操作数形式而定。OPcodelowdisp或datahighdisp或datalowdatahighdataB1B2B3B4B5B6OPcode第3章8086指令格式8第3章寻找操作数的过程称寻址;寻找操作数或操作数地址的方式称寻址方式;指令或程序中,根据给定寻址方式可方便地访问各类操作数。2.寻址及寻址方式的概念93.指令中的操作数表征参加操作的数据本身立即数表征数据存放的地址寄存器存储器第3章10第3章(1)立即操作数:操作数在指令中,跟随在指令操作码后。(2)寄存器操作数:操作数存放在CPU内部寄存器中。(3)存储器操作数:操作数存放在内存数据区(采用方括号[]表示地址)。操作数三种存放位置:11第3章3.2.1与操作数有关的寻址方式1.立即数寻址操作数放在给定指令中,紧跟在操作码后。立即数不能作为目标操作数。以下指令采用立即数寻址:MOVAL,10;十进制数MOVAL,00100101B;二进制数MOVAX,263AH;十六进制数3.28086指令系统寻址方式12第3章指令中给出寄存器名,寄存器中内容为操作数。寄存器寻址是CPU内部操作,不需访问总线周期,指令执行速度快。如:MOVAX,BX;16位操作数MOVAH,CL;8位操作数2.寄存器寻址13第3章存储器寻址时,指令中给出操作数地址信息。(共介绍5种方式)要计算操作数的:有效地址EA(与寻址方式相关)物理地址PA(数据实际存放地址)3.存储器寻址14第3章(1)直接寻址指令中地址码为操作数有效地址EA。默认方式下,操作数存放在DS中,否则要在指令中加段寄存器前缀(段跨越),如MOVAX,ES:[1200H]。操作数物理地址:PA=(DS)×10H+EA15目的操作数16位,要取出两个单元中数据,21002H单元字节数据56H送AL,21003H单元字节数据78H送AH。指令执行后寄存器内容为:12H34H56H78HAHAL2000HDS21002H21002H21003H内存单元×10HAX1002H(AX)=7856H例1:执行指令MOVAX,[1002H]16第3章(2)寄存器间接寻址方式EA在指定寄存器;16位操作数寻址时,EA放在基址寄存器BX、BP或变址寄存器SI、DI中。操作数物理地址:PA=(DS)×10H+(BX)PA=(DS)×10H+(DI)PA=(DS)×10H+(SI)PA=(SS)×10H+(BP)17操作数16位,执行时从21000H单元取字节数据59H送AL,从21001H单元取字节数据82H送AH,组合成1个字数据8259H送寄存器AX。3AH6BH59H82HAHAL2000H1000HDSBX21000H21000H21001H内存单元×10HAX指令执行后结果:(AX)=8259H例2:执行指令MOVAX,[BX]18第3章(3)寄存器相对寻址方式指令中给定基址寄存器或变址寄存器和8位或16位偏移量,两者之和为操作数有效地址。选择间址寄存器BX、SI、DI时,指示数据段,选择BP作间址寄存器时,指示堆栈段。EA=(reg)+8位或16位偏移量PA=(DS)×10H+EA——使用BX、SI、DI间址寄存器PA=(SS)×10H+EA——使用BP作为间址寄存器19【例3】指令MOVAX,[BX+0010H],寄存器内容(BX)=1200H,(DS)=2000H,存储单元内容(21210H)=34H,(21211H)=12H;分析指令执行结果,计算操作数有效地址及物理地址。解:属于寄存器相对寻址方式。EA=(BX)+0010H=1210HPA=(DS)×10H+EA=21210H指令执行后,从内存21210H单元取字节数据34H送AL,从内存21211H单元中取字节数据12H送AH。最后结果:(AX)=1234H。20第3章(4)基址变址寻址方式有效地址EA是基址加变址寄存器内容之和。物理地址:PA=(DS)×10H+(BX)+(SI)PA=(SS)×10H+(BP)+(DI)21【例4】指令MOVAX,[BX+SI],寄存器保存内容(DS)=2000H,(BX)=1000H,(SI)=0050H,内存中数据存放如图,计算操作数地址并分析指令执行情况。解:为基址变址寻址方式。PA=(DS)×10H+(BX)+(SI)=2000H×10H+1000H+0050H=21050H操作时将内存21050H单元的数据传送到AL中,将内存21051H单元的数据传送到AH中。指令执行结果:(AX)=0A56H2212H34H56H0AHAHALAX2000H1000HDSBX21050H21051H内存单元0050HSI21050H×10H【例4】基址变址寻址方式23第3章(5)相对基址变址寻址方式指令中给出基址寄存器、变址寄存器和8位或16位偏移量,三者之和作为操作数有效地址。基址寄存器可取BX或BP,变址寄存器可取SI或DI。如采用BX,则段寄存器用DS;如采用BP,则段寄存器用SS。物理地址:PA=(DS)×10H+(BX)+(SI)或(DI)+偏移量PA=(SS)×10H+(BP)+(SI)或(DI)+偏移量24【例5】指令MOVAX,[1100H+BX+SI],寄存器(DS)=2000H,(BX)=0100H,(SI)=0002H,存储单元(21202H)=B5H,(21203H)=37H,分析指令执行后AX寄存器中内容。解:为相对基址变址寻址方式,采用BX和SI,给定16位偏移量1100H,操作数物理地址:PA=(DS)×10H+(BX)+(SI)+偏移量=2000H×10H+0100H+0002H+1100H=21202H操作时将内存21202H单元字节数据B5H送AL,将内存21203H单元字节数据37H送AH。最后执行结果:(AX)=37B5H25第3章3.2.2I/O端口寻址8086CPU的I/O端口用独立编址方式,指令系统中设输入指令IN和输出指令OUT访问端口。I/O端口两种寻址方式:直接端口寻址寄存器间接端口寻址26第3章1.直接端口寻址指令中直接给出要访问端口地址,用2位十六进制数表示,可访问端口数0~255个。如:INAL,30H;从I/O端口地址为30H的端口中取字节数据送8位寄存器AL中。INAX,50H;从I/O端口地址为50H和51H的两个相邻端口中取字数据送16位寄存器AX中。27第3章2.寄存器间接端口寻址当访问端口地址数≥256时,采用I/O端口间接寻址方式。把I/O端口地址先送寄存器DX,用16位DX作为间接寻址寄存器,可访问端口数0~65535个。如:MOVDX,283H;将端口地址283H送DX寄存器。OUTDX,AL;将AL中内容输出到DX指定端口中。288086指令系统是80X86/Pentium微处理器基本指令集。指令操作数8位或16位,偏移地址16位。按功能分成六大类:数据传送类指令算术运算类指令逻辑运算与移位类指令串操作类指令控制转移类指令处理器控制类指令第3章3.38086指令系统29第3章3.3.1数据传送类指令传送操作数或操作数地址到指定寄存器或存储单元。共14条,根据传送内容分4组:(1)通用数据传送指令——4条(2)累加器专用传送指令——3条(3)地址传送指令——3条(4)标志寄存器传送指令——4条30第3章1.通用数据传送指令(1)传送指令MOV格式:MOVdst,src把源操作数src传送至目的操作数dst,执行后源操作数内容不变。源操作数取通用寄存器、段寄存器、存储器及立即数。目标操作数取通用寄存器、段寄存器(CS除外)或存储器。31通用寄存器(AX、BX、CX、DX、SI、DI、BP、SP)存储器立即数段寄存器(CS、DS、SS、ES)图3-5数据之间的传送关系第3章32第3章MOV指令传送数据时注意:(1)段寄存器CS及立即数不能作为目标操作数;(2)两个存储单元间不允许直接传送数据;(3)立即数不能直接传送到段寄存器;(4)两个段寄存器间不能直接传送数据;(5)传送数据的类型必须匹配;(6)MOV指令不影响标志位。33【例1】分析MOV指令寻址方式和操作功能。(1)MOVAL,34H;立即数寻址,34H送AL(2)MOVBL,‘A’;立即数寻址,字符‘A’的ASCII码送BL(3)MOVSI,COUNT;立即数寻址,COUNT为符号常数,其值送SI(4)MOVDX,2175H;立即数寻址,2175H送DX(5)MOVAX,BX;寄存器寻址,BX内容送累加器AX34(6)MOVDH,BH;寄存器寻址,BH内容送DH(7)MOVAX,[2365H];直接寻址,指定存储单元中字数据送AX(8)MOV[3200H],SI;直接寻址,SI中内容送指定存储单元(9)MOVARRAY,21H;立即数寻址,21H送指定符号地址的内存单元35第3章(2)堆栈操作指令PUSH/POP进栈:PUSHopr;SP←SP-2,将源操作数opr压入堆栈出栈:POPopr;栈顶弹出字数据到目标操作数opr,SP←SP+2堆栈是存储器中一个特殊的数据存储区域,以先进后出方式进行数据操作。8086堆栈从高地址向低地址方向生长,只有一个出入口,SP始终指向堆栈的栈顶单元。36第3章(3)XCHG交换指令交换源操作数和目的操作数内容。可交换字节数据或字数据。如:XCHGAX,BX操作数必须有一个在寄存器中,可在两个通用寄存器间或寄存器与存储器间交换数据,但不能在两个存储器间交换数据。指令执行结果不影响标志位。37第3章2.累加器专用传送指令专门通过累加器来执行的指令。输入:IN(取指定端口数据)输出:OUT(将数据送指定端口)换码:XLAT(AL←BX+AL)38第3章3.地址传送指令将存储器操作数地址传送到16位目标寄存器。(1)LEAreg,src存储器操作数src有效地址送16位通用寄存器reg。(2)LDSreg,src完成32位地址指针传送,包括段地址和偏移地址。(3)LESreg,src执行操作与LDS指令相似,不同之处是以ES代替DS。39第3章4.标志寄存器传送指令读出或设置各标志位内容。均为单字节指令,隐含指令操作数,寄存器隐含为AH。(1)取标志:LAHF(2)置标志位:SAHF(3)标志寄存器入栈:PUSHF(4)标志寄存器出栈:POPF40本次课作业:教材:P80三、3题——要求指出每条指令的源操作数寻址方式,并有EA、PA的计算和指令分析过程。(下周五上交本次作业)第3章41本次课内容到此结束请预习本章后续内容谢谢!第3章
本文标题:第3章 寻址方式与指令系统-1
链接地址:https://www.777doc.com/doc-3420770 .html