- 1、本文档共26页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
微机原理与接口技术除法指令3-7
1 加法指令 2 减法指令 3 乘法指令 4 除法指令 5 十进制调整指令 无符号数除法(DIV) 有符号数除法(IDIV) 除法指令 二 算术运算指令 进行除法时:16位/8位→8位商,8位余数 32位/16位→16位商,16位余数 对被除数、商及余数存放有如下规定: 被除数 商 余数 16位/8位 AX AL AH 字节操作 32位/16位 DX:AX AX DX 字操作 4.1 除法指令——无符号数的除法指令 格式: DIV SRC 操作:字节操作 (AL) ? (AX) / (SRC) 的商 (AH) ? (AX) / (SRC) 的余数 字操作 (AX) ? (DX, AX) / (SRC) 的商 (DX) ? (DX, AX) / (SRC) 的余数 例: DIV CL DIV WORD PTR[BX] 4.2 除法指令——有符号数的除法指令 格式: IDIV SRC 操作与DIV类似。商及余数均为有符号数,且余数符号总是与被除数符号相同。 注意: 对于DIV/IDIV指令 AX(DX:AX)为隐含的被除数寄存器。 AL(AX)为隐含的商寄存器。 AH(DX)为隐含的余数寄存器。 SRC不能为立即数。 对所有标志位均无定义。 关于除法操作中的字长扩展问题 除法运算要求被除数字长是除数字长的两倍,若不满足则需对被除数进行扩展,否则产生错误。 1)无符号数除法扩展,只需将AH或DX清零即可。 2)有符号数而言,则是符号位的扩展。可使用符号 扩展指令CBW和CWD。 格式:CBW 功能:将AL中的符号位扩展到AH中,即当AL80H,执行CBW后,AH=0; AL=80H时,执行CBW指令后,AH=FFH。 注意:不影响标志位 4.3 扩展指令 格式:CWD 功能:将AX中的符号位扩展到DX中,即当AX8000H,执行CWD后,DX=0; AX=8000H时,执行CWD指令后,DX=FFFFH。 注意:不影响标志位 例题:二进制四则混合算术运算 试计算: AX (V-(X*Y+Z-540))/X 之商 DX 余数 (X ,Y ,Z ,V 均为有符号字变量) MOV AX, X; MOV BX,Y IMUL Y; MOV CX, AX; MOV BX, DX; MOV AX, Z; CWD ADD CX, AX; ADC BX, DX; 将符号扩展后的Z加到 BX:CX中的乘积中去 X*Y,结果在DX:AX中 将乘积存在BX:CX中 SUB CX, 540; SBB BX, 0; MOV AX, V; CWD; SUB AX, CX; SBB DX, BX; MOV BX,X IDIV BX; 从BX:CX中减去540 从符号扩展后的V中减去(BX:CX)并 除以X,商在AX中,余数在DX中。 二 算术运算指令 1 加法指令 2 减法指令 3 乘法指令 4 除法指令 5 十进制调整指令 十进制调整指令 压缩BCD码加法调整指令DAA 压缩BCD码减法调整指令DAS 非压缩BCD码加法调整指令AAA 非压缩BCD码减法调整指令AAS 乘法的BCD码调整指令AAM 除法的BCD码调整指令AAD 共6条,均为隐含寻址方式,隐含的操作数是 AL或AL、AH; 不能单独使用,要紧跟在相应的算术运算指令 之后; 执行结果为压缩BCD码或非压缩BCD码表示的十进制数。 BCD码调整指令的说明 例:将十进制数8762用压缩型BCD码表示,则为: 1000 0111 0110 0010 非压缩型BCD码: 在PC机中,根据在存储器中的不同存放格式,BCD码又分为 压缩(组合)BCD码:1字节(8位)中存放2个十进制数码 非压缩(分离)BCD码:1个字节只存放1个十进制数 格式: DAA ;调整AL中的和为压缩BCD码 DAS ;调整AL中的差为压缩BCD码 AF=1或AL寄存器低4位是A~F,则AL寄
文档评论(0)