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 AX, BX, CX vào stack. Lệnh POP lấy giá trị từ đỉnh stack và gán cho thanh ghi tương ứng. Vì stack hoạt động theo cơ chế LIFO (Last In, First Out), nên giá trị được POP ra sẽ theo thứ tự ngược lại với thứ tự PUSH vào. Cụ thể: 1. PUSH AX (AX = 1000) 2. PUSH BX (BX = 2000) 3. PUSH CX (CX = 3000) Sau khi PUSH, stack sẽ chứa (từ đỉnh xuống đáy): 3000, 2000, 1000. Tiếp theo: 1. POP AX (AX = 3000) 2. POP BX (BX = 2000) 3. POP CX (CX = 1000) Vậy sau khi thực hiện các lệnh trên, ta có AX = 3000, BX = 2000, CX = 1000.

Câu hỏi liên quan