JavaScript is required

Cho đoạn mã Assembler sau:MOV A, #0FFHADD A, #1JNZ SKIPADDC A, #02HSJMP EXITSKIP: ADDC A, #01HEXIT: ENDKết quả của thanh ghi A là:

A.

0FFH

B.

03H

C.

02H

D.

01H

Trả lời:

Đáp án đúng: C


Đoạn mã Assembler thực hiện các phép toán cộng trên thanh ghi A. 1. **MOV A, #0FFH**: Gán giá trị 0FFH (255 trong hệ thập phân) vào thanh ghi A. 2. **ADD A, #1**: Cộng giá trị 1 vào thanh ghi A. A = 0FFH + 1 = 100H. Vì A là thanh ghi 8-bit nên chỉ giữ lại 00H, cờ nhớ (Carry flag) sẽ được bật (CF = 1). 3. **JNZ SKIP**: Nhảy đến nhãn SKIP nếu cờ Z (Zero flag) khác 0. Vì A = 00H, nên cờ Z được bật (ZF = 1). Do đó, điều kiện nhảy không thỏa mãn và chương trình tiếp tục thực hiện lệnh kế tiếp. 4. **ADDC A, #02H**: Cộng giá trị 02H và cờ nhớ (CF) vào A. Vì CF = 1, nên A = 00H + 02H + 1 = 03H. 5. **SJMP EXIT**: Nhảy vô điều kiện đến nhãn EXIT. 6. **SKIP: ADDC A, #01H**: Nhãn này bị bỏ qua vì đã nhảy đến EXIT. 7. **EXIT: END**: Kết thúc chương trình. Giá trị cuối cùng của A là 03H. Vậy đáp án đúng là B. 03H

Câu hỏi liên quan