微机原理课件1第05次课第03章2章节

上传人:E**** 文档编号:91485692 上传时间:2019-06-28 格式:PPT 页数:63 大小:344.50KB
返回 下载 相关 举报
微机原理课件1第05次课第03章2章节_第1页
第1页 / 共63页
微机原理课件1第05次课第03章2章节_第2页
第2页 / 共63页
微机原理课件1第05次课第03章2章节_第3页
第3页 / 共63页
微机原理课件1第05次课第03章2章节_第4页
第4页 / 共63页
微机原理课件1第05次课第03章2章节_第5页
第5页 / 共63页
点击查看更多>>
资源描述

《微机原理课件1第05次课第03章2章节》由会员分享,可在线阅读,更多相关《微机原理课件1第05次课第03章2章节(63页珍藏版)》请在金锄头文库上搜索。

1、查表指令例,数据段中存放有一 张ASCII码转换表, 设首地址为2000H, 现欲查出表中第11 个代码的ASCII码 (设DS=4000H),如下指令实现: MOV BX,2000H MOV AL,0BH XALT 执行后得到AL值?,查表指令例,可用如下指令实现: MOV BX,2000H ;(BX)表首地址 MOV AL,0BH ;(AL)序号 XALT ; 查表转换 执行后得到:(AL)=42H,8086指令系统,传送类指令 数据操作类指令 串操作指令 控制类指令,本章要求,数据操作类指令,此类指令主要包括以下三种: 一、算术运算类指令 二、逻辑运算指令 三、移位指令 四、小结,返 回

2、,算术运算类指令,8086/8088指令系统中,具有完备的加、减、乘、除算术运算指令,可处理不带符号或带符号的8/16位二进制整数,以及不带符号的装配型/拆开型十进制整数。 一、加法指令 二、减法指令 三、乘法指令 四、除法指令 五、BCD码运算指令,返 回,算术运算指令的执行大多对状态标志位会产生影响,加 法 指 令,加法指令有以下三条: 一、不带进位位的加法指令ADD 二、带进位位的加法指令ADC 三、增量指令INC 指令说明,返回,不带进位位的加法指令,指令格式:ADD DST, SRC ; (DST) (DST)+(SRC) 指令功能:用来执行2个字或2个字节的相加操作,结果放在原来存

3、放的目的操作数的地方。 例如: ADD AL, 50H ; AL和50H相加,结果放在AL中 ADD AX, BX+2000H ; BX+2000H和BX+2001H所指 ;的两单元的内容和AX的内容 ;相加,结果放在AX中。,返 回,示例,注意:ADD指令的执行对全部6个状态标志位都产生影响,带进位位的加法指令,指令格式: ADC DST, SRC ;(DST) (DST)+(SRC)+CF 指令功能: 指令格式、对操作数的要求、对标志位的影响与ADD指令完全一样,指令执行时,将进位标志CF的值加在和中。 ADC指令多用于多字节数相加,使用前要先将CF清零。,示例,返回,ADC和ADD指令示

4、例,例:有两个四字节的无符号数相加,这两个数分别放在2000H和3000H开始的存储单元中,低位在前,高位在后,和放在2000H开始的存储单元中: MOV SI, 2000H; MOV AX, SI; MOV DI, 3000H; ADD AX, DI; MOV SI, AX; MOV AX, SI+2; ADC AX, DI+2; MOV SI+2, AX;,ADD指令例,例题: MOV AL,78H ADD AL,99H 指令执行后6个状态标志位的状态,标志位状态: CF= SF= AF= ZF= PF= OF=,返回,增 量 指 令,指令格式:INC OPR ; (OPR) (OPR)+

5、1 指令功能:只有一个操作数,操作数内容加1。这条指令一般用在循环程序中修改地址指针和循环次数,但该指令不影响进位标志CF的状态。 例如: INC AL ; 将AL中的内容加 INC CX; 将CX中的内容加,返回,不能是段寄存器或立即数,加 法 指 令说 明,在ADD、ADC、INC指令中,除INC指令不影响CF标志位外,它们都影响状态标志位(AF,OF,PF,SF,ZF,CF),其中主要是OF,SF,ZF,CF四种标志位。 ADD、ADC、INC这三条加法指令都可以完成字或字节运算。,返回,减 法 指 令,减法指令主要有以下五条: 一、不带借位的减法指令SUB 二、带借位的减法指令SBB

6、三、减量指令DEC 四、取补指令NEG 五、比较指令CMP,指令说明,返回,不带借位的减法指令,指令格式:SUB DST, SRC ; (DST) (DST)-(SRC) 指令功能:完成2个字或2个字节的相减操作。 例如: SUB BX,CX ;将BX中的内容减去CX中的内 ;容,结果在BX中 SUB BP+2, CL ;将SS段的BP+2所指的单元 ;中的值减去CL中的值,结 ;果放在BP+2所指的单元中,返回,对标志位的影响与ADD指令同,带借位的减法指令,指令格式: SBB DST, SRC; (DST) (DST)-(SRC)-CF 指令功能: 形式和功能同SUB,指令执行减法运算时,

7、还要减去CF的值。 例如: SBB AX, 2030H ; 将AX的内容减去立即数 ;2030H,并减去进位位CF ;的值,返回,减 量 指 令,指令格式: DEC OPR ; (OPR) (OPR-1) 指令功能: 只有一个操作数,执行时,将操作数的值减1,再将结果送回操作数。指令对操作数的要求与INC相同,常用于在程序中修改计数值 例如: DEC AX ;将AX的内容减1,再送回AX中 DEC BL ;将BL的内容减1,再将结果送回BL中,取 补 指 令,指令格式:* NEG OPR ; (OPR) 0-(OPR) 或 (OPR) 0FFFFH-(OPR)+1 指令功能:对指令中给定的操作

8、数取补,再将结果送回操作数。 例如: NEG AL ; 将AL中的数取补,送回AL NEG CX ; 将CX中的内容取补,送回CX,返回,取 补 指 令 说 明,当操作数的值为-128(80H)或-32768(8000H),求补后结果没有变化。 NEG指令影响标志位:AF,OF,PF,SF,ZF,CF,此指令执行时,总是使CF=1,只有操作数为0时,CF=0,因为是0减操作数之故。,返回,比 较 指 令,指令格式: CMP OPR1, OPR2 ; (OPR1)-(OPR2) 指令功能:比较指令CMP也是执行两个数相减操作,但不送回相减的结果,只是影响标志位。可作为条件转移指令转移的条件。指令

9、对操作数的要求及对标志位的影响同SUB指令。 例如: CMP AX, 2000H ; 将AX的内容和2000H相比较,结 果影响标志位。,返回,表,比 较 指 令,表 CMP指令执行后标志位的状态,目的的操作数与源操作数的关系,CF ZF SF OF,带符号位 的操作数,无符号位的操作数,0 1 0 0, 0 1 0, 0 0 1, 0 0 0, 0 1 1,0 1 0 0,1 0 ,0 0 ,CMP指令,两个无符号数的比较: CMP AX,BX 若 AX BX CF=0 若 AX BX OF和SF状态不同 AX BX,减 法 指 令 说 明,五条减法指令中,除DEC指令不影响CF标志位外,它

10、们都影响状态标志位。 五条减法指令都可以完成字或字节运算。,返回,乘 法 指 令,乘法指令采用隐含寻址,隐含的是存放被乘数的累加器AL或AX及存放结果的AX,DX;将DX寄存器看成是AX寄存器的扩展,当得到16位乘积时,结果放在AX中;当得到32位乘积时,结果放在DX和AX两个寄存器中,DX为乘积的高16位,AX为乘积的低16位。 若运算结果的高位全为0或1,表示其为无效数据,OF=CF=0 一、无符号的乘法指令MUL 二、有符号的乘法指令IMUL,返回,无符号的乘法指令,指令格式: MUL SRC ; 字节操作:(AX) (AL)*(SRC) 字操作:(DX,AX) (AX)*(SRC) 例

11、如: MUL BL ; AX AL*BL MUL CX ; DX+AX AX*CX,注意:SRC不能是立即数,无符号数乘法指令例,MUL BYTE PTRBX,BX,XXH,AL XXH,AX,返回,有符号的乘法指令,指令格式: IMUL SRC ; 字节操作:(AX) (AL)*(SRC) 字操作:(DX,AX) (AX)*(SRC) 指令说明: 有符号乘法指令IMUL,它在形式上与MUL类似,只是要求两个乘数必须均为有符号数。并且,两个乘法指令影响标志位CF和OF,其余四个标志位无意义。,IMUL指令例,设:AL=FEH,CL=11H,求AL与CL的乘积。 若为无符号数,则 MUL CL

12、结果:AX=10DEH 若将两操作数看作有符号数,则: IMUL CL 指令执行后:AX=FFDEH=-34。 IMUL指令将OPRD视为带符号数,运算时若操作数为负数,要先将操作数求补码,运算后再将结果求补。,返回,除法指令,执行除法指令时,规定除数必须为被除数的一半字长。 除法指令相关指令主要有以下四条: 一、 无符号的除法指令DIV 二、 有符号的除法指令IDIV 三、 字节转换指令CBW 四、 字转换指令CWD,返回,小结,除法指令,无符号除法指令 DIV OPRD 有符号除法指令 IDIV OPRD,若OPRD是字节数,则执行AX/OPRD 若OPRD是双字节数,则执行 DXAX/O

13、PRD 注意:指令是隐含寻址方式,要求被除数是除数的双倍字长,AL=商 AH=余数,AX=商 DX=余数,返回,无符号的除法指令,指令格式: DIV SRC ; 指令功能:实现两个操作数除法运算。 字节操作时,16位被除数在AX中,8位除数为源操作数,8位商在AL中,8位余数在AH中。表示为: (AL) (AX)/(SRC)的商;(AH) (AX)/(SRC)的余数 字操作时,32位被除数在DX,AX中,其中DX存高16位,AX中存低16位,16位除数为源操作数,16位商在AX中,16位余数在DX中,表示为: (AX) (DX, AX)/(SRC)的商; (AX) (DX, AX)/(SRC)

14、的余数,返回,有符号的除法指令,指令格式: IDIV SRC; 指令功能: 功能同无符号除法运算指令。但操作数必须是带符号数。商和余数也为带符号数,且和被除数符号相同。,乘法和除法小结,乘法操作小结,除法操作小结,返回,字节转换指令,指令格式: CBW 指令功能: 将AL寄存器中的符号位扩展到AH中,即当AL=80H时,执行CBW指令后,AH=FFH。 指令说明: 当两字节相除时,先执行CBW指令,产生一个双倍长度的被除数。该指令不影响标志位。,返回,字转换指令,指令格式: CWD 指令功能: 将AX寄存器中的符号位扩展到DX中,即当AX=8000H时,执行CWD指令后,DX=FFFFH。 指

15、令说明: 当两字相除时,先执行CWD指令,产生一个双倍长度的被除数。该指令不影响标志位。,返回,指令小结二,逻辑运算类指令,逻辑运算指令主要由以下几部分组成: 一、逻辑与指令AND 二、逻辑或指令OR 三、逻辑异或指令XOR 四、逻辑测试指令TEST 五、逻辑非指令NOT,返回,说明,逻辑与指令,指令格式: AND OPRD1,OPRD2 用途: 两操作数相“与”,结果送OPRD1,一般用来对某些位清零,其它位不变,在操作数不变的情况下使CF和OF清零 例如: AND AL, 0FH ;指令实现对高4位清零。,返回,逻辑或指令,指令格式: OR OPRD1,OPRD2 用途:两操作数相“或”,结果送目标地址。一般用来对一个指定位置1。在不改变操作数的情况下使OF=CF=0 例如: OR AL, 02H ;指令实现对累加器中的D1位置1,返回,逻辑异或指令,指令格式: XOR OPRD1,OPRD2 用途:两操作数相“异或”,结果送目标地址。用来对某一寄存器清零,用于初始化寄存器。 例如:XOR AX, AX ; 使累加器AX清零。,返回,逻辑测试指令,指令格式: TEST OPRD1,OPRD2 用途:一般用来检测指定位是1还是0,而这个指定位

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号