Получение ошибки узла ISTRUCT «непостоянный аргумент, предоставленный TIMES» при использовании IEND

#assembly #nasm

#сборка #nasm

Вопрос:

Вот часть моего кода:

 STRUC NODE
  .Value: resd 1    ;data field
  .NextPtr: resd 1  ;next pointer field
  .PrevPtr: resd 1  ;previous pointer field
  .size:
ENDSTRUC

SECTION .data
Head: ISTRUC Node
    AT Node.Value, dd 0
    AT Node.NextPtr, dd Second
    AT Node.PrevPtr, dd Tail
IEND

Second: ISTRUC Node
    AT Node.Value, dd 0
    AT Node.NextPtr, dd Tail
    AT Node.PrevPtr, dd Head
IEND

Tail: ISTRUC Node
    AT Node.Value, dd 0
    AT Node.NextPtr, dd Head
    AT Node.PrevPtr, dd Second
IEND
  

Я получаю ошибку в каждой строке, которую я использую «IEND»

Любая помощь была бы высоко оценена.

Комментарии:

1. Как вы определили Node

2. Вот так: УЗЕЛ СТРУКТУРЫ.Значение: resd 1 ; поле данных.NextPtr: resd 1; поле следующего указателя .PrevPtr: resd 1; предыдущее поле указателя .размер: ENDSTRUCT @MichaelPetch

3. Можете ли вы добавить это к своему вопросу, пожалуйста

4. Извините, обновлено. @MichaelPetch

Ответ №1:

nasm чувствителен к регистру. Вы объявляете свою структуру как NODE , но затем пытаетесь использовать ее как Node .

После изменения NODE на Node в первой строке nasm принимает код без ошибок.

Комментарии:

1. Большое вам спасибо. Я не могу поверить, что я этого не заметил.