Инициализация массива в ассемблере - PullRequest
4 голосов
/ 17 июля 2011

Я только начал изучать ASM, у меня есть опыт C, но я думаю, это не имеет значения.В любом случае, как я могу инициализировать массив из 12 элементов DT с 0, и как не инициализировать его?

Я использую FASM.

Ответы [ 2 ]

0 голосов
/ 17 июля 2011

Просто используйте директиву Резервировать данные и резервируйте 12 ТБ:

array:          rt 12
0 голосов
/ 17 июля 2011

Поскольку массивы - это просто непрерывный кусок памяти, элементы которого располагаются один за другим, вы можете сделать что-то подобное в NASM (не уверен, поддерживает ли FASM директиву times, но вы можете попробовать):

my_array:
    times 12 dt 0.0

Это расширяется, когда ваш источник собран в:

my_array:
    dt 0.0
    dt 0.0
    dt 0.0
    dt 0.0
    dt 0.0
    dt 0.0
    dt 0.0
    dt 0.0
    dt 0.0
    dt 0.0
    dt 0.0
    dt 0.0
...