汇编-MUL和IMUL乘法

发布时间 2023-11-26 08:10:35作者: 天子骄龙

32位模式下整数乘法可以实现32、16或8位的操作,64位下还可以使用64位操作数。

MUL执行无符号乘法,IMUL执行有符号乘法

MUL:无符号数乘法

32 位模式下,MUL(无符号数乘法)指令有三种类型:

执行 8 位操作数与 AL 寄存器的乘法;
执行 16 位操作数与 AX 寄存器的乘法;
执行 32 位操作数与 EAX 寄存器的乘法

MUL 指令中的单操作数是乘数。下表按照乘数的大小,列出了默认的被乘数和乘积。由于目的操作数是被乘数和乘数大小的两倍,因此不会发生溢岀,换句话说,两个8位二进制数的乘积不会超过16位

 如果乘积的高半部分不为零,则 MUL 会把进位标志位和溢出标志位置 1。

 

.386
.model flat,stdcall
.stack 4096

Include Irvine32.inc

.data
val2 WORD 0100h

.code
main PROC
    
    mov ax,2000h
    mul val2       ;DX:AX = 00200000h, CF = 1

    exit    
main ENDP
END  main