Cho đoạn mã Assembler sau:MOV A, #30HMOV R1, #0F0HMOV @R1, AMOV A, @R1Kết quả của thanh ghi R1 là:
Trả lời:
Đáp án đúng: C
Đoạn mã Assembler thực hiện các bước sau:
1. `MOV A, #30H`: Gán giá trị 30H vào thanh ghi A.
2. `MOV R1, #0F0H`: Gán giá trị F0H vào thanh ghi R1. Thanh ghi R1 bây giờ chứa địa chỉ F0H.
3. `MOV @R1, A`: Ghi nội dung của thanh ghi A (30H) vào ô nhớ có địa chỉ được trỏ bởi R1 (địa chỉ F0H). Như vậy, ô nhớ địa chỉ F0H sẽ chứa giá trị 30H.
4. `MOV A, @R1`: Đọc nội dung của ô nhớ có địa chỉ được trỏ bởi R1 (địa chỉ F0H) vào thanh ghi A. Ô nhớ địa chỉ F0H đang chứa giá trị 30H, nên A sẽ nhận giá trị 30H.
Câu hỏi yêu cầu xác định kết quả của thanh ghi R1. Ở bước thứ 2, ta thấy R1 được gán giá trị F0H và giá trị này không thay đổi trong suốt quá trình thực hiện đoạn mã. Vì vậy, giá trị của R1 là F0H.





