4_3 指令 2011 final_第1页
4_3 指令 2011 final_第2页
4_3 指令 2011 final_第3页
4_3 指令 2011 final_第4页
4_3 指令 2011 final_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

第4章IA 32指令系统 4 4位操作类指令4 4 1逻辑运算指令4 4 2移位指令4 5串操作类指令4 5 1串操作的寻址特点4 5 2串传送指令4 5 3串检测指令 4 4位操作类指令 以二进制位为基本单位进行数据的操作1 逻辑运算 ANDORXORNOTTEST2 移位 SHLSHRSAR3 循环移位 ROLRORRCLRCR常用指令 应该特别熟悉 同时 注意这些指令对标志位的影响 1 逻辑运算指令 影响状态标志 不影响状态标志 状态不定 AND与TEST SUB与CMP ANDAL 11111100B AL中D0和D1位清0 其余位不变ORCL 00000011B CL中D0和D1位置1 其余位不变XORAH 00001111B AH中低4位取反 高4位不变 逻辑运算的屏蔽作用 AND 复位某些位 同0与 不影响其他 同1与 OR 置位某些位 同1或 不影响其他 同0或 XOR 求反某些位 同1异或 不影响其他 同0异或 2 移位指令 SHLAL 1 SHiftLeftAL C 0 0101011 1 MOVCL 5SHLAL CL 2 移位指令 SHRAL 1 SHiftRight C 0 1010101 1 2 移位指令 SARAL 1 SHiftArithmetic C 1 1010101 1 移出位进入CF移位后对标志位的影响 CF OF SF ZF PF 例1 根据指令执行结果填空 MOVCL 4MOVAL 0F0H AL SHLAL 1 AL CF OF SHRAL 1 AL CF OF SARAL 1 AL CF OF SARAL CL AL CF f0h e0h 1 0 C 0 1110000 1 AL 例1 根据指令执行结果填空 MOVCL 4MOVAL 0F0H AL SHLAL 1 AL CF OF SHRAL 1 AL CF OF SARAL 1 AL CF OF SARAL CL AL CF f0h e0h 1 1 0 70h 0 C 0 1110000 1 AL 0 例1 根据指令执行结果填空 MOVCL 4MOVAL 0F0H AL SHLAL 1 AL CF OF SHRAL 1 AL CF OF SARAL 1 AL CF OF SARAL CL AL CF f0h e0h 1 1 0 70h 0 C 0 0111000 0 AL 0 38h 0 0 例1 根据指令执行结果填空 MOVAL 0F0H AL SHLAL 1 AL CF OF SHRAL 1 AL CF OF SARAL 1 AL CF OF SARAL 4 AL CF f0h e0h 1 1 0 70h 0 C 0011 0 AL 38h 0 0 03h 1 1000 0000 1 例2 移位指令实现乘法程序 P84 数据段wvardw6400dvardd 代码段andeax 0movax wvarshleax 1 2movebx eaxshleax 2 8addeax ebx 2 8 10movdvar eax SHL逻辑左移一位相当于无符号数乘以2SHR逻辑右移一位相当于无符号数除以2 1 C 移出位进入CF移位后对标志位的影响 CF OF 3 循环移位指令 ROLAL 1 RotateLeftaccumulatorA 1001101 1 1 C 3 循环移位指令 RORAL 1 RotateLeftaccumulatorA 1001101 1 3 循环移位指令 RCLAL 1 RotateLeftthroughCarry C 0 1001101 1 3 循环移位指令 RCRAL 1 RotateLeftthroughCarry C 0 1001101 1 例 循环移位程序 数据段asciidb 38 bcddb 代码段moval ascii 1andal 0fhmovah asciishlah 4oral ahmovbcd al BCD 38H ASCII 3338H 串操作指令是8086指令系统中比较独特的一类指令 是唯一在存储器内的源与目标之间进行操作的指令 重点掌握 MOVSSTOSLODSCMPSSCASREP注意理解 REPZ REPEREPNZ REPNE 4 5串操作类指令 串操作特点 1 串的概念 2 串所在的段 源DS ESI 目的ES EDI 3 元素个数 ECX4 方向标志 DF 0 地址指针增加 DF 1 地址指针减小 5 每处理完一个元素后 自动修改ESI EDI的值 指向下一个元素 串传送指令 MOVS目的串 源串MOVSB MOVSW MOVSD 串传送 ES EDI DS ESI 然后 ESI ESI 1 2 4 EDI EDI 1 2 4STOS目的串STOSB STOSW STOSD 串存储 ES EDI AL AX EAX 然后 EDI EDI 1 2 4LODS源串LODSB LODSW LODSD 串读取 AL AX EAX DS ESI 然后 ESI ESI 1 2 4REP ECX 0退出 否则CX减1 执行一次串指令 演示 演示 演示 演示 串检测指令 CMPSB CMPSW CMPSD 字节串比较 DS ESI ES EDI 然后 ESI ESI 1 2 4 EDI EDI 1 2 4SCASB SCASW SCASD 字节串扫描 AL AX EAX ES EDI 然后 EDI EDI 1 2 4REPE REPZ 执行一次串指令 ECX减1 直到ECX 0或ZF 0REPNE REPNZ 执行一次串指令 ECX减1 直到ECX 0或ZF 1 例 比较str1与str2中的100个字节的字符串是否相同 相同时显示Y 不同时显示X movsi offsetstr1movdi offsetstr2movcx 100cldREPZCMPSB 比较两个字符 相等则重复 JNZNO 字符串不等 转移到NOmovdl Y 字符串相等 设置标记jmpoutput 转向outputNO movdl X 设置标记output movah 2 输出结果标记int21h 小结 掌握数据寻址方式及其应用掌握基本指令的功能及其应用MOV XCHG PUSH POP加法指令 减法指令 逻辑指令 移位指令熟悉常见指令的功能XLAT LEA MUL IMUL DIV IDIVMOVZX MOVSX CLC STC MOVS STOS REP理解常见语法错误 符号扩展 十进制调整等问题熟悉常见编程问题数组运算 字符串移动大小写转换 ASCII码与BCD码转换 作业 P944 15 4 18 4 24 MOVSB字节串传送 主存 地址高端 30H 30H 源操作数DS ESI 目的操作数ES EDI DF 0 正向传送 31H 然后 ESI ESI 1 EDI EDI 1 地址低端 反向传送类似 例1 将从内存DS 2000H开始的200个字节的字符串搬移到内存ES 3000H开始的存储单元中去 低 高 MOVSI 2000HMOVDI 3000HMOVCX 200 cx 传送次数CLD 设置DF 0 实现地址增加again MOVSB 传送一个字节DECCX 传送次数减1JNZagain 判断传送次数cx是否为0 不为0 则转移again位置执行 否则 结束 例1 将从内存DS 2000H开始的200个字节的字符串搬移到内存ES 3000H开始的存储单元中去 DS 2000H DS 3000H MOVAX DSMOVES AX MOVSI 2000HMOVDI 3000HMOVCX 200 cx 传送次数CLD 设置DF 0 实现地址增加again MOVSB 传送一个字节DECCX 传送次数减1JNZagain 判断传送次数cx是否为0 不为0 则转移again位置执行 否则 结束 例1 将从内存DS 2000H开始的200个字节的字符串搬移到内存ES 3000H开始的存储单元中去 STOSB字节串存储 主存 地址高端 34H 30H 目的操作数ES EDI DF 0 正向传送 31H 然后 EDI EDI 1 地址低端 源操作数 例2 分析下列指令完成的功能 CLDMOVAX DSMOVES AXMOVDI 0200HMOVCX

温馨提示

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

评论

0/150

提交评论