欢迎来到天天文库
浏览记录
ID:43213561
大小:304.00 KB
页数:88页
时间:2019-10-03
《微型计算机原理与组成-第4章 指令系统与程序设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第4章 指令系统与程序设计4.1寻址方式4.2指令系统4.3汇编语言程序设计基础4.4汇编语言程序设计本章小结4.1寻址方式4.1.1指令格式一条指令的6个字段中,字段1是附加字段,字段2~字段6是基本字段。1.操作码字段OPcode2.寻址方式字段modr/m和s-i-b3.位移量字段disp4.立即数字段data5.前缀字段Prefix操作码字段是必要的,其他字段均可有可无。4.1.2寻址方式寻址方式是指令寻找操作数或操作数地址的方式。①操作数在指令中,即指令的操作数部分就是操作数本身。这种操作数叫立即操作数。②操作数包含在CPU的某
2、个内部寄存器中。这时指令的操作数是CPU内部寄存器的一个编码。③操作数在内存的数据区中。这时指令的操作数包含此操作数所在的内存地址。1.立即寻址方式2.寄存器寻址方式3.直接寻址方式4.寄存器间接寻址方式5.变址寻址方式6.基址寻址方式7.基址加变址寻址方式8.带有位移量的基址加变址寻址方式9.比例变址寻址方式10.基址加比例变址寻址方式11.带位移量的基址加比例变址寻址方式4.2指令系统4.2.2数据传送指令数据传送类指令是计算机中最基本、最常用、最重要的一类操作。它用来在寄存器与存储单元、寄存器与寄存器、累加器与I/O端口之间传送数据
3、、地址等信息,也可以将立即数传送到寄存器或存储单元中。1.通用数据传送指令⑴传送指令MOV指令格式:MOVOPRD1,OPRD2指令功能:将源操作数传送给目标操作数,即OPRD2→OPRD1。OPRD1和OPRD2可以是字节或字,但是必须等长。⑵堆栈操作指令PUSH/POP指令格式:PUSHOPRDPOPOPRD指令功能:进栈指令PUSH使SP-2→SP,然后将16位的源操作数压入堆栈,先高位后低位。源操作数可以是通用寄存器、段寄存器和存储器。⑶交换指令XCHG指令格式:XCHGOPRD1,OPRD2指令功能:将一个字节或一个字的源操作数
4、与目标操作数进行交换。⑷查表转换指令XLAT指令格式:XLATXLATOPRD;AL←[BX+AL]指令功能:完成一个字节的查表转换。它将数据段中偏移地址为BX与AL寄存器之和的存储单元的内容送入AL寄存器。2.地址传送指令⑴有效地址传送指令LEA指令格式:LEAOPRD1,OPRD2指令功能:将源操作数的有效地址送到目的操作数。具体指令形式:LEAreg16,mem;reg16←Addr(mem)⑵地址指针传送指令LDS/LES指令格式:LDSOPRD1,OPRD2LESOPRD1,OPRD2指令功能:这两条指令的功能类似,都是将源操作
5、数偏移地址决定的双字单元中的第一个字的内容传送到指令指定的16位通用寄存器,第二个字的内容传送给段寄存器DS或ES。3.标志字传送指令标志位传送指令用于对标志寄存器(FR)的保护和更新操作。指令的操作数由隐含方式给出。⑴标志字读写指令LAHF/SAHF指令格式:LAHFSAHFLAHF指令可将标志寄存器的低字节(含符号标志SF、零标志ZF、辅助进位标志AF、奇偶标志PF和进位标志CF)传送到AH寄存器中。这条指令不影响标志位。SAHF指令的功能与LAHF相反,将寄存器AH的内容传送到标志寄存器的低字节中。⑵标志进栈/出栈指令PUSHF/P
6、OPF指令格式:PUSHFPOPFPUSHF指令把标志寄存器的内容压入堆栈,同时堆栈指针SPSP-2。POPF指令将堆栈指针SP所指的一个字传送到标志寄存器中,同时堆栈指针SPSP+24.输入/输出数据传送指令IN/OUT在计算机中,输入/输出操作是由CPU利用输入、输出指令并通过累加器AL,AX进行的。输入指令完成由输入端口到CPU的信息传送,输出指令完成从CPU到输出端口的信息传送。指令格式:INOPRD1,OPRD2OUTOPRD1,OPRD2指令功能:在AL或AX寄存器与I/O端口之间数据传送。4.2.3算术运算指令算术运算指
7、令可完成加、减、乘、除运算以及在算术运算过程中进行进制及编码调整操作。1.加法指令⑴加法指令ADD指令格式:ADDOPRD1,OPRD2指令功能:将源操作数与目的操作数相加,结果存放于目的操作数。即OPRD1+OPRD2→OPRD1。⑵带进位加法指令ADC指令格式:ADCOPRD1,OPRD2指令功能:将源操作数与目的操作数以及进位标志位CF的值的相加,并将结果存放于目的操作数。即OPRD1+OPRD2+CF→OPRD1。⑶加1指令INC指令格式:INCOPRD指令功能:将指定操作数内容加1。INC指令不影响进位标志CF。2.减法指令减法
8、指令有SUB减法、SBB带借位的减法、DEC减1、NEG求补和CMP比较等指令。⑴减法指令SUB指令格式:SUBOPRD1,OPRD2指令功能:将目的操作数减去源操作数,结果存放于目的操作数。
此文档下载收益归作者所有