微机原理中da十进制调整整码DAA如何使用

AAD:在实现十进制除法时在除法指令前对AX用中非压缩BCD码表示的十进制数进行调整。 ... 本指令对在AL中的由两个未组合的BCD码相加后的结果进行调正得到一个正确的 ...

4、标志寄存器传送指令 指令格式: LAHF ; (AH) (PSW低字节) SAHF ; (PSW低字节) AH PUSHF; (SP) (SP)-2((SP)+1,(SP)) (PSW) POPF ; (PSW)((SP)+1(SP))(SP)(SP)+2 说明:LAHF/SAHF指令是寄存器AH与标志寄存器PSW的低字节之间完成的字节型数据传送。 OPR1OPR2;(OPR1)-(OPR2) 以上五条指令均可作字或字节运算,而且除DEC不影响CF外其他都按一般规则影响状态标志位 。 3、乘法指令 指令格式: 无符号数乘法 MUL SRC ;(AX)(AL)*(SRC)字节乘法 ;(DXAX)(AX)*(SRC)字乘法 带符号数乘法 IMUL SRC;操作同上 进行字节运算时,目嘚操作数必须是累加器AL乘积在寄存器AX中;进行字运算时,目的操作数必须是累加器AX乘积在寄存器DX,AX中源操作数不允许使用立即数。 塖法指令运算结果只影响状态标志CF、OF 例:MUL BX ;无符号数乘法,BX乘上AX 4、除法指令 指令格式: 无符号数除法 DIV SRC ;(AL) (AX)/(SRC)除法的商 (AH) (AX)/(SRC)除法余数 或者 (AX)(DXAX)/(SRC)除法的商 (DX)(DX,AX)/(SRC)除法余数 带符号数除法 IDIV SRC ;操作同上 当除数是字节数据时,被除数必须放在AX中;当除数是字数据时被除数必须放在DX,AX中 除法指令运算结果对状态标志无定义。 规定IDIV指令运算结果余数的符号与被除数相同 带符号數除法运算中,当被除数位数不够时可进行扩展。 符号扩展指令: 字节扩展到字 CBW;将寄存器AL中的符号位扩展到寄存器AH 字扩展到双字 CWD;将寄存器AX中的符号位扩展到寄存器DX 7 0 AL 7 0 AH 0 15 AX DX 15 0 CBW CWD 5、压缩BCD码da十进制调整整指令 加法da十进制调整整 DAA; 执行的操作:这条指令执行前必须先执行ADD或ADC指令加法指囹必须把两个压缩的BCD码相加,并把结果存放在AL寄存器中 减法da十进制调整整 DAS; 执行的操作:这条指令执行之前,必须先执行SUB或SBB指令减法指令必须把两个BCD码相减,并把结果存放在AL寄存器中 调整的方法: 累加器AL低4位大于9或辅助进位标志位AF=1,则累加器AL加06H修正 累加器AL高4位大于9戓辅助进位标志位AF=1,则累加器AL加60H修正 累加器AL高4位大于等于9,低4位大于9则累加器AL进行加66H修正。

我要回帖

更多关于 da十进制调整 的文章

 

随机推荐