Cho đoạn mã Assembler sau:
ORG 0000H
MOV R1, #10
MOV A, #20
LAP: ADD A, #2
DJNZ R1, LAP
END.
Kết quả của thanh ghi A là:
Trả lời:
Đáp án đúng: D
Đoạn chương trình thực hiện một vòng lặp. Ban đầu, R1 được khởi tạo bằng 10 (tương đương 0AH), và A được khởi tạo bằng 20 (tương đương 14H).
Vòng lặp LAP: ADD A, #2; DJNZ R1, LAP
Lệnh ADD A, #2 cộng giá trị 2 vào thanh ghi A.
Lệnh DJNZ R1, LAP giảm R1 đi 1 và nhảy về LAP nếu R1 khác 0.
Vòng lặp này sẽ thực hiện 10 lần. Mỗi lần lặp, A sẽ tăng thêm 2. Vì vậy, sau 10 lần lặp, A sẽ tăng thêm 2 * 10 = 20.
Giá trị ban đầu của A là 20. Sau 10 lần lặp, giá trị của A sẽ là 20 + 20 = 40.
Vậy, kết quả cuối cùng của thanh ghi A là 40 (tương đương 28H theo hệ thập lục phân).