Выделение памяти из кучи или стека? - PullRequest
3 голосов
/ 15 февраля 2012

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

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

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

Ответы [ 2 ]

2 голосов
/ 15 февраля 2012

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

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

0 голосов
/ 15 февраля 2012

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...