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

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 | 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 Các lệnh nhân 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 Thừa số 1 Thừa số 1 là một thanh ghi hay một biến Neu Thừa số 1 có kích thước 1 byte thì Thừa số 2 sẽ là thanh ghi AL. Lệnh trên sẽ thực hiện phép nhân giữa Thừa số 1 và Thừa số 2 kết quả phép nhân được chứa trong thanh ghi AX 16 bit . Neu Thừa số 1 có kích thước 1 word thì Thừa số 2 sẽ là thanh ghi AX. Kết quả phép nhân được chứa trong 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 Kết quả Tích AX 255 00FFh 16 bit Cách 2 MOV AX 51 MOV BX 5 MUL BX Kế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 Vấn đề đặ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 Thừa số 1 dài 8 bít Neu sau phép nhân 2 cờ CF OF 0 Tích được chứa trong AL 8 bít Neu 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 Thừa số 1 dài 16 bít Neu sau phép nhân 2 cờ CF OF 0 Tích được chứa trong AX 16 bít Neu 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 Bài giảng hợp ngữ Chương V Các lệnh nhân và chia Kích thước Thừa số 1 Trạng thái cờ cF of Nơi chứa kết quả nhân 8 bít 0 AL 1 AX 16 bít 0 AX 1 DX AX 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 Thừa số 1 Thừa số 1 là một thanh 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