欢迎来到天天文库
浏览记录
ID:51594935
大小:343.50 KB
页数:85页
时间:2020-03-25
《微机原理课件(西电版)ppt33-5.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第3章16位和32位微处理器的指令系统1第五节8086指令汇总2共有133条指令,按功能可分为:传送指令算术运算指令逻辑运算和移位指令串操作指令控制转移指令3传送指令通用传送指令累加器专用传送指令地址传送指令标志传送指令4通用传送指令(1)最基本的传送指令(MOV)MOVAL,BL;BL中的8位数据送ALMOVES,DX;DX中16位数据送ES>>是程序中使用频率最高、用的最多的指令。格式:MOVDST(目的),SRC(源)执行操作:(DST)(SRC)注意:源操作数和目的操作数都是由某一种寻址方式确定的,可以是8位或16位。5注意:①通用传送指令可传送8位和16位数据②通用传送指令中总是既
2、含源操作数,又含目的操作数③不能在两个内存单元之间直接传送数据④CS和IP寄存器不能作为目的操作数⑤用BX、SI、DI来间接寻址时,默认的段寄存器为DS,而用BP来间接寻址时,默认的段寄存器为SS。执行SS寄存器赋值的传送指令时,系统自动禁止外部中断。⑦所有的通用传送指令都不改变标志。6(2)堆栈操作指令推入堆栈指令PUSH和弹出堆栈指令POP。如:PUSHAXPUSHDSPOPDSPOPAX格式:PUSHSRC入栈指令POPDST出栈指令功能:一般用于保护现场操作数只能是16位数7主程序子程序……PUSHAX转子PUSHBX……PUSHCX结束……POPCXPOPBXPOPAX返回保护现场
3、恢复现场特点:不影响标志位;堆栈遵从“后进先出”的原则;操作数在堆栈中,高字节在高地址,低字节在低地址;每次入栈操作SP-2,每次出栈操作SP+2。8注意:①堆栈操作总是按字进行的。②推入指令,SP减2,数据在栈顶。弹出指令正好相反。③允许PUSHCS,但不允许POPCS。④堆栈的后进先出。9(3)交换指令格式:XCHGOPRD1,OPRD2两个操作数均可以是8位或16位功能:OPRD1与OPRD2交换①通用寄存器与累加器②通用寄存器与通用寄存器③通用寄存器与存储器例如:XCHGAL,CLXCHGBX,SIXCHGAX,AREA1[SI]10交换指令注意点:①目的操作数和源操作数不能均为内存
4、单元。②段寄存器和IP不能作为交换指令的操作数。11累加器专用传送指令8088是准16位机,外部数据总线是8位,因此只有字节传送指令。而对8086来说,外部数据总线是16位,有字输入输出指令。当端口地址为00H~FFH时,可用直接输入输出指令。当端口地址多于8位(00100H~0FFFFH)时,必须先用DX存放端口地址。因此与I/O有关的寻址方式:l直接寻址:直接写8位端口号(端口地址)例:INAL,20H(8088)INAX,20H(8086)lDX寄存器间接寻址:将16位端口地址存入DX中例:MOVDX,2500H(2500H是端口号)INAL,DX(8088)INAX,DX(8086)
5、12直接寻址的输入/输出指令IN/OUT格式:INAL,n;(n)送ALINAX,n;(n+1,n)送AXOUTn,AL;AL送(n)OUTn,AX;AX送(n+1,n)说明:n为直接端口地址,是一个8位地址。(n)表示n号端口寄存器内容,8位。n+1,n为相邻两个端口地址,(n+1,n)表示n+1和n两端口寄存器内容,16位。13DX间接寻址的IN/OUT指令格式:INAL,DX;((DX))送ALINAX,DX;((DX)+1,(DX))送AXOUTDX,AL;AL送((DX))OUTDX,AX;AX送((DX)+1,(DX))说明:DX是间址寄存器,其内容是端口地址,其地址值可以是16
6、位的。注意这里间址寄存器只能用DX,不可以用其它寄存器。综上我们可以看到:如果端口地址是8位的,用直接寻址或DX间接寻址都可以;但如果端口地址是16位的,则必须用DX间接寻址。16位输入输出指令中的端口地址只能取偶数。14输入输出指令注意点:①只能用累加器作为执行输入输出的机构②寻址范围:直接输入输出指令为0~255间接输入输出指令为0~65535。15l换码指令格式:XLAT~将字节表格的首地址存入BX,要换取的代码相对于表格首址的偏移量存入AL中,表格的内容是要换取的代码表操作:((BX)+(AL))(AL)XLAT执行前,BX指向转换表的起点,AL中是位移量,执行后AL中是换取的代码。
7、功能:从转换表中查找出一个字节的内容,用其取代AL寄存器中的内容。用途:常用于将一种代码转换成另一种代码。如把字符的扫描码转换成ASCII码,或把数字0~9转换成7段数码管所需要的相应代码等。16换码指令的功能17地址传送指令(1)取有效地址指令(LEA)如:LEAAX,[2728];将内存单元的偏移量2728送AXLEABX,[BP+SI];指令执行后,BX中内容为BP+SI的值LEASP,[0482];使
此文档下载收益归作者所有