您的位置:首页 > 其它

汇编的除法和乘法

2015-09-26 13:34 851 查看
无符号数除法指令 DIV(DIVision)

格式: DIV OPRD

----

功能: 实现两个无符号二进制数除法运算.

----

说明: 1. 其中OPRD为任一个通用寄存器或存储器操作数.

----

2. 字节相除,被除数在AX中;字相除,被除数在DX,AX中,除数在OPRD中.

字节除法: (AL)<--(AX)/OPRD,(AH)<--(AX)MOD OPRD

字除法: (AX)<--(DX)(AX)/OPRD,(DX)<--(DX)(AX) MOD OPRD

3. 示例: DIV BETA [BX]
DIV CX;商在AX中,余数在DX中
DIV BL;商在AL中,余数在AH中

4. 当除法的商产生溢出时,例如字节除法的商大于0FFH,字除法的商大于0FFFFH将            置溢出标志位OF=1,并产生一个类型0溢出中断.

5. 本指令不产生有效的标志位。

无符号数乘法指令 MUL(MULtiply)

格式: MUL OPRD

----

功能: 乘法操作.

----

说明: 1. OPRD为通用寄存器或存储器操作数.

----

2. OPRD为源操作数,即作乘数.目的操作数是隐含的,即被乘数总是指定为累加器AX 或AL的内容.

3. 16位乘法时,AX中为被乘数.8位乘法时,AL为被乘数.当16位乘法时,32位的乘积            存于DX及AX中;8位乘法的16位乘积存于AX中.

4. 操作过程: 字节相乘:(AX)<--(AL)*OPRD,当结果的高位字节(AH)不等于0时,则            CF=1、OF=1.字相乘: (DX)(AX)<--(AX)*OPRD,当(DX)不等0时,则CF=1、OF=1

5. 示例 1: MUL BETA[BX]
MUL DI
MUL BYTE PTR ALFA

示例 2: 设在W1和W2字单元中各有一个16位数,若求其乘积并存于W3开始的字单                   元中,可用以下指令组实现:
MOV AX,W1
MUL W2
MOV W3,AX
MOV W3+2,DX
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: