资源描述:
《安徽大学 微机原理 复习课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、复习提纲3赵博寻址方式寄存器寻址立即寻址直接寻址寄存器间接寻址基址加变址寻址寄存器相对寻址相对基址加变址寻址程序存储器寻址JMP和CALL直接寻址相对寻址间接寻址近转移(Near)范围:-32768~32767短转移(Short)范围:-128~127长转移(Far)范围:内存空间之内堆栈寻址SS:SPpush:SP-2pop:SP+28088/8086的指令系统数据传送类算术运算类逻辑运算与移位类串操作类输入/输出控制转移类处理器控制类数据传送类指令传送指令MOV(通用传送指令)指令格式:MOVdst,s
2、rc指令功能:dstsrcMOVreg/mem,imm;立即数送寄存器或内存MOVreg/mem/seg,reg;寄存器送寄存器(包括段寄存器)或内存MOVreg/seg,mem;内存送寄存器(包括段寄存器)MOVreg/mem,seg;段寄存器送内存或寄存器注意不能在两个内存单元之间使用MOV,必须借助通用寄存器作为数据传递的桥梁。不能用CS、IP、F作为目的操作数。段寄存器之间不能直接用MOV。立即数不能作为目的操作数。不能将立即数直接送段寄存器。目的操作数和源操作数必须类型一致。MOV指令不影响状态
3、标志。2、堆栈操作(通用传送指令)l进栈指令PUSH指令格式:PUSHsrc(r16/m16/seg)其中,src可以是r16或m16或seg,目的操作数固定为堆栈数据。执行操作:SPSP-2SS:[SP]r16/m16/seg先使SP内容减2,然后将一个字操作数压入堆栈。l出栈指令POP指令格式:POPdst(r16/m16/seg)其中,dst可以是r16或m16或seg,源操作数固定为堆栈数据。执行操作:r16/m16/segSS:[SP]SPSP+2将一个字操作数弹出堆栈,然后堆栈指针SP加
4、2。3、交换指令XCHG(通用传送指令)指令格式:XCHGreg,reg/mem也可表达为:XCHGreg/mem,reg执行操作:regreg/mem实现内容(字或字节)的互换。CPU内部通用寄存器之间、内部通用寄存器与内存单元之间4、换码指令(或称查表转换指令)XLAT(累加器专用传送指令)指令格式:XLAT或XLATTable_Name执行操作:AL[BX+AL]其中,源操作数为寄存器相对寻址方式,目的操作数为寄存器寻址方式。Table_Name为字节表格的首地址(变量名),是为提高程序的可读性
5、而设置的。5、地址传送指令地址传送指令将存储单元的逻辑地址送至指定的寄存器中。(1)有效地址传送指令指令格式:LEAr16,mem;r16mem的有效地址(EA)指令功能:LEA指令将存储器操作数的有效地址传送到16位通用寄存器中。MOVBX,400HMOVSI,3CHLEABX,[BX+SI+0F62H];BX=139EH,存放的是存储单元的EALEASI,ARRAY;ARRAY为一变量名(2) 指针传送指令指令格式:LDSr16,mem;r16[mem],DS[mem+2],r16常指定为
6、SILESr16,mem;r16[mem],ES[mem+2],r16常指定为DI指令功能:将源操作数指定的4个相继字节送到由指令指定的寄存器和DS或ES寄存器中。上述两条指令完成了32位地址指针的传送。注意这里mem是一个双字类型的操作数(DWORD)。注意:① 以上三条指令指定的寄存器都不能使用段寄存器,且源操作数必须使用存储器寻址方式。② 这些指令都不影响标志位。6、标志寄存器传送(1)LAHF;loadAHfromflag指令功能:AHFLAGS的低字节(2) SAHF;store
7、AHinflags指令功能:FLAGS低字节AH(3) PUSHF;pushflagsontostack指令功能:SPSP-2;SS:SPFLAGS(4) POPF;popflagsoffstack指令功能:FLAGSSS:SP;SPSP+2通过该组指令,可直接修改标志位。算术运算指令加法指令减法指令乘法指令除法指令十进制调整指令1、加法减法指令减法指令:加法指令:(add)(addwithcarry)(increment)(subtract)(subtractwithbo
8、rrow)(decrement)(negate)(compare)注意:①DEC、INC、NEG为单操作数指令,其余均为双操作数指令;②参与运算的操作数可以是8位或16位的操作数,影响标志位。③对于双操作数指令,编程者必须认为两个操作数同为有符号数或无符号数;对于两个操作数同为有符号数和同为无符号数的加减运算可以采用同一套指令,运算结果的判断要根据不同的状态标志。对于有符号数:溢出标志位(OF)=1,表示运算结果