In primo luogo, la risposta immediata alla tua domanda ...
Equ
Imposta il numero in pietra.
=
Imposta il numero finché non lo si modifica in seguito.
Attenzione !!! La definizione di "più tardi" può confondere le luci viventi di te; in particolare con più file sorgente.
Ecco un trucco utile che è possibile utilizzare con queste due direttive per definire una serie di numeri quando ...
- Volete nomi che rappresentano un valore unico (cioè, matematicamente "unico", come in, si vuole garantire che nessuno di loro sono gli stessi)
- in realtà non importa quello che sono
- si può decidere di aggiungere o eliminare questi valori come il vostro sviluppo progredisce
non lo sai sapere (quando inizi) esattamente quanti di questi si vorrà
The_Counter = 0
The_Counter = The_Counter + 1
Fred = The_Counter
The_Counter = The_Counter + 1
Barney = The_Counter
The_Counter = The_Counter + 1
Dino = The_Counter
The_Counter = The_Counter + 1
Arnold = The_Counter
The_Counter = The_Counter + 1
Mr_Slate = The_Counter
The_Counter = The_Counter + 1
Ora, come si può vedere, Fred, Barney, Dino, Arnold, Mr_Slate
potrebbero cambiare i loro valori con questo schema, e che potrebbe essere una cosa negativa; quindi, se vuoi assicurarti che Fred
et.al. non avere cambiato da qualcun altro (o voi stessi, per errore) in un'altra parte del file di origine, quindi è possibile combinare la =
e la Equ
nello schema di cui sopra come questo ...
The_Counter = 0
The_Counter = The_Counter + 1
Fred Equ The_Counter
The_Counter = The_Counter + 1
Barney Equ The_Counter
The_Counter = The_Counter + 1
Dino Equ The_Counter
The_Counter = The_Counter + 1
Arnold Equ The_Counter
The_Counter = The_Counter + 1
Mr_Slate Equ The_Counter
The_Counter = The_Counter + 1
In questo caso, saranno ancora tutti diversi l'uno dall'altro, ma i loro valori effettivi non saranno candidati al cambiamento.
Anche se questo esempio utilizza i personaggi di Flintstone per il nome, può essere facilmente modificato per qualcosa di più utile, come ...
- assegnazione di più gestori di interrupt e la loro priorità. È possibile spostare la posizione di due linee in quel codice sorgente e sperimentare con un sistema che consente di osservare le differenze quando un gestore di interruzioni riceve la priorità su un'altra e quindi accenderlo.
- Modificare i valori che si scelgono in una tabella di ricerca
- Assegnare un nome costante che tutti in uno sviluppo di gruppo possono utilizzare (come un'etichetta di testo, si spera che sia ovvio nel suo nome) senza mai doversi preoccupare esattamente di cosa quel valore intero specifico è
... e circa 47 altri buoni motivi che non riesco a pensare in questo momento.
Oh, solo un suggerimento; se si desidera utilizzare questo tipo di schema, trovo estremamente vantaggioso inserire queste direttive Equ
e =
nel proprio includendo il file; generalmente chiamato SomeFile.Equ
o qualsiasi altra cosa. Personalmente ho scoperto che, separando questo tipo di direttive assembler e cose simili dalle istruzioni del linguaggio macchina reale, scoprirai che il tuo codice è molto più leggibile, oltre che più manutenibile; molto altro tempo. (Solo il mio suggerimento.)
Buona domanda, e una che mi ha dato settimane di smarrimento me stesso.
Hai dimenticato di menzionare quale assemblatore usi. Si prega di aggiungere anche un tag. Inoltre, non utilizzare google o forum, ma prima consulta il manuale ufficiale del tuo assemblatore. – Jester
Vedere il manuale su [EQU] (https://msdn.microsoft.com/en-us/library/xkfsh225.aspx) e [=] (https://msdn.microsoft.com/en-us/library/ s3te6td9.aspx). TL; DR: 'EQU' può definire un testo numerico o riassegnabile costante,' = 'numerica riassegnabile. – Jester
OK, quindi se ho dichiarato a = 1 o b equ 1, sarebbero entrambi tipi di dati a 32 bit (DWORD)? – Backwardsman