Выделение памяти из кучи или из стека?

Я прочитал это, В 8085 начальный адрес процессора 00000H, Где как, в 8086 начальный адрес процессора FFFF0H,

Теперь я также узнал, что верхняя часть памяти heap пока внизу лежит stack, Что меня сейчас смущает, так это то, что в 8085 память выделяется из стека, а в 8086 - из кучи?

Пожалуйста, помогите мне очистить концепцию. Спасибо

2 ответа

Решение

Распределение кучи - это концепция более высокого уровня (C, Java и т. Д.), Чем на языке ассемблера, такого нет в сборке 808x. Вы не "выделяете" память.

С другой стороны, стек является нативной концепцией 808x, а также бесчисленных микропроцессоров (и виртуальных машин), он используется каждый раз, когда вы используете, например, "CALL" (ПК помещается в стек). Когда вы RET, адрес возврата ПК извлекается из стека. И вы можете помещать регистры / данные в стек.

Для обсуждения того, почему начальный адрес 8085 0000H (это четыре нуля, а не пять, поскольку процессор поддерживает только 16-битные адреса).

Что касается расположения стека: путем изменения SP Вы можете переместить стек туда, куда хотите, но, поскольку он растет вниз, просто имеет смысл переместить его в самый конец адресного пространства.

Другие вопросы по тегам