Cho đoạn mã Assembler sau:
ORG 0000H
MOV 30H, #45H
MOV 31H, 0C0H
MOV A, 30H
MOV B, #31H
MUL AB
END.
Kết quả của thanh ghi A là:
Trả lời:
Đáp án đúng: A
Đoạn mã Assembler thực hiện các bước sau:
1. `MOV 30H, #45H`: Gán giá trị 45H vào ô nhớ có địa chỉ 30H.
2. `MOV 31H, 0C0H`: Gán giá trị C0H vào ô nhớ có địa chỉ 31H.
3. `MOV A, 30H`: Gán nội dung của ô nhớ 30H (tức là 45H) vào thanh ghi A.
4. `MOV B, #31H`: Gán giá trị 31H (chứ không phải nội dung của ô nhớ 31H) vào thanh ghi B.
5. `MUL AB`: Thực hiện phép nhân giữa thanh ghi A và thanh ghi B. Tức là A * B = 45H * 31H. Chú ý rằng 45H và 31H là các số hệ thập lục phân.
- Chuyển sang hệ thập phân: 45H = 4 * 16 + 5 = 69; 31H = 3 * 16 + 1 = 49.
- Phép nhân: 69 * 49 = 3381.
- Chuyển 3381 sang hệ thập lục phân: 3381 = D35H
- Kết quả của phép nhân MUL AB được lưu trữ trong hai thanh ghi A và B. Thanh ghi A chứa byte thấp (LSB) và thanh ghi B chứa byte cao (MSB). Như vậy thanh ghi A sẽ chứa 35H và thanh ghi B chứa 0DH.
Vậy, sau khi thực hiện lệnh MUL AB, thanh ghi A sẽ có giá trị là 35H.





