Trả lời:
Đáp án đúng: B
Trong kiến trúc tập lệnh của vi điều khiển 8051, lệnh `POP` được sử dụng để lấy dữ liệu từ đỉnh stack và lưu vào một thanh ghi hoặc địa chỉ bộ nhớ. Tuy nhiên, có những hạn chế về việc thanh ghi nào có thể được sử dụng với lệnh `POP`.
- `POP A`: Lệnh này hợp lệ, lấy giá trị từ đỉnh stack và gán cho thanh ghi A (Accumulator).
- `POP DPL`: Lệnh này hợp lệ, lấy giá trị từ đỉnh stack và gán cho thanh ghi DPL (Data Pointer Low byte).
- `POP SP`: Lệnh này không hợp lệ. Không có lệnh POP SP trong tập lệnh 8051. Giá trị của SP (Stack Pointer) thường được điều chỉnh trực tiếp bằng các lệnh như `MOV SP, #value` hoặc thông qua các lệnh gọi và trả về chương trình con (CALL/RET).
- `POP R0`: Lệnh này hợp lệ, lấy giá trị từ đỉnh stack và gán cho thanh ghi R0 (trong bank thanh ghi hiện tại).
Do đó, lệnh `POP SP` là lệnh sai trong các lựa chọn đã cho.