Lệnh MUL và IMUL

Một phần của tài liệu Bài giảng hợp ngữ (assembly) (Trang 52 - 53)

Nhân có dấu và nhân không dấu

Trong phép nhân nhị phân số có dấu và số không dấu phải được phân biệt một cách rõ ràng. Ví dụ chúng ta muốn nhân hai số 8 bit 1000000 và 1111111 . Trong diễn dịch không dấu, chúng là 128 và 255. Tích số của chúng là 32640 = 0111111110000000b. Trong diễn dịch có dấu, chúng là -128 và -1. Do đó tích của chúng là 128 = 0000000010000000b . Vì nhân có dấu và không dấu dẫn đến các kết qủa khác nhau nên có 2 lệnh nhân :

MUL (multiply) nhân không dấu IMUL (integer multiply) nhân có dấu

Các lệnh này nhân 2 toán hạng byte hoặc từ. Nếu 2 toán hạng byte được nhân với nhau thì kết qủa là một từ 16 bit .Nếu 2 toán hạng từ được nhân với nhau thì kết qủa là một double từ 32 bit. Cú pháp của chúng là :

MUL source ; IMUL source ;

Toán hạng nguồn là thanh ghi hoặc vị trí nhớ nhưng không được là một hằng

Phép nhân kiểu byte

Đối với phép nhân mà toán hạng là kiểu byte thì

AX=AL*SOURCE ;

Phép nhân kiểu từ

Đối với phép nhân mà toán hạng là kiểu từ thì

DX:AX=AX*SOURCE

Ảnh hưởng của các lệnh nhân lên các cờ .

SF,ZF ,AF,PF : không xác định

sau lệnh MUL CF/OF = 0 nếu nửa trên của kết qủa(DX) bằng 0 =1 trong các trường hợp khác

sau lệnh IMUL CF/OF = 0 nếu nửa trên của kết qủa có bit dấu giống như bit dấu của nửa thấp .

= 1 trong các trường hợp khác Sau đây chúng ta sẽ lấy vài ví dụ .

Ví dụ 1 : Giả sử rằng AX=1 và BX=FFFFh

INSTRUCTION Dec product Hex Product DX AX CF/OF

MUL BX 65535 0000FFFF 0000 FFFF 0

IMUL BX -1 FFFFFFFF FFFF FFFF 0

Ví dụ 2 : Giả sử rằng AX=FFFFh và BX=FFFFh

49

MUL BX 4294836225 FFFE0001 FFFE 0001 1

IMUL BX 1 00000001 00000 0001 0

Ví dụ 3 : Giả sử rằng AX=0FFFh

INSTRUCTION Dec product Hex Product DX AX CF/OF

MUL BX 16769025 00FFE001 00FF E001 1 IMUL BX 16769025 00FFE001 00FF E001 1 Ví dụ 4 : Giả sử rằng AX=0100h và CX=FFFFh

INSTRUCTION Dec product Hex Product DX AX CF/OF

MUL BX 16776960 00FFFF00 00FF FF00 1

IMUL BX -256 FFFFFF00 FFFF FF00 0

Ví dụ 5 : Giả sử rằng AL=80h và BL=FFh

INSTRUCTION Dec product Hex Product DX AX CF/OF

MUL BL 128 7F80 7F 80 1

IMUL BL 128 00080 00 80 1

Một phần của tài liệu Bài giảng hợp ngữ (assembly) (Trang 52 - 53)