mul

Tutorial: 汇编基础 Category: C语言 Published: 2026-04-07 13:58:26 Views: 20 Likes: 0 Comments: 0
1. 基础
8 b it 乘法: 1个字节, al, bl(也可以放在其他8位寄存器), 也可以 mul byte ptr ds:[0], 结果放在AX中
16 bit 乘法: AX, BX(也可以放在其他16位寄存器), 也可以 mul word ptr ds:[0], 结果:高16位放在DX, 低16位放在AX中
2. 举例
assume cs:code,ds:data,ss:stack

data segment
           db 50
           dw 5000
data ends

stack segment stack
            db 128 dup(0)
stack ends

code segment
      start:
            mov ax, stack
            mov ss,ax
            mov sp,128

            mov bx, data
            mov ds,bx

            mov ax,0
            mov al,100
            mov bl, 10
            mul bl
      ; AX=0064  BX=0E0A  CX=00B4  DX=0000  SP=0080  BP=0000  SI=0000  DI=0000
      ; DS=0E24  ES=0E14  SS=0E25  CS=0E2D  IP=0014   NV UP EI PL NZ NA PO NC
      ; 0E2D:0014 F6E3          MUL     BL
      ; -t
      ; AX=03E8  BX=0E0A  CX=00B4  DX=0000  SP=0080  BP=0000  SI=0000  DI=0000
      ; DS=0E24  ES=0E14  SS=0E25  CS=0E2D  IP=0016   OV UP EI PL NZ NA PE CY

            mov ax,0
            mov al,100
            mul byte ptr ds:[0]
      ; AX=0064  BX=0E0A  CX=00B4  DX=0000  SP=0080  BP=0000  SI=0000  DI=0000
      ; DS=0E24  ES=0E14  SS=0E25  CS=0E2D  IP=001B   OV UP EI PL NZ NA PE CY
      ; 0E2D:001B F6260000      MUL     BYTE PTR [0000]                    DS:0000=32
      ; -t
      ; AX=1388  BX=0E0A  CX=00B4  DX=0000  SP=0080  BP=0000  SI=0000  DI=0000
      ; DS=0E24  ES=0E14  SS=0E25  CS=0E2D  IP=001F   OV UP EI PL NZ NA PO CY

            mov ax,100
            mov bx,10000             ; (AX = FFFF = 65536 最大)
            mul bx                   ; F4240
      ; AX=0064  BX=2710  CX=00BC  DX=0000  SP=0080  BP=0000  SI=0000  DI=0000
      ; DS=0E24  ES=0E14  SS=0E25  CS=0E2D  IP=0025   OV UP EI PL NZ NA PO CY
      ; 0E2D:0025 F7E3          MUL     BX
      ; -t
      ; AX=4240  BX=2710  CX=00BC  DX=000F  SP=0080  BP=0000  SI=0000  DI=0000
      ; DS=0E24  ES=0E14  SS=0E25  CS=0E2D  IP=0027   OV UP EI PL NZ NA PO CY

            mov ax,100
            mul word ptr ds:[1]      ; 7A120
      ; AX=0064  BX=2710  CX=00C3  DX=000F  SP=0080  BP=0000  SI=0000  DI=0000
      ; DS=0E24  ES=0E14  SS=0E25  CS=0E2D  IP=002A   OV UP EI PL NZ NA PO CY
      ; 0E2D:002A F7260100      MUL     WORD PTR [0001]                    DS:0001=1388
      ; -t
      ; AX=A120  BX=2710  CX=00C3  DX=0007  SP=0080  BP=0000  SI=0000  DI=0000
      ; DS=0E24  ES=0E14  SS=0E25  CS=0E2D  IP=002E   OV UP EI PL NZ NA PO CY

            mov ax,4c00h
            int 21h

code ends
end start