版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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 用途:两操作数相“或”,
16、结果送目标地址。一般用来对一个指定位置1。在不改变操作数的情况下使OF=CF=0 例如: OR AL, 02H ;指令实现对累加器中的D1位置1,返回,逻辑异或指令,指令格式: XOR OPRD1,OPRD2 用途:两操作数相“异或”,结果送目标地址。用来对某一寄存器清零,用于初始化寄存器。 例如:XOR AX, AX ; 使累加器AX清零。,返回,逻辑测试指令,指令格式: TEST OPRD1,OPRD2 用途:一般用来检测指定位是1还是0,而这个指定位往往对应一个物理量。 例如:TEST AL, 01 通过对ZF的判断来了解最低位是否为1。如果ZF=1,说明结果为0,即最低位为0;如果ZF
17、=0,说明结果不为0,即最低位不为0。,逻辑非指令,指令格式: NOT OPR ; (OPR) (!OPR) 操作:操作数按位取反再送回原地址 用途:常用来将某个数据取成反码,再加上1,便得到补码。指令中的操作数不能是立即数。指令的执行对标志位无影响 例:NOT BYTE PTRBX,返回,逻辑运算指令说明,五种逻辑运算指令中,NOT指令不允许使用立即数,其它四条指令除非源操作数是立即数,否则至少有一个操作数必须存放在寄存器中,另一操作数则可以用任意寻址方式。“非”运算指令要求操作数不能是立即数 NOT指令不影响标志位,其它四种指令将使CF和OF为0,AF位无定义,而SF,ZF和PF则根据运算
18、结果设置。,例题讲解,设( CH) 0111 1001 , TESTVAL 1110 0011. 下列操作分别执行时,各指令执行后(CH)=?,OR CH, TESTVAL,AND CH, TESTVAL,XORCH, TESTVAL,TESTCH, 0000 0100B,XORCH, 1111 1111B,OR(或)运算,TESTVAL,AND与运算,XOR异或运算,TESTVAL,TEST命令的使用,0111 1001,0000 0100,0000 0000,TEST,CH=0111 1001,CF=OF=0 SF=0 ZF=1,TEST 和 AND指令,设( CH) 10111101B,
19、 比较下面两指令的操作区别。,返回,移位指令,移位指令主要由以下两大类指令组成: 一、非循环移位指令 二、循环移位指令,返回,说明,非循环移位指令,此类指令主要实现对寄存器或内存单元中的8位或16位操作数进行移位。它分逻辑移位指令和算术移位指令,共四条。 一、算术左移指令SAL 二、逻辑左移指令SHL 三、算术右移指令SAR 四、逻辑右移指令SHR,返回,算术左移指令,指令格式: SAL OPR, CNT ; 指令功能: OPR可以是除立即数以外的任何寻址方式。移位次数由CNT决定,CNT可以是1或CL。注意如移位次数大于1,则可在该指令之前把移位次数置于CL寄存器中。,返回,逻辑左移指令,指令格式: SHL OPR, CNT ; 指令功能: 说明: (1)SHL指令和SAL指令功能相同,可实现有符号数和无符号数乘2,如果左移后,最高位和CF不同,则溢出标志OF为1。 (2)根据OF的值判断左移操作是否造成了溢出。,返回,算术右移指令,指令格式: SAR OPR, CNT ; 指令功能: 说明:右移时,最高位保持不变。 用途:用于带符号数除2。,返回,逻辑右移指令,指令格式: SHR OPR, CNR ; 指令功能: 说明:逻辑右移时,最高位补零
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2026学年河南省周口市川汇区八年级(下)期末数学试卷(含答案)
- 2026四川省放射影像研究所项目制科研助理招聘1人笔试题库及参考答案详解(培优A卷)
- 2026上海市就业援藏事业单位专项招聘9人模拟试卷附参考答案详解AB卷
- 2026国家电投集团中国电力招聘8人备考题库(培优)附答案详解
- 2026湖北襄阳市保康民安医院招聘2人备考题库(培优)附答案详解
- 2026福建泉州市石狮市锦尚镇中心幼儿园招聘编外合同教师模拟试卷及答案详解【必刷】
- 2026湖北襄阳恒泰康精神病专科医院护士招聘20人备考题库及完整答案详解一套
- 2026广西河池市罗城仫佬族自治县市场监督管理局招聘就业见习人员6人模拟试卷含答案详解(满分必刷)
- 2026北京化工大学招聘模拟试卷附完整答案详解(有一套)
- 2026海南白沙黎族自治县招聘第二批中学教师9人(第1号)考前冲刺试卷含完整答案详解【名校卷】
- 2026年新教材八年级上册历史全册必背知识点考点提纲
- 2026年湖北专升本汉语言文学专业(现代汉语中国古代文学)题库附答案
- 2026年四川省拟任县处级领导干部理论(任职资格考试)全真模拟试题及答案
- SD22推土机使用说明书完整版
- 2026潍坊第二人民医院招聘(3人)建设笔试备考试题及答案解析
- 湖北省荆州市松滋市2025-2026学年上学期八年级物理期末试题(含答案)
- 社区食堂规范运营制度范本
- 2026年深圳市离婚协议书规范范本
- GB/T 21873-2025橡胶密封件给、排水管及污水管道用接口密封圈材料规范
- 神经内科疾病康复与治疗
- 公共资源交易数据的价值与应用分析
评论
0/150
提交评论