乘法指令:MUL 和 IMUL
▷乘法指令:(被乘数) × (乘数) = (结果)
- MUL命令是无符号数的乘法指令
- IMUL命令是带符号数的乘法指令
一般格式:
MUL 乘数
;无符号数的乘法运算
IMUL 乘数
;有符号数的乘法运算
如果字节乘法无法将结果保存为8位,则CF=OF=1;
如果字乘法无法将结果保存为16位,则CF=OF=1
例:AX=FFFFH,BX=FFFFH时比较MUL和IMUL指令执行
MUL BX : 65535×65535= FFFE0001H, DX=FFFEH, AX=0001H, CF=OF=1
IMUL BX : (-1)×(-1)= 1(00000001H), DX=0000H, AX=0001H, CF=OF=0
例:当AL=80H和BYT=FFH时比较MUL和IMUL指令执行
MUL BYT : 128×255= 32640(7F80H), AX=7F80H, CF=OF=1
IMUL BYT : -128×(-1)= 128(0080H), AX=0080H, CF=OF=1
例:编写汇编代码,当A、B和C是字节变量时,计算C=(A+B)×(A-B)。(这是一个有符号的乘法,不会发生溢出)
MOV AX,A ; 把A存储到AX里
ADD AX,B ; 计算A+B结果存储到AX里
MOV BX,A
SUB BX,B ; 计算A-B结果存储到BX里
IMUL BX ; 计算(A+B)×(A-B)
MOV C,AX ; 结果存储到C里
1 条评论
[…] 汇编(30)乘法除法指令/MUL指令/IMUL指令 […]