第3章-4-移位-串-转移-G.ppt_第1页
第3章-4-移位-串-转移-G.ppt_第2页
第3章-4-移位-串-转移-G.ppt_第3页
第3章-4-移位-串-转移-G.ppt_第4页
第3章-4-移位-串-转移-G.ppt_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 80X86的指令系统和寻址方式 第三章 3 3 3移位指令 2 3 3 3移位指令 移位指令 算术移位指令逻辑移位指令循环移位指令 其功能为将目的操作数的所有位按操作符规定的方式移动1位或按寄存器CL规定的次数 0 255 移动 格式 操作符OPOPD 1或操作符OPOPD CL 目的操作数是8位 或16位 的寄存器数据或存储器数据 3 1 算术左移和逻辑左移指令SAL SHL 功能 将 OPD 向左移动CL指定的次数 最低位补入相应的 CF的内容为最后移入位的值 语句格式 SALOPD 1或SHLOPD 1SALOPD CL或SHLOPD CL 4 1 算术左移和逻辑左移指令SAL SHL 语句格式 SALOPD CL或SHLOPD CL 例2 SHLAL CL CL 3 原 运行 整体左移3位 下页 5 2 算术右移指令SAR 功能 将 OPD 向右移动1次或CL指定的次数且最高位保持不变 CF的内容为最后移入位的值 语句格式 SAROPD 1或SAROPD CL 例 SHLAL CL CL 2 例 6 例3 43 算术右移运算MOVBH 0F4H BH 0F4HMOVCL 2 CL 2SARBH CL BH 0FDH CF 0 该例语句 SARBH CL 实际上完成了 BH BH的运算 所以 用SAR指令可以实现对有符号数除2n的运算 n为移位次数 CF 7 3 逻辑右移指令SHR 功能 将 OPD 向右移动1次或CL指定的次数 最高位补0 CF的内容为最后移入位的值 语句格式 SHROPD 1或SHROPD CL 例 SHRAL CL CL 2 CF 8 4 循环左移指令ROL 语句格式 ROLOPD 1或ROLOPD CL 例 SOLAL CL CL 2 例 功能 将目的操作数的最高位与最低位连成一个环 将环中的所有位一起向左移动1次或CL规定的次数 CF的内容为最后移入位的值 9 5 循环右移指令ROR 语句格式 ROROPD 1或ROROPD CL 功能 将目的操作数的最高位与最低位连成一个环 将环中的所有位一起向右移动1次或CL规定的次数 CF的内容为最后移入位的值 10 6 带进位的循环左移指令RCL 语句格式 ROLOPD 1或ROLOPD CL 例 SCLAL CL CL 2 例 功能 将目的操作数连同CF标志一起向左循环移动1次或CL规定的次数 11 7 带进位的循环右移指令RCR 语句格式 RCROPD 1或RCROPD CL 例 SCRAL CL CL 2 例 功能 将目的操作数连同CF标志一起向右循环移动1次或CL规定的次数 12 8 双精度移位指令SHLD 386及后机型用 语句格式 SHLDDST REG CNTSHRDDST REG CNT 例 SHLDEBX ECX 8 CF 功能 将 DST 向左移动CNT指定的次数 低位寄存器向高位左补入相应的位 CF的内容为最后移入位的值 注 最终低位寄存器的内容不变 CF 13 3 3 4串操作类指令 数据传送类指令每次只能传送一个数据 若要传送大批数据就需要重复编程 这样就浪费了大量的时间和空间 为此80X86提供了一组处理主存中连续存放数据串的指令 这就是串操作指令 14 流程图串操作的过程流程图 CX 0 设置SI DI CX及DF CX 1 CX 串传送操作 SI 1 SI DI 1 DI CMPS SCANS 重复前缀 下条指令 重复前缀 与ZF相同 Y N N Y Y N Y N Y CX DF 15 CX DF 即 DS SI ES DI 当DF 0时 SI 和 DI 增量 当DF 1时 SI 和 DI 减量 0 1 1 传送指令MOVSB字节串传送 MOVSW字串传送 功能 将以SI为指针的源串中的一个字节 或字 存储单元中的数据传送至以DI为指针的目的地址中去 并自动修改指针 使之指向下一个字节 或字 存储单元 16 CX DF 即 SI DI 修改串指针 使之指向串中的下一个元素 当DF 0时 SI 和 DI 增量 当DF 1时 SI 和 DI 减量 0 1 2 串比较指令CMPSB字节比较 CMPSW字比较 ZF 功能 将SI所指的源串中的一个字节 或字 存储单元中的数据与DI所指的目的串中的一个字节 或字 存储单元中的数据相减 并根据相减的结果设置标志ZF 但结果并不保存 17 CX DF 即 字节操作 AL DI 字操作 AX DI 修改指针使之指向串中的下一个元素 当DF 0时 DI 增量 当DF 1时 DI 减量 0 1 3 串搜索指令SCASB字节串搜索 SCASW字串搜索 功能 AL 字节 或AX 字 中的内容与DI所指的目的串中的一个字节 或字 存储单元中的数据相减 根据相减结果设置标志位ZF 结果不保存 AL ZF B 18 CX DF 即 字节操作 SI AL 字操作 SI AX 修改指针SI 使它指向串中的下一个元素当DF 0时 SI 增量 当DF 1时 SI 减量 0 1 4 串中取数指令LODSB 从字节串中取数LODSW 从字串中取数 功能 将SI所指的源串中的一个字节 或字 存储单元中的数据取出来送入AL 或AX 中 AC 19 CX DF 即 字节操作 AL DI 字操作 AX DI 修改指针DI 使之指向串中的下一个元素当DF 0时 DI 增量 当DF 1时 DI 减量 0 1 5 往目的串中存数指令STOSSTOSB 往字节串中存数STOSW 往字串中存数 功能 将AL或AX中的数据送入DI所指的目的串中的字节 或字 存储单元中 AC 20 6 重复前缀指令REPREPZREPNZ 1 REPREP前缀用在MOVS STOS LODS指令前 15 DF 0 1 功能 每执行一次串指令 CX 1 直到 CX 0 重复执行结束 CX 0 例 REPMOVSB 21 6 重复前缀指令REPREPZREPNZ 2 REPZ REPE该指令一般用在CMP SCAS指令前 4 DF 0 1 功能 每执行一次串指令 CX 1 并判断ZF标志是否为0 只要 CX 0且ZF 1 则重复执行 CX 1 例 REPZCMPSB ZF 0 22 6 重复前缀指令REPREPZREPNZ 3 REPNZ REPNE该指令一般用在CMPS SCAS指令前 4 DF 0 1 功能 每执行一次串指令 CX 1 并判断ZF标志是否为0 退出条件 CX 0或ZF 1 否则 重复执行 CX 1 例 REPNZSCASB AL C ZF 1 23 3 3 5控制转移指令 1条件转移指令2无条件转移指令3条件设置指令3循环指令4子程序调用指令5中断指令 CS 24 1无条件转移指令 JMPshortquest 8位位移 短跳JMPnearptrprog 16位位移 1 段内直接寻址 Intrasegmentdirectaddssring 转向的有效地址是当前IP寄存器中内容和指定的位移量之和 是一种相对寻址方法 可以使程序在不同的区域运行 25 1无条件转移指令 2 段内间接寻址 intraindirectiveaddressing 转向的有效地址是一个寄存器或是一个存储单元的内容 这个寄存器或存储单元的内容用除立即数以外的任何一种寻址方式获得 例 JMPbxJMP bx 26 例 JMPwordptr bp table wordptr为字操作符 用以指出其后的寻址方式所取得的转向地址是一个字的有效地址 是一个段内转移 byteptr为字节操作符 表示寻址时按字节取数据物理地址 16D CS EA 27 例 JMPwordptr BX SI table 28 设 DS 2000H BX 1256H SI 528FHtable 20A1H 232F7H 3280H 264E5H 2450HJMPbx IP 1256h JMPtable BX ip 16D DS BX 位移量 20000H 1256H 20A1H 232F7H 3280h 232F7H 8032H 29 3 段间直接寻址 Intersegmentdirectaddressing 指令中直接提供了转向段地址和偏移量 JMPfarptrnextroutinfarptr表示段间转移 CS1段寄存器 IP 30 4 段间间接寻址 Intersegmentindexedaddressing 用存储器中的两个相继字的内容来取代IP和CS寄存器种的内容 JMPDwordptr lab BX 其中 lab BX 说明数据为间接寻址方式 dwordptr为双字操作符 说明转向地址需要取双字为段间转移指令 CS段寄存器 31 2 条件转移指令 1 简单条件转移指令2 无符号数条件转移指令3 有符号数条件转移指令它们都有通用的语句格式和功能 语句格式 操作符opr功能 如果条件满足 则 IP 位移量 IP CS 换 下一幻灯片文件 32 1 简单条件转移指令 33 34 2 无符号数条件转移指令 表2 2无符号数条件转移指令 35 例2 53 比较无符号数大小 将较大的数存放AX寄存器 CMPAX BX AX BX JNBNEXT 若A

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论