JavaScript is required

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à:

A.

35H

B.

0DH

C.

45H

D.

31H

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.

Câu hỏi liên quan