JavaScript is required

Cho đoạn mã Assembler sau:

ORG 0000H

MOV R1, #2BH

CJNE R1, #2BH, NHAN

MOV A, #4BH

SJMP KETTHUC NHAN: MOV A, #0B4H

KETTHUC: END.

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

A.

4BH

B.

B4H

C.

2BH

D.

B2H

Trả lời:

Đáp án đúng: A


Đoạn mã Assembler thực hiện các bước sau: 1. **ORG 0000H**: Khai báo chương trình bắt đầu từ địa chỉ 0000H. 2. **MOV R1, #2BH**: Gán giá trị 2BH (43 theo hệ thập phân) vào thanh ghi R1. 3. **CJNE R1, #2BH, NHAN**: So sánh giá trị của thanh ghi R1 với giá trị 2BH. Nếu R1 khác 2BH, thì nhảy đến nhãn NHAN. Trong trường hợp này, R1 đang chứa giá trị 2BH, do đó điều kiện so sánh không thỏa mãn (R1 = 2BH), và chương trình **không** nhảy đến nhãn NHAN mà tiếp tục thực hiện lệnh kế tiếp. 4. **MOV A, #4BH**: Gán giá trị 4BH vào thanh ghi A. Do điều kiện CJNE không thỏa mãn nên lệnh này được thực hiện. 5. **SJMP KETTHUC**: Nhảy vô điều kiện đến nhãn KETTHUC. 6. **NHAN: MOV A, #0B4H**: Nhãn NHAN và lệnh gán giá trị 0B4H cho thanh ghi A. Vì chương trình không nhảy đến nhãn này (do CJNE không thỏa mãn), lệnh này không được thực hiện. 7. **KETTHUC: END**: Nhãn KETTHUC và kết thúc chương trình. Vì vậy, giá trị cuối cùng của thanh ghi A là 4BH.

Câu hỏi liên quan