Abs62

Gold Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору blaro Цитата: push bp mov bp,sp add bp,2 | Это зачем? И где восстановление sp? Если в фунции требуется доступ к параметрам вызова или стековым переменным, делается так: Код: push bp mov bp, sp sub sp, xxxx ... mov sp,bp pop bp | Иначе в этом нет смысла. Если изменить sp, выделяя память под локальные переменные, и не восстановить его, программа грохнется - команда ret вытащит из стека не правильный адрес возврата, а день рождения бабушки. Что же до места хранения переменных, есть три варианта: 1. Статические переменные - память выделяется в сегменте данных при компиляции. 2. Автоматические переменные - память выделяется на стеке при входе в программу (то самое sub sp,100). 3. Динамические переменные - память запрашивается у операционной системы через соответствующие функции. Что конкретно требуется в задании?
---------- 0 программистов ругал сердитый шеф Потом уволил одного, и стало их FF |
|