Duda teorica, stack por hardware

Duda teorica, stack por hardware

de Sebastian Herrera Recondo -
Número de respuestas: 2

Buenas, estaba mirando el repaso del teórico de 8086 y en varios momentos hay referencias al "stack por hardware" que implementa 8086. Mi duda seria a que se refiere con por hardware, y que seria su contraparte por software. Muchas gracias!

En respuesta a Sebastian Herrera Recondo

Re: Duda teorica, stack por hardware

de Gustavo Brown -
Hola,
Se refiere a que hay cierto soporte por hardware en la CPU para manipular un stack (instrucciones y registros u otros recursos de hardware). En el caso de 8086 el stack se mantiene en memoria RAM (apuntado por el par de registros SS:SP) y se proveen instrucciones para trabajar con él (PUSH y POP) y otras que hacen uso del mismo (CALL y RET, PUSHF y POPF, INT e IRET).
Su contraparte por software sería por ejemplo utilizar algun(os) registro(s) para apuntar al tope de la pila e implementar las subrutinas que hacen PUSH y POP en código máquina (en muchos casos no es necesario una subrutina porque se precisan tipicamente 2 instrucciones para actualizar un stack).
Algunas arquitecturas (ej MIPS) no tienen soporte de stack por hardware. Tiene instrucciones "tipo call" que lo que hace es colocar en un registro el valor de "Program Counter", pero es responsabilidad del programador mantener un stack si se quiere mantener la pila de llamadas.

Saludos,
Gustavo