资源描述:
《哈工程微机原理ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、练习指出下列指令中源操作数的寻址方式。若是存储器寻址,写出有效地址和物理地址;设(DS)=3000H,(ES)=1000H,(SS)=1500H,(SI)=00B0H,(DI)=5040H,(BX)=0700H,(BP)=1200H;1)MOVAX,2040H2)MOVDX,[BP]3)MOVDI,ES:[BX+2]4)MOVBX,[20H]5)MOVAX,[BX+DI]6)MOVAX,[BX+SI+1]答案设(DS)=3000H,(ES)=1000H,(SS)=1500H,(SI)=00B0H,(DI)=5040H,(BX)=0700H,(BP
2、)=1200H;1)MOVAX,2040H;立即数无EA,无物理地址2)MOVDX,[BP];寄存器间接EA=(BP)=1200H;物理地址为16200H3)MOVDI,ES:[BX+2];寄存器相对EA=(BX)+2=0702H;物理地址为10702H4)MOVBX,[20H];直接寻址EA=20H,物理30020H5)MOVAX,[BX+DI];基址加变址EA=(BX)+(DI)=5740H;物理地址为35740H6)MOVAX,[BX+SI+1];相对基址加变址EA=(BX)+(SI)+1=07B1H,;物理地址为307B1H3.28086
3、指令系统8086指令系统是80x86的基本指令集,按功能可以把这些指令分为六种类型:数据传送指令算术运算指令逻辑运算与移位指令串操作指令控制转移指令处理器控制指令数据传送是计算机中最基本、最重要的一种操作,传送指令也是最常使用的一类指令。传送指令把数据从一个位置传送到另一个位置。除标志寄存器传送指令外,均不影响标志位。3.2.1数据传送指令3.2.1数据传送指令数据传送指令用于寄存器,存储单元和输入输出端口之间传送数据或地址。除SAHF和POPF外,对标志无影响。主要有四类:1.通用数据传送指令(MOV、XCHG、PUSH/POP、XLAT)2.
4、地址传送指令(LEA、LDS、LES)3.标志传送指令(LAHF/SAHF、PUSHF/POPF)4.输入输出指令(IN、OUT)1.通用数据传送指令(1)基本的传送指令MOV格式:MOVDEST,SRC功能:将源操作数的内容传送到目的操作数。结果目的操作数的内容等于源操作数的内容,源操作数的内容不变。对标志位的影响:该指令不影响标志位。该指令的源操作数SRC可以使用各种寻址方式,目的操作数DEST可以使用除立即数外的各种寻址方式。1.通用数据传送指令例:基本的传送指令MOVAL,30H;立即数传送到寄存器MOVAL,BL;寄存器之间传送字节数据
5、MOVSI,[BX+62H];寄存器和存储器之间传送数据MOVWORDPTR[SI],01H;立即数传送到存储器;该指令的源操作数SRC可以使用各种寻址方式,目的操作数DEST可以使用除立即数外的各种寻址方式。依据源操作数、目的操作数的不同,MOV指令有6种具体格式①通用寄存器之间的数据传送例如MOVAL,BLMOVAX,CX它将源寄存器的内容传送到目的寄存器,源寄存器内容不变。1.通用数据传送指令②通用寄存器与段寄存器之间的数据传送例如MOVDS,AXMOVAX,ES注意:向段寄存器送数据,源操作数不能用立即数,只能从通用数据寄存器或存储器
6、段寄存器不能向CS传送1.通用数据传送指令例如MOVAL,[BX]MOV[1234H],BX④段寄存器和存储单元之间的数据传送例如MOVDS,[3000H]MOV[BX+SI],CS⑤立即数送通用寄存器MOVAX,1234H;将立即数1234HAX⑥立即数送存储单元MOVWORDPTR[DI],0800H表示是一个字型数据③通用寄存器和存储单元之间的数据传送1.通用数据传送指令1.通用数据传送指令MOV指令传送功能图解1.通用数据传送指令例下列指令是不合法的。MOV6234H,AX;立即数不能用于目的操作数MOVCS,AX;CS不能用于目的操作
7、数MOVIP,AX;IP不能用于目的操作数MOVDS,4234H;立即数不能直接传送给段寄存器MOVAL,BX;源操作数与目的操作数的位数必须一致MOVBUF1,BUF2;不能在两个存储器单元之间传送数据MOVDS,ES;不能在两个段寄存器之间传送数据分析错误的指令MOVDS,0100HMOV[1000H],[2000H]MOV1020H,DXMOVCS,AXMOVAX,[BX+BP]MOVCL,3300HMOVDS,ESMOVIP,2000HMOVTEST1,CS不能向段寄存器送立即数存储器之间不能直接传送立即数不能做目的操作数代码段寄存器不能
8、是目的操作数不能同时使用两个基址寄存器数据类型不匹配段寄存器之间不能直接传IP不能直接作为目的操作数符号名不能做目的操作数MOV指令源、