JavaScript is required

Cho mã lệnh sau:

WAIT: JNB TF1, WAIT

Ta có thể thay thế câu lệnh trên bằng lệnh:

A.

JNB TF1, $

B.

JNB TF1, $+1

C.

JNB TF1, $+2

D.

JNB TF1, $+3

Trả lời:

Đáp án đúng: A


Câu lệnh "WAIT: JNB TF1, WAIT" có nghĩa là: nếu bit TF1 bằng 1 thì nhảy đến nhãn WAIT, nếu không thì thực hiện lệnh tiếp theo. Vòng lặp này sẽ tiếp tục lặp lại cho đến khi TF1 bằng 0. Để thay thế câu lệnh này, ta cần một lệnh nhảy có điều kiện mà nếu điều kiện đúng thì sẽ nhảy đến chính lệnh đó. Trong hợp ngữ 8051, ký hiệu '$' biểu thị địa chỉ hiện tại của lệnh. Do đó, "JNB TF1, $" sẽ nhảy đến chính nó nếu TF1 bằng 1, tương đương với vòng lặp vô hạn cho đến khi TF1 bằng 0. Các lựa chọn khác: - "JNB TF1, $+1": Nhảy đến địa chỉ hiện tại cộng 1 byte. Điều này không tương đương với việc lặp lại lệnh hiện tại. - "JNB TF1, $+2": Nhảy đến địa chỉ hiện tại cộng 2 byte. Điều này cũng không tương đương. - "JNB TF1, $+3": Nhảy đến địa chỉ hiện tại cộng 3 byte. Điều này cũng không tương đương. Vì vậy, đáp án đúng là A.

Câu hỏi liên quan