JavaScript is required

Giả sử có AX=1000, BX=2000, CX=3000, sau khi thực hiện các lệnh: PUSH AX – PUSH BX – PUSH CX – POP AX – POP BX – POP CX. Sẽ được:

A.

AX=1000, BX=2000, CX=3000

B.

AX=3000, BX=1000, CX=2000

C.

AX=3000, BX=2000, CX=1000

D.

AX=2000, BX=1000, CX=3000

Trả lời:

Đáp án đúng: B


Đề bài cho biết giá trị ban đầu của các thanh ghi AX, BX, CX. Sau đó thực hiện các lệnh PUSH và POP. Các lệnh PUSH đẩy giá trị của thanh ghi vào stack. Thứ tự PUSH là AX, BX, CX, do đó, trên stack, CX nằm trên cùng, sau đó là BX và cuối cùng là AX. Các lệnh POP lấy giá trị từ stack ra và gán vào thanh ghi. Thứ tự POP là AX, BX, CX, do đó: - POP AX: Lấy giá trị trên cùng của stack (CX = 3000) và gán cho AX. Vậy AX = 3000. - POP BX: Lấy giá trị tiếp theo trên stack (BX = 2000) và gán cho BX. Vậy BX = 2000. - POP CX: Lấy giá trị cuối cùng trên stack (AX = 1000) và gán cho CX. Vậy CX = 1000. Vậy sau khi thực hiện các lệnh, ta có: AX = 3000, BX = 2000, CX = 1000.

Câu hỏi liên quan