乘法指令: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里

最后修改:2022 年 03 月 08 日
如果觉得我的文章对你有用,请随意赞赏