|
59 / 59 / 8
Регистрация: 29.06.2012
Сообщений: 188
|
||||||
Где хранить переменные в самописном компиляторе14.12.2012, 16:12. Показов 1581. Ответов 3
Метки нет (Все метки)
В целом моя задача написать небольшой убогий компилятор, в результате работы которого (он на С++) должен получится ассемблерный код, но в прочем это не важно. Столкнулась с большим количеством проблем, так как ассемблер мне выносит мозг).
Думая о том где хранить переменные, я пришла к примерно такому коду
Но вот думаю куда указывает этот регистр, на область данных (грубо говоря бесконечную), или на стек? Но ведь стек ограничен совсем небольшим куском, и скорее всего не стоит там хранить переменные. Рассудите меня, в том ли я направлении, или всё таки надо использовать что-то по другому. Какой день рою интернет и мало чего разберу. Безмерно благодарна. З.Ы. Использую NASM
0
|
||||||
| 14.12.2012, 16:12 | |
|
Ответы с готовыми решениями:
3
Комментирование кода в самописном компиляторе Где следует хранить переменные? Где хранить переменные для сеанса |
|
644 / 148 / 31
Регистрация: 11.02.2013
Сообщений: 277
|
|||||||||||||||||
| 13.02.2013, 10:27 | |||||||||||||||||
1. Оперативной памяти. 2. В регистрах. 3. В стеке. В памяти неудобно. Регистров мало, поэтому такой способ используется редко, хотя и самый быстрый.Стек пригоден для большого числа пременных, поэтому широко используется. Значит тебе, надо использовать стек.
Такой код используется для создания подпрограмм (процедур):
0
|
|||||||||||||||||
|
644 / 148 / 31
Регистрация: 11.02.2013
Сообщений: 277
|
|
| 15.02.2013, 01:20 | |
|
Немного ошибся на счёт соглашения вызова. В С/С++ исползуется CDECL(CCALL).
0
|
|
|
0 / 0 / 0
Регистрация: 31.12.2012
Сообщений: 10
|
||
| 09.03.2013, 07:26 | ||
|
ebp можно не использовать на самом деле, а обращаться к переменным через esp, правда нужно следить за его изменением при компиляции кода, т.е. он как бы в помощь компилятору, но это полная ерунда. Кстати ebp можно использовать для хранения в нём какого нибудь объекта и иметь к нему доступ быстрый.
0
|
||
| 09.03.2013, 07:26 | |
|
Помогаю со студенческими работами здесь
4
Где хранить переменные которые используются по всему проекту JScript.NET Evaluate: как и где хранить переменные скриптов При нажатии кнопки "Анализ" в самописном компиляторе бросается исключение. Исправить ошибки в проекте
где хранить текст файлы? или как хранить данные? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Символьное дифференцирование
igorrr37 13.02.2026
/ *
Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2).
Унарный минус обозначается как !
в-строка - входное арифметическое выражение в инфиксной(обычной). . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|