Có nhiều bộ vi điều khiển cấp thấp có ngăn xếp phần cứng để gọi / trả lại chương trình con và xử lý ngắt, nhưng gây khó khăn nếu không thể lưu trữ dữ liệu (biến) ở đó và thực hiện ngăn xếp dữ liệu phần mềm thuần túy sẽ không hiệu quả. 8051 là một ví dụ cổ điển và PIC cấp thấp (PIC12 / PIC16) là một ví dụ khác. Trên các máy này, ngăn xếp dữ liệu được mô phỏng bằng cách gán các vị trí lưu trữ tĩnh cho các biến tự động, với số lượng tái sử dụng của các vị trí này phụ thuộc vào độ tinh vi của trình biên dịch.
Lưu ý rằng nếu mô phỏng ngăn xếp được thực hiện theo cách này, điều đó có nghĩa là đệ quy - một hàm tự gọi trực tiếp hoặc gián tiếp - không hoạt động, vì mỗi phiên bản của hàm sử dụng lại các vị trí tĩnh giống nhau cho các biến được cho là "riêng tư" của nó. Một số trình biên dịch cho phép sử dụng đệ quy hạn chế (thường được thực hiện bằng phương tiện #pragma
nào đó), điều này sẽ khiến nó tạo ra một ngăn xếp dữ liệu thực sự bất kể nó làm mọi thứ chậm đi bao nhiêu.
Chỉ là một bên, đã có các kiến trúc CPU hoàn toàn không có ngăn xếp phần cứng, thậm chí không xử lý chương trình con / ngắt, bao gồm cả DEC PDP-8 và IBM System / 360. Trên các máy này, PC (địa chỉ trả về) và thanh ghi trạng thái (cho các ngắt) đã được lưu trong các thanh ghi hoặc vị trí bộ nhớ, nhưng trong mọi trường hợp tôi có thể nghĩ, máy cũng có các chế độ địa chỉ đủ linh hoạt để dễ dàng tạo một ngăn xếp với phần mềm.