第4篇微机原理.ppt

  1. 1、本文档共123页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * * * * (3)乘法的BCD码调整指令 AAM 指令格式:AAM 指令功能:AX←把AL中的积调整为非压缩的BCD码格式。 这条指令之前必须执行MUL指令把两个非组合的BCD码相乘(此时要求其高4位为0),结果放在AL中。本指令的调整方法是:把AL寄存器的内容除以0AH,商放在AH中,余数保存在AL中。 指令根据AL寄存器的内容设置条件标志SF、ZF、PF,但OF、CF、AF位无意义。 (4)除法的BCD码调整指令 AAD 对BCD码进行除法运算时,也要求除数和被除数都用非组合的BCD码形式来表示,这是与对BCD码乘法的要求类似的地方。这里要特别注意一点,对BCD码除法运算的调整是在进行除法之前,通过对被除数进行调整来实现的。 调整操作如下: AL←10×AH+AL AH←0 例:一个数据为65,用非压缩的BCD码表示,则AH中为06H,AL中为05H,调整执行AAD指令,这条指令将AH中的内容乘以10,再加上AL中的内容,这样得到AL的结果为41H,AH为0。 指令根据AL寄存器的结果设置SF、ZF和PF,OF、CF和AF无意义。 串操作指令可以使用一条指令完成对一串字符或数据的操作。 特点: ① 通过重复前缀完成串操作。 ② 可以对字节串或字串进行操作。 ③ 一般源操作数在数据段中(DS),用SI间接寻址获得;目标操作数在扩展段中(ES),用DI间接寻址获得。 ④ 可以对SI和DI的值自动修改。若对字节进行操作,则自动加1或减l;若对字进行操作,则自动加2或减2,加减由DF标志来决定。若DF=0,则SI和DI增量修改;DF=1,则SI和DI做减量修改。在串操作前可用STD指令使DF置l,也可以用CLD指令使DF清0。 四 串操作指令 指令格式:MOVSB ;字节传送 MOVSW ;字传送 指令功能: (DI)←(SI) 字节操作 SI←SI?1;DI←DI?1; 字操作 SI←SI?2;DI←DI?2; 该类指令执行时,将把当前数据段中用SI指出的源串的一个字节或一个字传送到用DI指向的扩展段的目的地址中。 当DF=0且是字节传送时,则传送后SI、DI加1,以使指针指向下一个地址;当DF=0且是字传送时,则SI、DI加2。若DF=1,则SI、DI减1或减2。 1 字符串传送指令 重复操作前缀 REP 它是串指令的前缀。当某一条指令需要多次重复时,就可以加上该前缀。重复次数应放在寄存器CX中。这样每重复执行一次,CX内容减1,直到CX=0,才停止重复。 例:将100个字节的字符串从内存数据段的1000H复制到内存扩展段的2000H中去。 MOV SI,1000H MOV DI,2000H MOV CX,100 CLD ;DF=0 REP MOVSB ;重复搬移 MOVSB/MOVSW 指令及前缀 REP 均不影响标志。 指令格式:CMPSB ;字节比较 CMPSW ;字比较 指令功能: (SI)-(DI) 字节操作 SI←SI?1;DI←DI?1; 字操作 SI←SI?2;DI←DI?2; 该类指令执行时,将当前数据段由SI所指出的字节和字同当前扩展段中由DI所指出的目的串的字节或字进行比较,比较结果对标志位的影响同减法。 该指令对操作数不产生影响。 2 字符串比较指令 相等/为零时重复操作前缀 REPE/PEPZ 它们是条件重复前缀。当条件满足时,才重复执行后面的串指令,一旦条件不满足,重复就停止。 REPE/REPZ 指令是相等重复指令,即只有ZF=l,且CX≠0,串操作指令就重复执行,每执行一次CX内容减1。 不相等/不为零时重复操作前缀 REPNE/PEPNZ 它们是条件重复前缀。当条件满足时,才重复执行后面的串操作指令,一旦条件不满足,重复就停止。 REPNE/REPNZ 指令是不相等重复指令,即只有ZF=0,且CX≠0,串操作指令就重复执行,每执行一次CX内容减1 。 以上前缀均不影响标志。 例:比较1000H和2000H中的50个字节,找出第一个不相同的字节,如果找到,则将2000H起始单元中的这个数送AL中。 LEA DI,[1000H]

文档评论(0)

xuefei111 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档