Está en la página 1de 1

; Entrada:

; AX = primer double word (16 bits bajos)

; BX = segundo double word (16 bits bajos)

; Salida:

; DX:AX = resultado de la multiplicación (32 bits bajos: AX, 32 bits altos: DX)

mov dx, ax ; Almacena los 16 bits altos del primer double word en DX

mov ax, bx ; Almacena los 16 bits bajos del segundo double word en AX

mul dx ; Multiplica DX por AX y almacena el resultado en DX:AX

xchg ax, dx ; Intercambia los valores de AX y DX

mov bx, ax ; Almacena los 16 bits bajos del resultado en BX

mov ax, dx ; Almacena los 16 bits altos del resultado en AX

xor dx, dx ; Limpia DX

mul bx ; Multiplica BX por AX y almacena el resultado en DX:AX

add dx, ax ; Suma los 16 bits altos del segundo resultado a los 16 bits altos del primer
resultado

También podría gustarte