- 1、本文档共36页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
微机原理 第三章3精要
IMUL DX,BX,300 IMUL CX,23 IMUL EBP,200 IMUL ECX,EDX,2000 mov al,80h ;al=80h cbw ;ax=ff80h mov ax,0BA45H ;ax=0BA45H cwd ;dx=0ffffh, ax=0ba45h 博学 审问 慎思 明辨 笃行 ?1)加减法的组合BCD调整指令: ;AL←将AL中和调整为组合BCD码 差 DAA和DAS指令的调整方法: AF=1或(AL)0~3=A~F,则(AL) ? (AL) ? 06H,AF=1 CF=1或(AL)4~7=A~F,则(AL) ? (AL) ? 60H,CF=1 ( DAA做‘+’, DAS做‘-’ ) 注意: * 隐含的操作寄存器为AL * 紧接在加减指令之后使用 * 影响条件标志位 (对OF无定义) 第3章 Pentium的指令系统 (ADD/ADC AL,i8/r8/m8) DAA (SUB/SBB AL,i8/r8/m8) DAS ?2)加减法的分离BCD调整指令: ;AL←将AL中和/差调整为分离BCD码 AH←AH+/- 调整的进位 第3章 Pentium的指令系统 (ADD/ADC AL,i8/r8/m8) AAA (SUB/SBB AL,i8/r8/m8) AAS 注意: * 隐含的操作寄存器为AL * 紧接在加减指令之后使用 * AAA和AAS指令在调整中产生了进位或借位, 则AH要加上进位或减去借位,同时CF=AF=1, 否则CF=AF=0;它们对其他标志无定义 例:设两个以ASC?码表示的十进制数代码‘7’ ‘5’, 求出其相加后的分离式BCD码, 存入AX中。 0011 0111 37H + 0011 0101 35H 0110 1100 + 0000 0110 加06调整 ( AL ) = 0111 0010 进位送AH ( AL ) = 0111 0010 + 0000 0001 0000 0000 ( AH ) = 0000 0001 0000 1111 (AL) ^0FH ^ 0000 0001 0000 0010 AH AL 1 2 MOV AL, 37H ADD AL, 35H AAA * 第3章 Pentium的指令系统 3.2.2 算术运算指令(Arithmetic) 功能: 提供加、减、乘、除、类型转换五种基本算术操作; 利用十进制调整指令和ASCII调整指令对BCD码表示的 十进制数进行算术运算; 对带符号数与无符号数进行乘、除运算。 特点: 大部分都影响标志位,不同指令影响不同: 都可以用于字节、字、双字的运算; 双操作数指令当源不为立即数时,必须有一个操作数为 寄存器;单操作数指令不能为立即数。 1)数的表示范围 a.无符号数 N位二进制数可表示的无符号数范围为0~2N -1。例如,8位二进制数00H~0FFH表示0~255,16位二进制数0000H~0FFFFH表示0~65535。 b.有符号数 N位二进制补码数可以表示的带符号数范围为 -2N-1~2N-1 -1。例如,8位二进制数可以表示-128~127,16位二进制数可以表示-32768~32767。 CF=1 OF=1 第3章 Pentium的指令系统 溢出问题 这样两个有/无符号数进行加减运算时,如果运算结果超出可表示的数值范围,会发生出错,产生溢出现象。 溢出只能出现在两个同号数相加和两个异号数相减的情况下。 通常判别溢出的方法用双高位法: 所谓双高位判别,即规定符号位(用CS表示)有进位时,CS=1,否则 CS=0。数值部分最高位(CP表示)有
文档评论(0)