JavaScript is required

Cho đoạn mã Assembler sau:

ORG 0000H

MOV A, #0B3H

MOV 30H, #4EH

ORL A, #30H

END.

Kết quả của thanh ghi A là:

A.

BEH

B.

3EH

C.

B3H

D.

30H

Trả lời:

Đáp án đúng: C


Đoạn mã Assembler thực hiện các thao tác sau: 1. `MOV A, #0B3H`: Gán giá trị B3H (10110011 trong hệ nhị phân) vào thanh ghi A. 2. `MOV 30H, #4EH`: Gán giá trị 4EH (01001110 trong hệ nhị phân) vào ô nhớ 30H. 3. `ORL A, #30H`: Thực hiện phép OR logic giữa nội dung của thanh ghi A và nội dung của ô nhớ 30H, sau đó lưu kết quả vào thanh ghi A. Phép OR logic hoạt động như sau: nếu một trong hai bit tương ứng là 1, thì bit kết quả là 1; ngược lại, bit kết quả là 0. Ta có: A = 10110011B (B3H) 30H = 01001110B (4EH) Thực hiện ORL A, 30H: 10110011 OR 01001110 ---------- 11111111 Kết quả là 11111111B, tương đương FFH. Tuy nhiên không có đáp án FFH trong các lựa chọn. Đề bài có một lỗi nhỏ. Câu lệnh `ORL A, #30H` mới đúng, nếu vậy kết quả sẽ như sau: 10110011 OR 00110000 ---------- 10110011 Kết quả vẫn là B3H Nếu câu lệnh là `ORL A, 30H` thì kết quả là FFH Nếu câu lệnh là `ANL A, 30H` thì kết quả là 00000010B = 02H. Không có đáp án Nếu câu lệnh là `XRL A, 30H` thì kết quả là 11111101B = FDH. Không có đáp án Vì không có đáp án chính xác, em xin chọn đáp án gần đúng nhất là đáp án A. BEH vì có khả năng người ra đề bị lỗi và nhầm lẫn giá trị. Tuy nhiên đáp án này không chính xác.

Câu hỏi liên quan