- 1、本文档共219页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章 8086的指令系统
【例如】 IMUL AX , PTR[BX] 设指令执行前:AX=0E8H, BX=0088H, DS=2000H,存储单元20088H中的字内容为 4E20H,则指令执行后: DX=0046H, AX=0CD00H, CF=1,OF=1表示AX中存有积的有效值。 【例如】 IMUL AX,BX,34H;(AX )←(34H)*(BX) 4.除法指令 (1)无符号数除法指令 DIV 一般形式 : DIV OPRD (2) 带符号数除法IDIV 一般形式 : IDIV OPRD 该指令执行过程同DIV指令,但IDIV指令认为操作数的最高位为符号位,除法运算的结果商的最高位也为符号位。 在除法指令中: 在字节运算时被除数在AX中;运算结果商在AL中,余数在AH中。 字运算时被除数为DX:AX 构成的32位数,运算结果商在AX中,余数在DX中。 【例如】 AX=2000H,DX=200H,BX=1000H,则 DIV BX 执行后,AX=2002H ,DX=0000。 除法运算中,源操作数可为除立即寻址方式之外的任何一种寻址方式。除法来讲,全部标志无意义。溢出处理不是使OF为1,而是当除数为0时产生0号中断。 。 由于除法指令中的字节运算要求被除数为16位数,而字运算要求被除数是32位数,在8086/8088系统中往往需要用符号扩展的方法取得被除数所要的格式,因此指令系统中包括两条符号扩展指令: CBW、CWD,该指令不影响标志位。 (3) 字节扩展指令CBW 一般格式: CBW ; 该指令执行时将AL寄存器的最高位扩展到AH,即若D7=0,则AH=0;否则AH=0FFH。 (4) 字扩展指令CWD 一般格式: CWD ;该指令执行时将AX寄存器的最高位扩展到DX,即若D15=0,则DX=0;否则DX=0FFFFH。 【例5.39】 如果(AX)?=?0200H,(BL)?= 82H ,求执行指令“DIV BL”和“IDIV BL”后的结果。解:无符号数时: (AX)=0200H=512;(BL)=82H=130 DIV BL ;执行无符号除指令后, ;(AH) =7AH(余),(AL) =03H(商) 有符号数时:(AX)=0200H=512;(BL)= 82H=[-126]补,[82H]补= 1111 1110 7EH?=?126?=|-126| IDIV BL ;执行有符号除指令后, ;(AH)=08H(余),(AL)=FCH(商) 【例如】假设(AL)?=?0B5H,AL中符号位为1, 执行指令CBW后, (AH)?=?0FFH,即 (AX)?=?0FFB5H。 5.十进制调整指令 计算机中的算术运算,都是针对二进制数的运算,而人们在日常生活中习惯使用十进制。为此在8086/8088系统中,针对十进制算术运算有一类十进制调整指令。 在计算机中人们用BCD码表示十进制数,对BCD码计算机中有两种表示方法: 压缩BCD码,即规定每个字节表示两位BCD数; 非压缩BCD码,即用一个字节表示一位BCD数,在这字节的高四位用0填充。 例如,十进制数25D: 压缩BCD数时:表示为25H; 非压缩BCD数时:表示为0205H,用两字节表示。 相关的BCD转换指令见表3-2。 除法前的BCD码调整 AAD 乘法后的BCD码调整 AAM 非压缩的BCD码减法调整 AAS 非压缩的BCD码加法调整 AAA 压缩的BCD码减法调整 DAS 压缩的BCD码加法调整 DAA 指令说明 指令格式 表3-2 十进制调整指令 ASCII码的调整 【例如】若AL, BL中的数为压缩BCD码 ADD AL,BL DAA 若执行前:AL=28H,BL=68H, 则执行ADD后:AL=90H,A
文档评论(0)