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: C


Các lệnh PUSH đẩy giá trị của các thanh ghi lên stack theo thứ tự AX, BX, CX. Sau đó, các lệnh POP lấy các giá trị từ stack ra và gán cho các thanh ghi theo thứ tự AX, BX, CX. Vì stack hoạt động theo cơ chế LIFO (Last In, First Out – Vào sau ra trước), nên giá trị cuối cùng được đẩy vào stack (CX=3000) sẽ được lấy ra đầu tiên và gán cho AX. Tương tự, BX sẽ nhận giá trị đã được đẩy vào trước đó (BX=2000), và CX sẽ nhận giá trị đầu tiên được đẩy vào stack (AX=1000). Như vậy: - AX = 3000 - BX = 2000 - CX = 1000

Câu hỏi liên quan