欢迎来到天天文库
浏览记录
ID:59274181
大小:325.00 KB
页数:55页
时间:2020-09-22
《微机原理与接口技术实用教程ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第3章80X86的寻址方式及指令系统10/8/20211本章要点及各类指令的功能和用法80X86系统的各种寻址方式80X86的指令系统构成定义:程序:让计算机完成某种操作的命令,所有指令的集合称为指令系统。指令用助记符表示,汇编语言程序经过编译连接后,指令助记符转换为二进制代码,即指令代码,或称为机器码,可以由CPU执行。指令代码需要事先存放在微机系统的内部存储器中由CS寄存器中的内容所指定的代码段中。指令的一般格式:操作助记符目的操作数(或其位置),源操作数(或其位置)dstsrc例如:MOVAX,[SI]对应的机器码是8BH,04HMOVAX,ES:[SI]对应的机器码是26H,8BH
2、,04H3.18086的寻址方式(addressingmode)寻址方式:指令中给出的操作数的表示(或存放)方式,如果操作数存放在存储器中,CPU必须先计算出操作数的物理地址寄存器间接寻址直接寻址寄存器寻址隐含寻址基址变址相对寻址基址变址寻址寄存器相对寻址立即寻址寻址方式①立即寻址:操作数(8位或16位)出现在指令中,与指令代码一起存放在存储器的代码段中。例:MOVAX,6000HMOVAH,60HMOVAL,00H②寄存器寻址:操作数放在CPU内部的寄存器中,可为8位或16位寄存器,由指令给出。例:MOVAX,BXMOVAH,BH③直接寻址:操作数放在存储器的数据段(其段地址由DS中的内容
3、决定)中,其有效地址(偏移地址直接用偏(位)移量表示在指令中,占2个字节。偏移量常用disp表示,是有效地址的一部分或全部,可以8位也可以16位。例:MOVAX,DS:[0100H]②寄存器间接寻址:操作数在存储单元中,其有效由BX﹑SI或DI中的内容给出表示为:(BX)EA=(SI)(DI)寄存器BX﹑SI或DI在指令中给出。例:MOVAX,[SI]⑤寄存器相对寻址:操作数在存储器中,其有效地址是位移量(可8位或者16位)与变址或基址寄存器之和,Disp与寄存器在指令中给出。例:MOVAX,5[BX]也可写成MOVAX,[BX+5]⑥基址变址寻址:操作数在存储器中,偏移地址由基址寄存器和变
4、址寄存器中的内容相加确定。例:MOVAX,[BX][DI]⑦基址变址相对寻址:寄存器相对寻址与基址变址寻址方式的结合。disp与寄存器均在指令中给出。例:MOVAX,5[BP][SI]⑧隐含寻址:指令本身隐含了操作数的地址,例如:字符串操作指令MOVS,源操作数由DS:SI寄存器间接寻址,目的操作数由ES:DI寄存器间接寻址。以各种类型访问存储器时,存储单元地址的组成:3.28086/8088的指令系统a,除SAHF外不影响标志位,SAHF是将AH内容送到标志寄存器的低8位;b,不能用CS作为目的操作数;c,源操作数和目的操作数不能同时在存储器中,即:不能在一条指令中实现数据在存储器中的传送
5、。3.2.1数据传送指令Ⅰ.数据传送,由源---》目的例:MOVAX,BX;寄存器寻址MOVDL,AL;寄存器寻址MOVAX,02;源操作数用立即寻址MOVSI,[BX];源操作数寄存器间接寻址MOVAL,4[DI];源操作数用寄存器相对寻址MOVAX,[BX+2];源操作数用寄存器相对寻址MOV[BX][DI],DX;目的操作数用基址加变址寻址1、MOV指令:数据传送(复制)立即数、代码段寄存器CS只能作源操作数。IP寄存器不能作源操作数或目的操作数。MOV指令不能在两个存储单元之间直接传送数据,也不能在两个段寄存器之间直接传送数据。两个操作数的类型属性要一致。注意事项!Ⅱ.堆栈操作指令:
6、堆栈:是以后进先出规则保存信息的一种存储机构。(1)8086中堆栈段地址在SS寄存器中,堆栈当前偏移地址在SP寄存器中,SP称为堆栈指针。SP的初值代表了堆栈区的大小,若SP=0100H,有右图所示:(2)堆栈操作方式:以字为单位进行操作,高字节在高地址,低字节在低地址。(3)堆栈操作指令a、压入指令:PUSH例:PUSHAX如果AX=1234H,则该指令执行后的结果:SP=00FEH,(00FFH)=12H,(00FEH)=34Hb、弹出指令:POP例:POPBXⅢ.字节或字交换指令:寄存器之间或寄存器与存储器之间内容交换。XCHGOPR1,OPR2;(OPR1)(OPR2)例:xchga
7、x,cxⅣ.字节转换指令:常用于查表。格式:XLAT[转换表]即:XLAT;(BX+AL)-AL,BX的内容是表的首地址,AL的内容是表内的序号。采用隐含寻址方式。功能:将一个字节从一种代码转换成另一种代码。XLAT指令是通过查表方式来完成翻译功能的,因此,执行该指令之前,必须建立好一张翻译表,该表的最大容量为256个字节。INA,port;数据从port端口输入到AL或AXOUTport,A;数据从AL或
此文档下载收益归作者所有