Cho đoạn mã Assembler sau:
ORG 0000H
MOV R0, #00H
DEC R0
END.
Kết quả của thanh ghi R0 là:
Trả lời:
Đáp án đúng: B
Đoạn mã Assembly được thực thi như sau:
1. **ORG 0000H**: Chỉ thị này xác định địa chỉ bắt đầu của chương trình là 0000H. Tuy nhiên, nó không ảnh hưởng đến giá trị của thanh ghi R0.
2. **MOV R0, #00H**: Lệnh này gán giá trị 00H (số thập lục phân) cho thanh ghi R0. Nói cách khác, R0 = 0.
3. **DEC R0**: Lệnh này giảm giá trị của thanh ghi R0 đi 1. Vì R0 đang chứa giá trị 00H, sau khi giảm đi 1, R0 sẽ chứa giá trị FFH (số thập lục phân). Đây là do việc giảm một số 0 (00H) trong hệ số 8 bit sẽ dẫn đến giá trị lớn nhất có thể biểu diễn được trên 8 bit, là 255 (FFH).
4. **END**: Kết thúc chương trình.
Do đó, sau khi thực hiện đoạn mã, giá trị của thanh ghi R0 sẽ là FFH.