Как реализовать тип данных, например, стек, в сборке? - PullRequest
1 голос
/ 03 октября 2011

Мне нужно реализовать пользовательскую структуру данных в сборке.Желательно, чтобы оно было динамичным.Что-то вроде связанного списка в C ++ / Java, где каждый элемент указывает на следующий элемент.Обратите внимание, что размер каждого элемента может варьироваться.

Как я могу это сделать?

Ответы [ 2 ]

3 голосов
/ 03 октября 2011

То же, что и в C. Сборка имеет функции и адресные пространства. Начните с основ: какие функции должен иметь ваш стек? Отложите фактические структуры данных в сторону и сфокусируйтесь на общей картине.

Все, что вам нужно, - это функция push () и функция pop (), место для вставки этих элементов в память и счетчик, показывающий, сколько из этого пространства вы использовали.

О, вы, вероятно, должны проверить свои структуры данных перед запуском, так как ни в C ++, ни в Java (или в любом другом языке, по сути) объект не помещается в стек и не указывает на следующий объект в стеке. Это называется связанным списком.

1 голос
/ 03 октября 2011

Попробуйте реализовать свою структуру данных с помощью C, а затем посмотрите на сгенерированную сборку.Однако для ваших потребностей в памяти может потребоваться более тщательное рассмотрение (например, использование энергонезависимой или энергозависимой памяти для хранения элементов различного размера).

...