书签 分享 收藏 举报 版权申诉 / 64
上传文档赚钱

类型微机原理-第2章-4指令(逻辑串条件等)课件.ppt

  • 上传人(卖家):晟晟文业
  • 文档编号:4295411
  • 上传时间:2022-11-26
  • 格式:PPT
  • 页数:64
  • 大小:650KB
  • 【下载声明】
    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指定的目的指定的目的 串元素的内容,仅改变标志位,不改变二者的内串元素的内容,仅改变标志位,不改变二者的内 容,并自动修改指针。容,并自动修改指针。其实质是在扫描串中寻找其实质是在扫描串中寻找 与累加器中的内容相同者,有则将标志与累加器

    26、中的内容相同者,有则将标志ZFZF置置1 1。21举例:举例:通过加重复前缀,在一个字符串中搜索通过加重复前缀,在一个字符串中搜索 关键字关键字*。程序段如下:程序段如下:LEA EDI LEA EDI,STRING STRING;EDIEDI指向字符串首元素指向字符串首元素 MOV ECX MOV ECX,LENGTH LENGTH;串长度送;串长度送ECXECX CLD CLD ;DFDF清零,增量操作清零,增量操作 MOV AL MOV AL,*REPNE SCASBREPNE SCASB ;不相等则重复扫描;不相等则重复扫描 JE MATCH JE MATCH ;ZF=1ZF=1,找到

    27、,找到 ;ZF=0ZF=0,ECX=0ECX=0,没有找到,没有找到第二章第二章指令系统指令系统整数指令整数指令串操作串操作串扫描串扫描_2_222 串比较指令串比较指令 CMPS/CMPSB/CMPSW/CMPSDCMPS/CMPSB/CMPSW/CMPSD指令格式:指令格式:CMPS CMPS 目的串,源串目的串,源串 ;由串数据的宽度决定;由串数据的宽度决定 memmem ,memmem ;字节字节/字字/双字串操作双字串操作 CMPSB/CMPSW/CMPSD CMPSB/CMPSW/CMPSD;无显式操作数,分别对应无显式操作数,分别对应 字节字节/字字/双字串比较双字串比较第二章第

    28、二章指令系统指令系统整数指令整数指令串操作串操作串比较串比较_1_1功能:功能:将将DS:(E)SIDS:(E)SI指定的源串元素的内容减去指定的源串元素的内容减去 ES:(E)DIES:(E)DI指定的目的串元素的内容,仅改变标指定的目的串元素的内容,仅改变标 志位,不改变两个元素的值,并自动修改指针。志位,不改变两个元素的值,并自动修改指针。该指令前常加重复前缀,后跟条件转移指令来该指令前常加重复前缀,后跟条件转移指令来 判别两串是否匹配。判别两串是否匹配。23举例:举例:比较两个长度为比较两个长度为500500的字节字符串是否相同,若不的字节字符串是否相同,若不 同,找出出现不同时的位置

    29、,并记入相应单元。同,找出出现不同时的位置,并记入相应单元。第二章第二章指令系统指令系统整数指令整数指令串操作串操作串比较串比较_2_2程序段如下:程序段如下:LEA SI,FIRST;SILEA SI,FIRST;SI指向源串起始单元指向源串起始单元 FIRST FIRST LEA DI,SECOND;DI LEA DI,SECOND;DI指向目的串起始单元指向目的串起始单元 SECONDSECOND MOV CX,500 ;MOV CX,500 ;设置计数器为设置计数器为 500500 CLDCLD ;标志标志DFDF清零,增量模式清零,增量模式 REPE CMPSBREPE CMPSB

    30、;重复比较重复比较 (DS:SI)-(ES:DI)(DS:SI)-(ES:DI)JNE FOUND ;JNE FOUND ;不相同不相同(ZF=0)(ZF=0),转,转 FOUNDFOUNDSAME:RET ;SAME:RET ;相同,返回相同,返回FOUND:DEC SI ;FOUND:DEC SI ;退回一字节退回一字节 MOV POINT,SI;MOV POINT,SI;将不相同位置保存将不相同位置保存 JMP SAMEJMP SAME24 串输入指令串输入指令 INSB/INSW/INSDINSB/INSW/INSD 指令格式:指令格式:INSB INSB ;输入字节串输入字节串 IN

    31、SW INSW ;输入字串输入字串 INSD INSD ;输入双字串输入双字串 功能:功能:从从DXDX寄存器寄存器指定的端口输入一个字节指定的端口输入一个字节/字字/双字双字 元素传送到元素传送到ES:(E)DIES:(E)DI所指定的所指定的存储单元存储单元,并,并 自动修改目的指针,可加重复前缀。自动修改目的指针,可加重复前缀。第二章第二章指令系统指令系统整数指令整数指令串操作串操作串输入串输入注意:注意:不需经过累加器不需经过累加器AL/AX/EAXAL/AX/EAX。举例:举例:LEA DILEA DI,DEST DEST ;DESTDEST存储区在存储区在ESES段段 MOV DX

    32、MOV DX,301H301H MOV CX MOV CX,8 8 REP INSB REP INSB ;从端口;从端口301H301H输入输入8 8字节串字节串25 串输出指令串输出指令 OUTSB/OUTSW/OUTSDOUTSB/OUTSW/OUTSD 指令格式:指令格式:OUTSB OUTSB ;输出字节串输出字节串 OUTSW OUTSW ;输出字串输出字串 OUTSD OUTSD ;输出双字串输出双字串 功能:功能:将将DS:(E)SIDS:(E)SI指定的存储单元中的字节、字指定的存储单元中的字节、字 或双字串元素输出到由或双字串元素输出到由DXDX寄存器寄存器指定的端口,指定的

    33、端口,并自动修改源指针,可加重复前缀。并自动修改源指针,可加重复前缀。第二章第二章指令系统指令系统整数指令整数指令串操作串操作串输出串输出举例:举例:LEA ESILEA ESI,SOURCESOURCE MOV DX MOV DX,300H300H MOV CX MOV CX,8 8 REP OUTSB REP OUTSB26第二章第二章指令系统指令系统整数指令整数指令串操作串操作重复前缀重复前缀_1_1 重复前缀重复前缀 REP/REPE/REPZ/REPNE/REPNZREP/REPE/REPZ/REPNE/REPNZ 格式:格式:加在串操作指令之前,不可单独使用。加在串操作指令之前,不

    34、可单独使用。先进行条件判别,再执行串操作,之后先进行条件判别,再执行串操作,之后CXCX减减1 1。MOVSMOVS LODS LODS REPREP STOS STOS INS INS OUTS OUTS配合工作的前缀配合工作的前缀 REPREP重复操作直到重复操作直到(CX)=0CX)=0为止,不影响标志位为止,不影响标志位CMPSCMPSSCASSCASREPE/REPZREPE/REPZ 相等相等/为为0 0时重复时重复,即:即:(CX)0CX)0且且ZF=1ZF=1时重复。时重复。REPNE/REPNZREPNE/REPNZ 不等不等/不为不为0 0时时重复重复,即:即:(CX)0C

    35、X)0且且ZF=0ZF=0时重复。时重复。REPE/REPZREPE/REPZ 或或REPNE/REPNZREPNE/REPNZ27使用串操作指令的一般步骤使用串操作指令的一般步骤:第二章第二章指令系统指令系统整数指令整数指令串操作串操作重复前缀重复前缀_2_2CLD ;CLD ;建立方向标志;建立方向标志;MOV CX,lengthMOV CX,length;把数据串长度放入把数据串长度放入CXCX寄存器寄存器作为作为 重复操作计数值;重复操作计数值;LEA DI,tab2;LEA DI,tab2;把将要存放数据串的附加段首址把将要存放数据串的附加段首址(或或 反向操作时的末地址反向操作时的

    36、末地址)放入放入DIDI寄存器中寄存器中;LEA SI,tab1;LEA SI,tab1;把存放在数据段中的源串首址把存放在数据段中的源串首址(如反如反 向操作则应是末址向操作则应是末址)放入放入SISI寄存器寄存器;REP MOVSB ;REP MOVSB ;执行重复串操作。执行重复串操作。28第二章第二章 习题习题4 4教材教材 P118P118至至P122P122:2.15 (2)2.15 (2)2.22 (1)(5)(7)(8)2.22 (1)(5)(7)(8)2.25 2.25 2.37 2.37 2.43 (1)2.43 (1)295 5、控制转移指令、控制转移指令 这类指令用于改

    37、变程序执行顺序这类指令用于改变程序执行顺序(对应对应程序的转程序的转移寻址移寻址),其实质就是改变其实质就是改变CS:(E)IPCS:(E)IP的内容的内容。第二章第二章指令系统指令系统整数指令整数指令控制转移控制转移提要提要主要包括以下内容:主要包括以下内容:无条件转移指令无条件转移指令 条件转移指令条件转移指令 循环控制指令循环控制指令 过程调用过程调用/返回指令返回指令 中断和中断返回指令中断和中断返回指令其中只有中断指令影响标志位。其中只有中断指令影响标志位。30程序转移示意图:程序转移示意图:第二章第二章指令系统指令系统整数指令整数指令控制转移控制转移示意图示意图代代码码段段1 1C

    38、S:IP(1000H:400H)CS:IP(1000H:400H)10400H 10400H指令指令1 110420H10420H存储器存储器指令指令2 2指令指令i i代代码码段段2 2指令指令1 1指令指令2 2指令指令i iCS:IP(2000H:100H)CS:IP(2000H:100H)20100H 20100H段间转移段间转移段内转移段内转移31 无条件转移指令无条件转移指令 JMPJMP指令格式:指令格式:JMP JMP 目标操作数目标操作数 lablelable ;直接转移直接转移 reg16/32 reg16/32 ;段内间接转移段内间接转移 mem16/32 mem16/3

    39、2 ;段内或段间间接转移段内或段间间接转移第二章第二章指令系统指令系统整数指令整数指令控制转移控制转移无条件无条件_1_1功能:功能:无条件地控制程序转移到目标操作数指定的目标无条件地控制程序转移到目标操作数指定的目标 地址,即将目标地址装入地址,即将目标地址装入(E)IP(E)IP或或CS:(E)IPCS:(E)IP。短标号短标号段内直接短转移段内直接短转移 8 8位位近标号近标号段内直接转移段内直接转移 (E)IP(E)IP远标号远标号段间直接转移段间直接转移 CS:(E)IPCS:(E)IP直接寻址直接寻址lebleleble指令中指令中间接寻址间接寻址寄存器寄存器/存储器存储器 段内间

    40、接转移段内间接转移 (E)IP(E)IP存储器存储器 段间间接转移段间间接转移 CS:(E)IPCS:(E)IP32 段内直接短转移段内直接短转移(SHORT)(SHORT)指令格式:指令格式:JMP SHORT JMP SHORT 目标标号目标标号 目标标号专用于指向指令单元,目标标号专用于指向指令单元,SHORTSHORT是是JMPJMP特有特有 的的短转移运算符短转移运算符,指明此处的目标操作数,指明此处的目标操作数是一个是一个8 8位位 补码的位移量。补码的位移量。第二章第二章指令系统指令系统整数指令整数指令控制转移控制转移无条件无条件_2_2执行:执行:(E)IP(E)IP(E)IP

    41、)(E)IP)DISP8DISP8 128128 DISP8DISP8 +127 +127 (有符号数有符号数,补码补码)DISP8DISP8是当前是当前(E)IP(E)IP与下一条指令入口之间与下一条指令入口之间 的距离,的距离,CSCS内容保持不变。内容保持不变。注意:容易因使用不当超出范围而出错。注意:容易因使用不当超出范围而出错。33举例:举例:JMP SHORT HELLOJMP SHORT HELLO HELLOHELLO:MOV ALMOV AL,3 3第二章第二章指令系统指令系统整数指令整数指令控制转移控制转移无条件无条件_3_3JMPJMP指令指令10100H 10100H

    42、E8E810101H 10101H 080810102H10102H.1010AH 1010AH B0B01010BH 1010BH 0303MOVMOV指令指令代码段代码段当前当前(IP)(IP)+0808 10010AH 10010AHHELLOHELLO 34第二章第二章指令系统指令系统整数指令整数指令控制转移控制转移无条件无条件_4_4 段内直接转移(又称相对转移)段内直接转移(又称相对转移)指令格式:指令格式:JMP JMP 目标标号目标标号 ;近近(NEAR)(NEAR)标号标号 1616位寻址时,是一个位寻址时,是一个1616位补码的位移量;位补码的位移量;3232位寻址时,是一

    43、个位寻址时,是一个3232位补码的位移量。位补码的位移量。执行:执行:1616位时,位时,IPIP(IP)+(IP)+DISPDISP1616 32 32位时,位时,EIPEIP(EIP)+DISP32(EIP)+DISP32 CS CS内容保持不变。内容保持不变。例如:例如:JMP PROGRAMJMP PROGRAMJMPJMP指令指令02013H E9H02013H E9H 12H12H 34H 34H05428H05428H存储器存储器代代码码段段当前当前IPIP 02016H 02016H +3412H3412H 新新IPIP 05428H 05428H位移量位移量35第二章第二章指

    44、令系统指令系统整数指令整数指令控制转移控制转移无条件无条件_5_5 段间直接转移段间直接转移指令格式:指令格式:JMP FAR PTR JMP FAR PTR 目标标号目标标号 ;远远(FAR)(FAR)标号标号 指令中直接给出目标标号所指向的入口指令中直接给出目标标号所指向的入口 地址的地址的段选择符段选择符(或段值或段值)和和偏移地址偏移地址。执行:执行:段选择符段选择符(或段值或段值)CSCS 偏移地址偏移地址(E)IP(E)IP例如:例如:JMP FAR PTR LABLEJMP FAR PTR LABLE36举例:举例:段间直接转移段间直接转移 C1 SEGMENTC1 SEGMEN

    45、T JMP FAR PTR A1JMP FAR PTR A1 C1 ENDSC1 ENDS C2 SEGMENTC2 SEGMENT A1:MOV ALA1:MOV AL,3 3 C2 ENDS C2 ENDS 第二章第二章指令系统指令系统整数指令整数指令控制转移控制转移无条件无条件_6_6JMPJMP指令指令C1C1代码段代码段新新IPIP新新CSCS20000H20000HMOVMOV指令指令EAHEAH50H50H02H02H00H00H20H20HB0HB0H03H03H(A1:)20250H(A1:)20250HC2C2代码段代码段存储器存储器37第二章第二章指令系统指令系统整数指令

    46、整数指令控制转移控制转移无条件无条件_7_7 段内间接转移段内间接转移指令格式:指令格式:JMP reg/memJMP reg/mem 指令中指定的指令中指定的1616位位/32/32位寄存器或存储器单元中位寄存器或存储器单元中 存放着转移目标的存放着转移目标的1616位位/32/32位段内偏移量位段内偏移量EAEA。执行时执行时:用用EAEA代替当前代替当前(E)IP(E)IP,CSCS不变不变。例如:例如:JMP BX JMP BX ;1616位段内间接转移位段内间接转移 JMP EDX JMP EDX ;3232位段内间接转移位段内间接转移 JMP WORD PTR BX JMP WOR

    47、D PTR BX ;1616位段内间接转移位段内间接转移 JMP DWORD PTR EAX JMP DWORD PTR EAX ;3232位段内间接转移位段内间接转移38第二章第二章指令系统指令系统整数指令整数指令控制转移控制转移无条件无条件_8_8 段间间接转移段间间接转移指令格式:指令格式:JMP memJMP mem 指令中指定的存储器单元中存放着转移目标的指令中指定的存储器单元中存放着转移目标的 段值段值(或段选择符或段选择符)和和1616位位(或或3232位位)偏移量。偏移量。执行时:执行时:段值段值:16:16位偏移量位偏移量 CS:IP CS:IP 或或 段选择符段选择符:32

    48、:32位偏移量位偏移量 CS:EIPCS:EIP例如:例如:JMP DWORD PTR BX JMP DWORD PTR BX ;1616位段间间接转移位段间间接转移 JMP FWORD PTR EAX JMP FWORD PTR EAX ;3232位段间间接转移位段间间接转移39举例:举例:PentiumPentium工作在实地址方式时,工作在实地址方式时,(IP)=3D8FH,(CS)=1000H,(IP)=3D8FH,(CS)=1000H,(DS)=091DH,(BX)=0024H,09226=00F6H,09228=1E40H(DS)=091DH,(BX)=0024H,09226=00

    49、F6H,09228=1E40H。JMP DWORD PTR 32HBXJMP DWORD PTR 32HBX 执行过程如图:执行过程如图:第二章第二章指令系统指令系统整数指令整数指令控制转移控制转移无条件无条件_9_9指令指令代代码码段段新新IP 00F6HIP 00F6H新新CS 1E40HCS 1E40H09226H09226H偏移量偏移量操作码操作码操作码操作码32H32H00H00HF6HF6H00H00H40H40H1EH1EH(DS)(DS)16 16 091D0H091D0H BX BX 0024H 0024H +0032H +0032H 09226H 09226H数数据据段段存

    50、储器存储器段基址段基址位移量位移量40 条件转移指令条件转移指令 JccJcc 指令格式:指令格式:Jcc lableJcc lable ;段内短转移或段内直接转移段内短转移或段内直接转移 功能:功能:根据标志位状态组根据标志位状态组成的转移条件成的转移条件cccc,决定程,决定程序的执行流向。序的执行流向。第二章第二章指令系统指令系统整数指令整数指令控制转移控制转移条件条件_1_1是是否否labellabel顺序执行顺序执行JccJcc label labelcccc成立吗?成立吗?cccc条件成立时指令执行:条件成立时指令执行:1616位寻址:位寻址:IPIP(IP)+DISP8/DISP

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:微机原理-第2章-4指令(逻辑串条件等)课件.ppt
    链接地址:https://www.163wenku.com/p-4295411.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库