Danh mục

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

Số trang: 3      Loại file: pdf      Dung lượng: 52.73 KB      Lượt xem: 13      Lượt tải: 0    
Thu Hiền

Phí lưu trữ: miễn phí Tải xuống file đầy đủ (3 trang) 0
Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

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
Nội dung trích xuất từ tài liệu:
Bài giảng hợp ngữ - Chương 5Bà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À CHIA5.1 Các l nh nhân5.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 atrong thanh ghi AX (16 bit).+ N u có kích th c 1 word thì s là thanh ghi AX. K t quphé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à 5Gi 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êncá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àinguyê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ãngphí 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 tracá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: 39Bà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:AX5.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 nCá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à 2Gi 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 = 1Ví d 2: Hãy th c hi n phép chia -128 cho 4.Gi i: MOV AX, -128 MOV BL, 4 40Bà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 = 0Ví 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 = 05.2.2 Hi n t ng tràn trong phép chiaVí 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 yra. Khi ó h th ng s a ra thông báo: “Divide OverFlow”. 41

Tài liệu được xem nhiều: