3.3指令系统.ppt

  1. 1、本文档共93页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 例:试计算 FFH× FFH 1111 1111 1111 1111 × 1111 1110 0000 0001 用二进制表示如下: ▲当成无符号数:表示255*255=65025,结果正确 ▲当成带符号数:表示(-1)*(-1)= -511,结果错误的 用MUL指令作带符号数的乘法,会得到错误的结果,必须用下面介绍的IMUL指令,才能使(-1) *(-1)得到正确的结果0000 0000 0000 0001 * 2)、带符号数乘法指令IMUL 功能:把源操作数和累加器中的数都作为带符号数,进行相乘 例 两个有符号数的乘法 MOV AL,FEH ;AL←FEH,FEH看作有符号数-2 MOV CL,11H ;CL←11H,11H看作有符号数17 IMUL CL ;AX←FFDEH,执行(-2)*17H, 将乘积结果取补码,FFDEH=-34 指令格式: IMUL 源 ▲存放结果的方式与MUL相同 ▲对标志寄存器的影响与MUL相同 * 3)、AAM 功能:把在AX中的两个未组合十进制数相乘的结果,进行十进制数的调整,使得在AX中得到正确的未组合十进制数的乘积。 指令执行后影响标志位 PF、SF、ZF,对AF、CF、OF 未定义。 例:设(AL)= 09H,(BH)=06H 执行 MUL BL ;(AL)= 36H AAM ;调整得 (AH)= 05H,(AL)= 04H 即 (AX)= 0504H 为未组合十进制数09和06相乘的结果54 * 功能:对两个无符号数进行除法运算。源操作数可以是字节或字。 4.除法指令 指令格式:DIV 源 1)、DIV无符号数除法指令 ▲源操作数是一个字节:16位被除数必须放在AX中,8位除数作为源操作数 即: AL ? AX/ 源(字节) 的商 AH ? AX/ 源(字节) 的余数 ▲源操作数是一个字:32位被除数必须放在(DX,AX)中,16位除数作为源操作数 即: AX ? (DX,AX)/ 源(字) 的商 DX ? (DX,AX)/ 源(字) 的余数 如果被除数只有8位,必须把它放在AL中,AH清零 如果被除数只有16位,除数也是16位,则必须将16位被除数送到AX中,在将DX清0 * 2)、 IDIV带符号数除法指令 功能:对两个带符号的二进制数进行除法操作(也称带符号数除法) 指令格式:IDIV 源 ▲指令执行的操作与DIV相同 ▲商和余数也都是带符号数,而且规定余数的符号和被除数的相同 ▲指令执行后,所有标志位均无定义 ▲无论对DIV或者IDIV,都要注意溢出问题 字节操作时:被除数的高8位绝对值大于除数的绝对值,则产生溢出(对于无符号数,允许最大商位FFH,对于带符号数,允许商的范围为-127~+127) 字操作时:被除数的高16位绝对值大于除数的绝对值,则产生溢出(对于无符号数,允许最大商位FFFFH,对于带符号数,允许商的范围为-32767~+32767) 注意 * 对于IDIV指令,字节操作时要求被除数为16位,字操作时要求被除数为32位。如果被除数不满足这个条件,不能简单地将高位置0,而应该先用的符号扩展指令将被除数转换成除法指令所要求的格式,再执行除法指令。 例:两个无符号数7A86H和04H相除,商应为多少? 解:MOV AX , 7A86H MOV BL, 04H DIV BL 结果:1)正确的商应为1EA1H。 2) 由于BL中的除数04H为字节,被除数为字,商1EA1H大于AL中能存放的最大无符号数FFH, 产生除法错误中断 * 3)、把字节转换为字指令CBW 若(AL) <80H , 扩展后(AH) = 00H,若(AL) ?80H,扩展后(AH) =0FFH。 该指令执行后,不影响标志位。 功能:把AL中字节的符号位扩展到AH的所有位。 例:编程求-38/ 3的商和余数。 MOV AL,1101 1010B ;被除数-38送AL MOV CH,0000 0011B ;除数+3 送CH CBW ;把字节扩展为字,使AX= 0FFBAH

文档评论(0)

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

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

1亿VIP精品文档

相关文档