Wenn versucht, die Länge einer Textzeichenfolge abzurufen, kann das Verwenden des Size-Operators zu unerwünschten Ergebnissen führen. In dem folgenden Beispiel wird MSG_LEN auf einen Wert 1 festgelegt aber scheint, dass es auf einen Wert von 11 festgelegt werden sollte:
MSG DB 'Darth Vader'
MSG_LEN EQU SIZE MSG
Zum Anfang
Der Wert von MSG_LEN soll 1 sein. Ist der Size-Operator definiert damit das LENGTH sein* wie dem Angeben in der Dokumentation geben Sie ein. Der Ausdruck LENGTH MSG wird 1 gleich sein (wenn der Length-Operator auf einer Datenbeschriftung angewandt wird, der Length-Operator gibt die Nummer Elemente, die von dem DUP-Operator erstellt werden, zurück; andernfalls es gibt 1 zurück) und der Ausdruck TYPE MSG wird 1 gleich sein. Deshalb wird das Variable MSG_LEN 1 gleich sein.
Zum Anfang
In Macro Assembler Version 6.0 kann der Sizeof-Operator zu Calulate verwandt werden, das der Gesamt-Anzahl der Byte einem Datenelement zuordnete. Eine das Berechnen des Werts einfache, den Sie wünschen Möglichkeit lautet wie folgt in Versionen vor 6.0:
MSG DB 'Darth Vader'
MSG_LEN EQU $-MSG
Zum Anfang