vfr skrev:bos> Nej, det är absolut inte förväntat resultat. Som det är nu så ger den inte fel, utan bara varning på en fullständigt ogiltig instruktion. Är den ogiltig, så är det ett fel.
Det där är dina egna åsikter som inte har så mycket att göra med vad som faktiskt gäller.
Eller menar du att det faktiskt skulle vara fullt tillåtet med lablar en bit in på raden?
Ja, vilket jag redan skrivit...
Ta en titt i manualen för MPASM:
Labels should (= bör, INTE "måste") start in column 1. They may (= kan) be followed by a colon (:), space, tab or the end of line. Labels must (= måste) begin with an alpha character or an under bar (_) and may contain alphanumeric characters, the under bar and the question mark.
Labels must not:
* begin with two leading underscores, e.g., __config.
* begin with a leading underscore and number, e.g., _2NDLOOP.
* be an assembler reserved word (see Reserved Words and Section Names).
Med andra ord, och som jag återigen redan skrivit tidigare: " dddddd" är inte ett reserverat ord, börjar inte med __ och börjar inte heller med _(siffra), alltså tolkas det som en label trots att det inte är i kolumn 1 (vilket i sig inte är ett förbud enligt första meningen).
Lägger du till ett mellanslag och ytterligare rappakalja (ej reserverade ord eller makron, eller annat) så kommer kompilatorn att klaga eftersom labeln redan är satt. De båda orden kommer inte att tolkas som en label eftersom en label får innehålla alfanumeriska tecken, "_" samt "?" (sista meningen i det citerade stycket).
Hur sjutton skall man (assemblern) då skilja på en label och en instruktion?
Med hjälp av reserverade ord och preprocessning av kod. Det är inget man själv behöver bekymra sig om, så jag förstår fortfarande inte vad det är som vållar såna problem med det här.