微机原理-第2章-4指令(逻辑串条件等)课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《微机原理-第2章-4指令(逻辑串条件等)课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 _4 指令 逻辑 条件 课件
- 资源描述:
-
1、13 3、逻辑运算与移位指令、逻辑运算与移位指令 逻辑与逻辑与/或或/异或异或/测试指令测试指令 逻辑非指令逻辑非指令 算术逻辑左移指令算术逻辑左移指令 算术逻辑右移指令算术逻辑右移指令 循环移位指令循环移位指令 双精度左移右移指令双精度左移右移指令第二章第二章指令系统指令系统整数指令整数指令逻辑逻辑/移位移位提要提要2第二章第二章指令系统指令系统整数指令整数指令逻辑逻辑/移位移位逻辑运算逻辑运算_1_1 逻辑逻辑与与/或或/异或异或/测试指令测试指令 AND/OR/XOR/TESTAND/OR/XOR/TEST 指令格式:指令格式:AND/OR/XOR/TEST DSTAND/OR/XOR/
2、TEST DST,SRCSRC regreg,reg/mem/immreg/mem/imm memmem,reg/immreg/immOF DF IF TF SF ZF AF PF CFOF DF IF TF SF ZF AF PF CF0 0 X X X X U U X X 0 0注意注意:操作数:操作数DSTDST、SRCSRC的宽度必须相等。的宽度必须相等。四条指令对标志位的影响相同:四条指令对标志位的影响相同:功能:功能:AND/OR/XORAND/OR/XOR分别对分别对DSTDST和和SRCSRC按位按位进行逻辑进行逻辑 与与/或或/异或异或操作,结果存入操作,结果存入DSTDST
3、中。中。即:即:DSTDST(DST)(DST)与与/或或/异或异或(SRC)(SRC)TESTTEST只对只对DSTDST和和SRCSRC按位进行按位进行逻辑与逻辑与操作,操作,不存结果。不存结果。3例例1 1:将:将ASCIIASCII码转换为未组合码转换为未组合BCDBCD码。码。MOV ALMOV AL,6 6 ;6 6的的ASCIIASCII码送码送ALAL,(AL)=36H(AL)=36H AND ALAND AL,0FH0FH ;用用0 0屏蔽高屏蔽高4 4位位,用,用1 1保留低保留低4 4位位第二章第二章指令系统指令系统整数指令整数指令逻辑逻辑/移位移位逻辑运算逻辑运算_2_
4、2例例5 5:TEST ALTEST AL,80H80H ;仅测试;仅测试(AL)(AL)的最高位的最高位 JZ BUSY JZ BUSY ;最高位为;最高位为0 0,则转向,则转向BUSYBUSY例例4 4:XOR CXXOR CX,CXCX ;这条指令结果如何?这条指令结果如何?例例3 3:对寄存器的某些位求反,某些位保持不变。:对寄存器的某些位求反,某些位保持不变。MOV CLMOV CL,0F0H0F0H XOR ALXOR AL,CL CL;用;用1 1对高对高4 4位求反,用位求反,用0 0保留低保留低4 4位位例例2 2:将未组合:将未组合BCDBCD码转换为码转换为ASCIIA
5、SCII码。码。MOV ALMOV AL,9 9 ;(AL)=09H(AL)=09H OR ALOR AL,30H30H ;用用1 1强行置位强行置位,(AL)=39H(AL)=39H4 逻辑非指令逻辑非指令 NOTNOT指令格式:指令格式:NOT DSTNOT DST reg reg mem mem功能:功能:对对DSTDST中每一位都求反中每一位都求反(0(0变变1 1,1 1变变0)0)。不影响标志位。不影响标志位。举例:举例:NOT BX NOT BX ;设执行前;设执行前 (BX)=5555H(BX)=5555H ;则执行后;则执行后 (BX)=AAAAH(BX)=AAAAH第二章第
6、二章指令系统指令系统整数指令整数指令逻辑逻辑/移位移位逻辑运算逻辑运算_3_35 算术算术/逻辑左移指令逻辑左移指令 SAL/SHLSAL/SHL 指令格式:指令格式:SAL/SHL DSTSAL/SHL DST,移位次数移位次数 reg/memreg/mem,imm8/CLimm8/CL第二章第二章指令系统指令系统整数指令整数指令逻辑逻辑/移位移位左移左移_1_1功能:功能:都是将都是将DSTDST的内容向左移位,移动次数由的内容向左移位,移动次数由 imm8/CLimm8/CL决定。每左移一位,将最高有效决定。每左移一位,将最高有效 位位MSBMSB移进移进CFCF,在最低有效位,在最低有
7、效位LSBLSB补。补。6说明:说明:影响标志位:影响标志位:OFOF、SFSF、ZFZF、PFPF、CFCF。规定规定8038680386以上移位次数不超过以上移位次数不超过3131;80868086用立用立 即数时只能是即数时只能是1 1,用,用CLCL时最多可移位时最多可移位255255次。次。移位次数为时,若移位后进位标志移位次数为时,若移位后进位标志CFCF与结果与结果 的最高位相等,则的最高位相等,则OF=0OF=0,否则,否则OF=1OF=1。第二章第二章指令系统指令系统整数指令整数指令逻辑逻辑/移位移位左移左移_2_2举例:举例:将将AXAX中的无符号数乘。中的无符号数乘。MO
8、V AXMOV AX,12H 12H MOV CL MOV CL,3 3 SAL AXSAL AX,CLCL ;左移三次,相当于;左移三次,相当于 ;AXAX(AX)(AX)8=90H8=90H7 算术算术/逻辑右移指令逻辑右移指令 SAR/SHRSAR/SHR 指令格式:指令格式:SAR/SHR DSTSAR/SHR DST,移位次数移位次数 reg/memreg/mem,imm8/CLimm8/CL 功能:功能:SARSAR是算术右移指令,对有符号数右移;是算术右移指令,对有符号数右移;SHRSHR是逻辑右移指令,对无符号数右移。是逻辑右移指令,对无符号数右移。都是将都是将DSTDST的内
9、容向右移位,移动次数由的内容向右移位,移动次数由imm8/CLimm8/CL决定。决定。第二章第二章指令系统指令系统整数指令整数指令逻辑逻辑/移位移位右移右移_1_1算术右移算术右移(SAR)(SAR)(最高位符号位最高位符号位扩展扩展)逻辑右移逻辑右移(SHR)(SHR)8说明:说明:1 1、影响标志位:、影响标志位:OFOF、SFSF、ZFZF、PFPF、CFCF。2 2、移位次数的规定与、移位次数的规定与SAL/SHLSAL/SHL相同。相同。3 3、移位次数为时,对、移位次数为时,对SARSAR指令,将指令,将OFOF置置0 0;对对SHRSHR指令,将指令,将OFOF置成与原置成与原
10、DSTDST最高有效最高有效 位位MSBMSB相同的值。相同的值。右移指令常用于实现除以右移指令常用于实现除以2 2n n的操作的操作第二章第二章指令系统指令系统整数指令整数指令逻辑逻辑/移位移位右移右移_2_2例如:例如:将将AXAX中的有符号数除以中的有符号数除以16(=216(=24 4)。MOV AXMOV AX,-1024-1024;(AX)=FC00H(AX)=FC00H MOV CLMOV CL,4 4 SAR AXSAR AX,CL CL ;(AX)=FFC0H=-64(AX)=FFC0H=-649 循环移位指令循环移位指令 ROL/ROR/RCL/RCRROL/ROR/RCL
11、/RCR指令格式:指令格式:ROL/ROR/RCL/RCRROL/ROR/RCL/RCRDST DST,移位次数移位次数 reg/memreg/mem ,imm8/CLimm8/CL第二章第二章指令系统指令系统整数指令整数指令逻辑逻辑/移位移位循环移位循环移位_1_1说明:说明:移位次数由移位次数由imm8/CLimm8/CL决定。决定。四条指令影响标志位:四条指令影响标志位:OFOF、SFSF、ZFZF、PFPF、CFCF。RCLRCL和和RCRRCR则是将标志位则是将标志位CFCF与与DSTDST连接在一起连接在一起进行循环左移和循环右移。进行循环左移和循环右移。功能:功能:ROLROL和
12、和RORROR分别为左环移和右环移指令,对分别为左环移和右环移指令,对 DSTDST进行循环左移和循环右移。进行循环左移和循环右移。10第二章第二章指令系统指令系统整数指令整数指令逻辑逻辑/移位移位循环移位循环移位_2_2循环左移循环左移 ROLROL循环循环右右移移 RORROR带进位带进位循环循环左移左移 RCLRCL带进位带进位循环循环右右移移 RCRRCR11第二章第二章指令系统指令系统整数指令整数指令逻辑逻辑/移位移位循环移位循环移位_3_3举例:举例:编写程序段,将寄存器编写程序段,将寄存器ALAL中的内容顺序颠倒,中的内容顺序颠倒,即将即将ALAL7 7ALAL0 0变为变为AL
13、AL0 0ALAL7 7。ROLROLRCRRCR MOV BLMOV BL,AL AL;BLBL(AL)AL)MOV CL MOV CL,8 8 ;循环次数为;循环次数为8 8AGAINAGAIN:ROL BLROL BL,1 1 ;(BL)(BL)依次左移,最高位进入依次左移,最高位进入CFCF RCR ALRCR AL,1 1 ;(AL)(AL)依次右移,依次右移,CFCF填充最高位填充最高位 LOOP AGAINLOOP AGAIN12 双精度左移双精度左移/右移指令右移指令 SHLD/SHRDSHLD/SHRD指令格式:指令格式:SHLD/SHRD DSTSHLD/SHRD DST,
14、SRCSRC,移位次数移位次数 reg16/mem16reg16/mem16,reg16reg16,imm8/CLimm8/CL reg32/mem32 reg32/mem32,reg32reg32,imm8/CLimm8/CL第二章第二章指令系统指令系统整数指令整数指令逻辑逻辑/移位移位双精度移位双精度移位31 031 0SHLDSHLD:CF DST(CF DST(目的目的)SRC()SRC(源源)31 031 031 031 0SHRDSHRD:CF SRC(CF SRC(源源)DST()DST(目的目的)31 031 0功能:功能:将将DSTDST和和SRCSRC连成双精度值连成双精度
15、值(32(32位或位或6464位位)向左或右向左或右 移,移动次数由移,移动次数由imm8/CLimm8/CL决定。决定。SRCSRC内容逐位移入内容逐位移入DSTDST,且自己保持不变。且自己保持不变。CFCF中的值为中的值为DSTDST移出的最后一位。移出的最后一位。影响标志位:影响标志位:SFSF、ZFZF、PFPF、CFCF。这是。这是8038680386新增指令。新增指令。13 串传送指令串传送指令 串装入指令串装入指令 串存储指令串存储指令 串扫描指令串扫描指令 串比较指令串比较指令 串输入指令串输入指令 串输出指令串输出指令 重复前缀重复前缀 第二章第二章指令系统指令系统整数指令
16、整数指令串操作串操作提要提要4 4、串操作指令、串操作指令14串操作的有关约定:串操作的有关约定:DS:DS:(E)SI(E)SI为源串,为源串,ES:(E)DIES:(E)DI为目的串,指令中不必为目的串,指令中不必 指明操作数。指明操作数。源串的源串的DSDS可用段前缀改变,但目的串的可用段前缀改变,但目的串的ESES不能超越。不能超越。源串指针源串指针(E)SI(E)SI和目的串指针和目的串指针(E)DI(E)DI在每次操作后,在每次操作后,将根据将根据DFDF的值来自动增量的值来自动增量(DF=0)(DF=0)或自动减量或自动减量(DF=1)(DF=1),以指向下一项,增以指向下一项,
17、增/减量大小由操作数宽度决定。减量大小由操作数宽度决定。通常串操作指令前可加重复前缀,此时必须用通常串操作指令前可加重复前缀,此时必须用(E)CX(E)CX 作次数计数器,操作一次,作次数计数器,操作一次,(E)CX(E)CX值减值减1 1,直至减为,直至减为0 0,结束。结束。只有串扫描、串比较指令影响标志位。只有串扫描、串比较指令影响标志位。第二章第二章指令系统指令系统整数指令整数指令串操作串操作约定约定15 串传送指令串传送指令 MOVS/MOVSB/MOVSW/MOVSDMOVS/MOVSB/MOVSW/MOVSD指令格式:指令格式:MOVS MOVS 目的串,源串目的串,源串 ;由串
18、数据的宽度决定由串数据的宽度决定 memmem ,memmem ;字节字节/字字/双字串操作双字串操作 MOVSB MOVSB ;字节串传送字节串传送 MOVSW MOVSW ;字串传送字串传送 MOVSD MOVSD ;双字串传送双字串传送第二章第二章指令系统指令系统整数指令整数指令串操作串操作串传送串传送_1_1操作:操作:ES:(E)DIES:(E)DI(DS:(E)SI)(DS:(E)SI);传送;传送 (E)SI(E)SI(E)(E)SI)SI)1/2/4 1/2/4 ;修改源指针;修改源指针 (E)DI(E)DI(E)(E)DI)DI)1/2/4 1/2/4 ;修改目的指针;修改目
19、的指针功能:功能:将将DS:(E)SIDS:(E)SI指定的源串中的一个字节指定的源串中的一个字节/字字/双字传送到双字传送到ES:(E)DIES:(E)DI指定的目的串,并自动指定的目的串,并自动 修改指针。可加重复前缀。修改指针。可加重复前缀。16第二章第二章指令系统指令系统整数指令整数指令串操作串操作串传送串传送_2_2举例:举例:将数据段中自将数据段中自FIRSTFIRST开始的开始的100100个字符数据个字符数据 复制到附加段以复制到附加段以SECONDSECOND开始的数据区中,开始的数据区中,用基本传送指令实现。用基本传送指令实现。程序段如下:程序段如下:LEA SILEA S
20、I,FIRST FIRST ;置源串有效地址;置源串有效地址 LEA DILEA DI,SECOND SECOND;置目的串有效地址;置目的串有效地址 MOV CXMOV CX,100 100 ;设置计数初值;设置计数初值 CLD CLD ;DF=0DF=0,增量模式,增量模式 DONEDONE:MOVSBMOVSB ;LOOP DONELOOP DONE ;等效于:等效于:REP MOVSBREP MOVSB17第二章第二章指令系统指令系统整数指令整数指令串操作串操作串传送串传送_3_3串传送举例示意图串传送举例示意图数据段数据段(源串源串)DS:SIDS:SI FIRST FIRSTES:
21、DIES:DI SECONDSECONDAABBCCDDEE附加附加段段(目的串目的串)存储器存储器18 串装入指令串装入指令 LODS/LODSB/LODSW/LODSDLODS/LODSB/LODSW/LODSD 指令格式:指令格式:LODS LODS 源串源串 ;由串数据的宽度决定由串数据的宽度决定 memmem ;字节字节/字字/双字串操作双字串操作 LODSB/LODSW/LODSD LODSB/LODSW/LODSD;无显式操作数,分别对应无显式操作数,分别对应 字节字节/字字/双字装入双字装入第二章第二章指令系统指令系统整数指令整数指令串操作串操作串装入串装入操作:操作:AL/A
22、X/EAXAL/AX/EAX(DS:(E)SI)(DS:(E)SI);装入一个数据;装入一个数据 (E)SI(E)SI(E)(E)SI)SI)1/2/4 1/2/4 ;修改源指针;修改源指针功能:功能:将将DS:(E)SIDS:(E)SI指定的源串中的一个字节指定的源串中的一个字节/字字/双字装入双字装入累加器累加器中,并自动修改指针。中,并自动修改指针。该指令前一般不加重复前缀。该指令前一般不加重复前缀。19 串存储指令串存储指令 STOS/STOSB/STOSW/STOSDSTOS/STOSB/STOSW/STOSD 指令格式:指令格式:STOS STOS 目的串目的串 ;由串数据的宽度决
23、定由串数据的宽度决定 memmem ;字节字节/字字/双字串操作双字串操作 STOSB/STOSW/STOSD STOSB/STOSW/STOSD;无显式操作数,分别无显式操作数,分别 对应字节对应字节/字字/双字存储双字存储第二章第二章指令系统指令系统整数指令整数指令串操作串操作串存储串存储这两条指令合用可实现这两条指令合用可实现MOVSWMOVSW的功能吗?的功能吗?请问:请问:LODSWLODSW STOSW STOSW操作:操作:ES:(E)DIES:(E)DI(AL/AX/EAX)AL/AX/EAX);存储数据;存储数据 (E)DI(E)DI(E)(E)DI)DI)1/2/4 1/2
24、/4 ;修改目的指针;修改目的指针功能:功能:将将累加器累加器的内容存储到的内容存储到ES:(E)DIES:(E)DI指定的目的指定的目的 串中,自动修改指针。该指令前可加重复前缀。串中,自动修改指针。该指令前可加重复前缀。20 串扫描指令串扫描指令 SCAS/SCASB/SCASW/SCASDSCAS/SCASB/SCASW/SCASD 指令格式:指令格式:SCAS SCAS 目的串目的串 ;由串数据的宽度决定由串数据的宽度决定 memmem ;字节字节/字字/双字串操作双字串操作 SCASB/SCASW/SCASD SCASB/SCASW/SCASD;无显式操作数,分别对无显式操作数,分别
25、对 应字节应字节/字字/双字串扫描双字串扫描第二章第二章指令系统指令系统整数指令整数指令串操作串操作串扫描串扫描_1_1该指令用于查找串数据中的关键字很方便。该指令用于查找串数据中的关键字很方便。这条指令前常加重复前缀,后跟条件转移指令。这条指令前常加重复前缀,后跟条件转移指令。功能:功能:用用累加器累加器中的内容减去中的内容减去ES:(E)DIES:(E)DI指定的目的指定的目的 串元素的内容,仅改变标志位,不改变二者的内串元素的内容,仅改变标志位,不改变二者的内 容,并自动修改指针。容,并自动修改指针。其实质是在扫描串中寻找其实质是在扫描串中寻找 与累加器中的内容相同者,有则将标志与累加器
展开阅读全文