Home Hardware Networking Programmazione Software Domanda Sistemi
Conoscenza del computer >> hardware >> CPU >> .

Differenza tra macro e procedure nel microprocessore?

Le macro e le procedure sono entrambi modi per creare codice riutilizzabile in linguaggio assembly. Tuttavia, ci sono alcune differenze fondamentali tra i due.

Macro

* Sono basati su testo

* Vengono espansi dall'assemblatore prima che inizi il processo di assemblaggio

* Può essere utilizzato per definire costanti, etichette e istruzioni

* Non può essere utilizzato per creare strutture di controllo (come loop e rami)

Procedure

* Sono basati su binario

* Sono memorizzati nel file eseguibile

* Può essere chiamato da altre parti del programma

* Può essere utilizzato per creare strutture di controllo

In generale, le macro sono più efficienti delle procedure perché non richiedono istruzioni macchina aggiuntive. Tuttavia, può essere difficile eseguire il debug delle macro perché non sono visibili nel codice assembly. È più semplice eseguire il debug delle procedure poiché è possibile eseguirle passo dopo passo nel debugger.

Ecco un esempio di macro in linguaggio assembly:

```

.macro inc(r)

addi r, r, 1

.endm

```

Questa macro incrementa il valore nel registro "r". Viene utilizzato come segue:

```

incr1; Incrementa il valore in r1

```

Ecco un esempio di procedura in linguaggio assembly:

```

inc:

aggiungi r1, r1, #1; Incrementa il valore in r1

bxlr; Ritorno dalla procedura

```

Questa procedura incrementa il valore nel registro "r1" e poi ritorna al chiamante. Si chiama così:

```

bl inc; Chiama la procedura inc

```

 

hardware © www.354353.com