




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、有两类有两类:逻辑运算指令移位与循环指令类型类型指令指令指令功能指令功能表三位运算指令列表表三位运算指令列表逻辑运算AND d, s OR d, sXOR d, sNOT dTEST d, s 算术左移 CF 0算术右移 CF 逻辑左移 CF 0逻辑右移 CF0SAL d, count SAR d, countSHL d, countSHR d, count移位d d sd d sd d sd dd s,不送结果指令指令类型类型指令指令指令功能指令功能表三位运算指令列表表三位运算指令列表 ( 续续 )ROL d, countROR d, countRCR d, countRCL d, coun
2、t循环左移 CF 循环右移 CF 带进位循环左移 CF CF循环带进位循环右移 共有共有5条条:AND 按位逻辑与与OR 按位逻辑或或XOR 按位逻辑异或异或TEST 按位逻辑与与, 但不保存结果不保存结果NOT 按位取反取反 AND, OR和和 XOR指令指令 基本格式和功能指令格式: AND (OR / XOR / TEST) d, s执行的操作: AND (d) (d) OR (s) XOR AND, OR和和 XOR指令指令 基本格式和功能常见逻辑运算的规则如下列表格所示: 与(AND): 全全 1 才才 1,有,有 0 就就 0或(OR): 有有 1 就就 1,全,全 0 才才 0异
3、或(XOR):相同为相同为 0,相异为,相异为 1 1 0 1 0 0 0 1 0AND 1 1 1 1 0 0 1 0 OR 0 1 1 1 0 0 1 0XORAND, OR和和 XOR指令指令 说明寻址方式寻址方式: AND (OR, XOR, TEST ) reg/mem, reg/mem AND (OR, XOR, TEST ) reg/mem, data说明:说明:源S可以是通用寄存器、存储器或立即数;但d只能是通用寄存器或存储器,不能为立即数;而且d和s不能同时为存储器操作数。AND, OR和和 XOR指令指令 说明测试指令测试指令TEST不将结果送回d,它只影响F寄存器;这4条
4、指令均影响标志位影响标志位:SF、ZF、PF根据运算结果设置相应位;CF、OF总是置零;AF不确定。NOT指令指令 基本格式和功能指令格式:指令格式: NOT d寻址方式寻址方式: NOT reg/memNOT指令指令 功能&说明功能功能&说明:说明: 单操作数指令,对d进行按位取反(0变1,1变0)操作;d可以是通用寄存器或存储器操作数;NOT指令对标志寄存器各位均无影响无影响;小结:小结:逻辑运算指令都是按位进行按位进行逻辑运算的,可以对字节字节或字字进行逻辑运算;逻辑运算指令可用于组合组合、分离分离、屏蔽、测屏蔽、测试试或设置设置某些位。例例1:请分别写出实现下列要求的指令:请分别写出实
5、现下列要求的指令: 使AL中高4位清零,低4位不变; 使AL中低4位清零,高4位不变; 使AL中最高位置1,其他位不变; AL中低4位求反,其余各位不变。解:解: AND AL,0FH AND AL,0F0H OR AL,80H XOR AL,0FH例例2:请编制一程序段,将F寄存器中溢出位OF变反。解:程序如下:解:程序如下: PUSHF POP AX XOR AX,0800H PUSH AX POPF 例例3:将AL清零,至少有以下几种方法,它们有何不同? MOV AL,00H AND AL,00H XOR AL,AL共有以下共有以下8条条:SAL (shift arithmetic le
6、ft) 算术左移算术左移 SAR (shift arithmetic right) 算术右移算术右移SHL (shift logical left) 逻辑左移逻辑左移 SHR (shift logical right) 逻辑右移逻辑右移ROL (Rotate left) 循环左移循环左移 ROR (Rotate right) 循环右移循环右移 RCL (Rotate left through carry) 带进位循环左移带进位循环左移 RCR (Rotate right through carry)带进位循环右移带进位循环右移移位类指令的格式格式(详见表三) 移位指令移位指令 d, Count
7、移位类指令的寻址方式寻址方式移位指令移位指令 reg/mem, 1/CL移位指令执行的操作执行的操作 (参见表三)SHL , SAL和和 SHR (d)左(右)移Count位,移出的位进入CF, 移位造成的空位补 SAR (d) 最高位不变,(d)右移Count位,移出的位进入CF, 移位造成的空位用最高位值填补。 左右移位使乘,除乘,除2运算运算变得简单,算术右移可用于有符号数的除2运算。循环循环指令执行的操作执行的操作(详见表三) ROL 和和 ROR (小循环)(小循环) (d) 循环左(右)移Count位,每移1位,移出的位从另一端进入,同时进入CF。 RCL 和和 RCR (大循环)
8、(大循环) (d) 循环左(右)移Count位,每移1位, CF从另一端进入, 移出的位进入CF。说明:说明:各移位指令中的d可以是字或字节,可以是寄存器或存储器单元,但不能是立即数。 指令中的Count指明移位的位数,只能用两只能用两种形式之一:种形式之一:1 或或 CL带进位循环移位指令常用于多字节或多字的数据移位。影响标志位情况:影响标志位情况:移位指令根据移位结束后的结果修改CF、PF、ZF、SF和OF,而AF不确定;循环移位指令根据移位结束后结果仅修改CF和OF;如果移位/循环移位仅移一位,且移位前后操作数的最高位发生变化,那么OF置1,否则置0;如果移位/循环移位的位数大于1,则O
9、F不确定。例题例题例例1:在AX中有符号数不大的情况下,利用算术移位指令进行简单的(AX) 5 / 2 运算,可以用下述程序段: MOV DX,AX SAL AX,1 ;(AX)*2 SAL AX,1 ;(AX)*4 ADD AX,DX ;(AX)*5 SAR AX,1 ;(AX)*5/2例题例题 例例2:由(DX):(AX)构成的2个字数据要左移 2 位,写出实现此要求的指令序列。解:指令序列如下: SAL AX,1 RCL DX,1 SAL AX,1 RCL DX,1思考思考:用下列方法如何? MOV CL,2 SAL AX,CL RCL DX,CL例题例题例例3:将AX的高低8位换位,写
10、出指令序列。解:方法之一如下: MOV CL,08H ROL AX,CL方法二如下: MOV CL,AH MOV AH,AL MOV AL,CL例题例题 例例4:将BL的低4位与AL的低4位组成一个新的数据(BL低4位为新数据的高4位),放回AL中。解:方法之一如下: MOV CL,04H SAL BL,CL AND AL,0FH OR AL,BL通过这些指令,可以在程序中控制CPU的状态,指令可分为三类:n标志位操作指令n同步控制指令n其他处理器控制指令表四表四 处理器控制指令处理器控制指令类型类型指令格式指令格式指令功能指令功能标志位操作CLCSTCCMCCLDSTDCLISTICLC清除
11、进位标志 置CF=0进位标志置位 置CF=1进位标志取反 CF取反清除方向标志 置DF=0方向标志置位 置DF=1清除中断标志 置IF=0中断标志置位 置IF=1表四表四 处理器控制指令(续)处理器控制指令(续)类型类型指令格式指令格式指令功能指令功能同步控制等待WAITESCLOCK交权封锁总线其它HLTNOPCPU暂停执行程序执行一次空操作CLD, STD 清清/置置方向标志CLI, STI 清清/置置中断标志CLC, STC 清清/置置进位标志 CMC 进位标志取反取反NOP指令指令格式:格式: NOP 功能功能&说明:说明:使CPU执行一次空操作,不影响任何寄存器、存储单元和标志位。N
12、OP指令仅占据CPU的3个时钟周期,在软件延时程序中,可用NOP指令作少量延时调整。其它指令简介其它指令简介HLT 停机指令,等待中断,中断返回后向下继续执行。WAIT 等待指令,等待中断,中断返回后继续等待。ESC 换码指令,指令格式为: ESC data, mem 该指令把指定存储单元的内容送到数据总线。LOCK 是指令前缀,与其它指令配合使用,产生总线封锁信号,直至指令执行完毕。表五串操作指令表五串操作指令类别类别指令格式指令格式指令功能指令功能MOVS d, sMOVSB/MOVSW字节串/字串传送CMPS d, sCMPSB/CMPSW字节串/字串比较SCAS dSCASB/SCAS
13、W字节串/字串搜索(扫描)LODS sLODSB/LODSWSTOS dSTOSB/STOSW读(载入)字节串/字串写(存储)字节串/字串基本串操作指令表五串操作指令(续)表五串操作指令(续)类别类别指令格式指令格式指令功能指令功能REP无条件重复当相等/为零时重复当不等/不为零时重复重复前缀REPE / REPZREPNE /REPNZ串操作指令用于存储单元的成批数据处理,包括串传送、串加载、串存储、串比较、串扫描等指令。每一个串操作指令还会涉及以下问题:重复前缀类型后缀串处理方向段超越问题重复前缀专用于串操作,使用时加在串操作指令前面,能使串操作连续进行。分两种:无条件重复REP有条件重复
14、REPZ /REPE, REPNZ/REPNE REP 格式如下: REP 串操作指令串操作指令说明:无条件重复前缀,可用于任何串操作指令例如:REP MOVSB REP SCASW 等执行重复串操作时,每重复一次,(CX)自动减,一旦归零,则停止重复归零,则停止重复。注意,执行重复串操作之前应该为应该为 CX 赋初值赋初值。REPZ, REPNZ说明:与REP一样专用于串操作,格式相同但有附加条件,条件满足且(CX)不为零才重复。REPZ 的条件是:ZF=0REPNZ 的条件是:ZF0有条件重复前缀一般用于有比较含义的串操作,即CMPS 和 SCAS串操作指令一般会带有类型后缀,有两种:后缀
15、 B 表示字节串后缀 W 表示字串字节串操作:相关的变址寄存器改变量为,如果涉及累加器,则为AL。字串操作:相关的变址寄存器改变量为,如果涉及累加器,则为AX。串处理过程中,地址变化的方向取决于标志 DF 的设置DF =0时为地址增加方向,每执行一条串操作指令,相关变址寄存器的内容增加。DF =1时为地址减少加方向,每执行一条串操作指令,相关变址寄存器的内容减少。DF的缺省值为0。串操作指令的操作数一般可以缺省,缺省情形以 DS:SI 指向源串,以 ES:DI指向目的串。目的串的段址必须为ES,源串允许段超越。采用段超越时,操作数必须显式写明(格式1)。共有5条MOVS 串传送指令STOS 串
16、存储指令LODS 串加载指令CMPS 串比较指令SCAS 串扫描指令MOVS指令指令 格式&格式说明格式格式1: MOVS dest, src格式格式2: MOVSB 或或 MOVSW说明:说明:格式1用于需要段超越的时候,格式2是常用格式格式2中MOVSB一次传送一字节,MOVSW一次传送一个字。B和W称为类型后缀。MOVS指令指令 功能说明指令说明:指令执行前须让ES:DI 指向目的串,DS:SI指向源串。本指令将源串中的内容传送到目的串中。具体操作操作如下:第一步第一步:将源串中当前单元(字或字节字或字节)的内容传送到目的串当前单元(字或字节字或字节) ,即 (DI) (SI)MOVS指
17、令指令 功能说明指令说明:执行的操作:执行的操作: 第二步第二步:修改串指针(SI) (SI) 1 / 2 , (DI) (DI) 1 / 2加或减取决于串处理方向串处理方向,由标志DF决定1或2取决于串的类型类型,是字串还是字节串,由指令后缀W / B 决定MOVS指令指令 功能说明执行的操作:执行的操作:第三步第三步:如果指令使用了重复前缀,则计数器CX减1 (CX) (CX)-1第四步第四步:如有重复前缀,重复前三步,直至CX为0。MOVS指令不影响标志位 ,但受DF影响MOVS指令指令 例子例: MOVSB MOVSW REP MOVSB CMPS指令指令 格式格式格式1: CMPSd
18、est,src格式格式2: CMPSB 或或CMPSW说明:说明:串比较指令,一般用于比较两个字符串是否相等。格式2是常用格式。 CMPS指令指令 说明说明:执行的操作:操作:第一步:第一步:源串当前单元的内容与目的串当前单元内容比较(相减相减),即 (DI) -(SI),但不保存结果,结果反映在标志ZF第二步:第二步:修改串指针 第三步:第三步:计数器减1 ,若不为0,回到第一步 CMPS指令指令 说明说明:执行前受DF影响,执行后影响所有6个状态标志位(与减法指令相同) ,此指令一般要与REPZ或REPNZ相配合使用。CMPS指令指令 例子例例1:指令 REPZCMPS若相等则重复比较,不等时停止。用于找出不相等的数。例例2:指令 REPNZCMPS不相等则重复比较,用于找出相等的数。STOS指令指令 格式格式格式1: STOS dest格式格式2: STOSB 或或 STOSW说明:说明:串存储指令,累加器内容存入目的串,ES:DI指向目的串。ST
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度股东致行动协议:董事会席位调整与决策权分配
- 二零二五年度汽车充电桩场地租赁及维护服务合同
- 旅游景区服务质量提升策略手册
- 汽车配件销售及售后支持协议
- 企业级软件系统开发合作协议
- 水浒传经典人物宋江征文
- 租赁房屋补充协议
- 关于提高工作效率的研讨会纪要
- 文化创意产业发展规划策略
- 融资租赁资产转让协议
- DWI高信号常见疾病的鉴别诊断课件-2
- 2024年内蒙古中考地理生物试卷(含答案)
- 酸碱滴定分析与讨论实验报告
- 2024年邵阳职业技术学院单招职业适应性测试题库完美版
- 2024年湖南理工职业技术学院单招职业适应性测试题库必考题
- 中国风川剧戏曲京剧文化传统文化国粹世界戏剧日活动策划完整课件两篇
- (正式版)JTT 1495-2024 公路水运危险性较大工程安全专项施工方案审查规程
- 医院dip付费绩效考核制度
- 20G520-1-2钢吊车梁(6m-9m)2020年合订本
- 电梯维护保养规则(TSG T5002-2017)
- 义务教育数学课程标准(2022年版)解读与案例分析
评论
0/150
提交评论