intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài giảng hợp ngữ - Chương 5

Chia sẻ: Nguyen Nhi | Ngày: | Loại File: PDF | Số trang:3

116
lượt xem
19
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Tài liệu tham khảo Bài giảng hợp ngữ gồm 9 chương - Chương 5 Các lệnh nhân và chia

Chủ đề:
Lưu

Nội dung Text: Bài giảng hợp ngữ - Chương 5

  1. Bài gi ng h p ng Ch ng V: Các l nh nhân và chia CH NG V: CÁC L NH NHÂN VÀ CHIA 5.1 Các l nh nhân 5.1.1 L nh MUL (Multiply) L nh này dùng th c hi n phép nhân i v i các s không d u. Cú pháp l nh: MUL : là m t t hanh ghi hay m t bi n + N u có kích th c 1 byte thì s là thanh ghi AL. L nh trên th c hi n phép nhân gi a và , k t qu phép nhân c ch a trong thanh ghi AX (16 bit). + N u có kích th c 1 word thì s là thanh ghi AX. K t qu phép nhân c ch a t rong hai thanh ghi DX:AX (32 bit). Ví d : Hãy th c hi n phép nhân hai s : 51 và 5 Gi i: Cách 1: MOV AL, 51 MOV BL, 5 MUL BL t qu : Tích = AX = 255 = 00FFh (16 bit) Cách 2: MOV AX, 51 MOV BX, 5 MUL BX t qu : Tích = DX:AX = 255 = 0000 00FFh (32 bit) Nh n xét: C hai cách trên u cho cùng m t k t qu : Tích = 255 (8 bit: 1111 1111b). Tuy nhiên cách 1 v n ph i dùng m t thanh ghi 16 bít ch a k t qu này. Cách 2 quá lãng phí tài nguyên vì nó ph i dùng t i 2 thanh ghi 16 bít ch a m t giá tr dài 8 bít! Vn t ra là ph i xác nh c dài c a k t qu phép nhân nh m tránh s lãng phí tài nguyên trong các thao tác ti p theo. Vi c này c th c hi n b ng cách ki m tra các c CF và OF: • Tr ng h p 1: dài 8 bít: + N u sau phép nhân 2 c CF/OF = 0: Tích c ch a trong AL (8 bít) + N u sau phép nhân 2 c CF/OF = 1: Tích c ch a trong AX (16 bít) • Tr ng h p 2: dài 16 bít: + N u sau phép nhân 2 c CF/OF = 0: Tích c ch a trong AX (16 bít) + N u sau phép nhân 2 c CF/OF = 1: Tích c ch a trong DX:AX (32 bít) Sau ây là b ng t ng h p: 39
  2. Bài gi ng h p ng Ch ng V: Các l nh nhân và chia Kích th c Tr ng thái i ch a CF/OF t qu nhân 0 AL 8 bít 1 AX 0 AX 16 bít 1 DX:AX 5.1.2 L nh IMUL (Integer Multiply) L nh này dùng th c hi n phép nhân i v i các s có d u. Cú pháp l nh: IMUL : là m t t hanh ghi hay m t bi n Các v n ã trình bày v i l nh MUL trên u có th áp d ng cho l nh IMUL. Ví d : Hãy th c hi n phép nhân hai s : -64 và 2 Gi i: MOV AL, 2 MOV BL, -64 IMUL BL t qu : Tích = AX = -128 (th c ch t ch ch a trong AL vì k t qu dài 8 bit = 80h) 5.2 Các l nh chia (Divide) 5.2.1 Cú pháp l nh L nh chia c ng có hai d ng dùng cho các s không d u và có d u: DIV ;Dùng cho s không d u IDIV ;Dùng cho s có d u : là m t t hanh ghi hay m t bi n + N u có kích th c 1 byte thì S b chia s c ch a trong AX (2 byte). t qu : Th ng s ch a trong AL, S d ch a trong AH. + N u có kích th c 2 byte thì S b chia s c ch a trong DX:AX (4 byte). t qu : Th ng s ch a trong AX, S d ch a trong DX. Ví d 1: Hãy th c hi n phép chia 65 cho 2. Gi i: MOV AX, 65 MOV BL, 2 DIV BL t qu : Th ng = AL = 32 S d = AH = 1 Ví d 2: Hãy th c hi n phép chia -128 cho 4. Gi i: MOV AX, -128 MOV BL, 4 40
  3. Bài gi ng h p ng Ch ng V: Các l nh nhân và chia IDIV BL t qu : Th ng = AL = -32 S d = AH = 0 Ví d 3: Hãy th c hi n phép chia -1024 cho 256. Gi i: Vì s chia b ng 256 (là m t s 16 bit) nên s b chia ph i ch a trong DX:AX, t c là DX:AX = -1024. Nh ng -1024 có th ch a t r n v n trong thanh ghi AX (16 bit), mu n chuy n nó thành 32 bit c n s d ng l nh CWD (Convert Word to Double Word). L nh này s chuy n l u có d u d ng Word trong AX thành d li u có d u dài 2 Word trong DX:AX. MOV AX, -1024 CWD MOV BX, 256 IDIV BX t qu : Th ng = AX = -4 S d = DX = 0 5.2.2 Hi n t ng tràn trong phép chia Ví d : Hãy th c hi n phép chia 512 cho 2. Gi i: MOV AX, 512 MOV BL, 2 DIV BL K t qu phép chia b ng 256, không th ch a trong thanh ghi AL: Hi n t ng tràn x y ra. Khi ó h th ng s a ra thông báo: “Divide OverFlow”. 41
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2