Tutorial Sezione Assembler

Dettaglio Istruzioni 

Le Schede del Tutorial

  Istruzioni della Cpu 80x86

SCHEDA n° 07 [I/ 090 di 198] 

    

    LEA - Carica la parte Offset di un puntatore
     
bulletQuesta istruzione copia l'effettivo valore esadecimale a 16 bit di una etichetta, passata come operando sorgente,  nel registro di Offset indicato dall'operando destinazione.
bulletIl registro coinvolto per ricevere l'offset del puntatore associato all'etichetta può essere uno qualunque dei registri a 16 bit (naturalmente esclusi quelli di segmento...).
bulletLe sue caratteristiche sono riassunte nella seguente tabella (leggi le istruzioni Legenda della Tabella):
         
         LEA Registro,Etichetta   Destinazione (offset) << valore word etichetta Sorgente
 

Esempio di Applicazione

Cicli di Clock Mem
Acces

Bytes
Flag   influenzate
Mnemonico Operandi 86 268 386 486 O D I T S Z A P C

LEA

SI,Depo02

2+EA 3 2 1 no 2,4                    
         
bulletLa tabella precedente sottolinea che nessuna flag viene alterata da questa operazione; la figura seguente mostra le risorse richieste da questa istruzione in funzione degli operandi coinvolti (leggi le istruzioni):
          

Addr

Codifica Masm

Sequenza Bytes

Istruzione

0100 55AA AA 55 Depo02 DW 55AAH
---- ---------------- ----------------- ------- ----------------------
0102
0106
010A
010E
0112
8D 36 0100
8D 3E 0100
8D 06 0100
8D 1E 0100
8D 0E 0100
8D 36 00 01
8D 3E 00 01
8D 06 00 01
8D 1E 00 01
8D 0E 00 01
LEA SI,Depo02
LEA DI,Depo02
LEA AX,Depo02
LEA BX,Depo02
LEA CX,Depo02
         
bulletE' importante sottolineare che il valore esadecimale a 16 bit scritto nel registro destinazione non è il contenuto della locazione puntata dall'etichetta ma l'indirizzo stesso della medesima locazione.
bulletIn effetti l'istruzione LEA SI,Testo01 svolge lo stesso compito della MOV SI, OFFSET Testo01, che appunto carica in SI il valore associato dall'assemblatore all'etichetta Testo01:
bulletoltre ad essere più compatta nella forma la prima è, per certi versi, addirittura migliore della seconda.
bulletper contro la seconda usa l'operatore OFFSET, che coinvolge un numero minore di bytes (BE 0103) rispetto alla prima (8D 36 0103).
bulletL'istruzione LEA torna molto utile nella lettura dei caratteri di una stringa o dei valori di una tabella; il codice seguente mostra una buona tecnica per scorrere i caratteri di un messaggio al fine di metterli a video; la nostra istruzione crea un puntatore (SI) alla stringa (Testo01) e lo usa per scaricarne il carattere corrente in AL, a beneficio della INT 10H (che si occupa della stampa a video); le operazioni hanno fine quando il byte corrente puntato da SI è il terminatore (cioè il byte a 00H):
          

Addr

Codifica Masm

Istruzione

0100
0103


----
0116
011A
011D
011F

0121
0123
0125

0127
0128
012A
EB 14 90
20 45 73 65 6D 70
69 6F 20 64 69 20
54 65 73 74 6F 00
----------------
8D 36 0103
2E 8A 04
3C 00
74 09

B7 00
B4 0E
CD 10

46
EB F0
90
INIZIO:
Testo01


;
-------
MAIN:
BIOme_:









BIOms_:
JMP MAIN
DB "Esempio di Testo",00H


-------------------------
LEA  SI,Testo01
MOV  AL,CS:[SI]
CMP  AL,00H
JZ   BIOms_

MOV  BH,00H
MOV  AH,0EH
INT  10H

INC  SI
JMP  SHORT BIOme_
NOP

    

Pagina Precedente Scheda n° 07 Pagina Successiva Istruzioni Cpu 80x86 Torna al Menu delle Schede del "Tutorial" Lezioni - Vai al DownLoad dei files DOC Torna al Menu del "Tutorial"
Istruzione 090 - LEA

    

SCHEDE » 1.Header EXE 2.PseudoOp MASM 3.Differenza tra Macro e Procedure
4.
Tabella Vettori 5.PSP 6.Stack 7.Istruzioni 80x86
8.La misura dell'Informazione 9.Numeri e Logica Binaria
TUTORIAL » Indirizzi Base | Registri Interni | Area Comunicaz. BIOS | Funzioni BIOS | Funzioni DOS
Prefazione | CAP 1 | CAP 2 | Schede | Palestra
Libreria ASM | Libreria MAC | Progetti ASM | Download | Info | Indice
Home 
Pascal|Manuali|Tabelle|Schede
Tutorial Assembly|Palestra Assembler
Aggiungi Giobe®2000 ai preferiti  
Motore
Ricerca
  Rendi Giobe®2000 pagina di Default
© 2001-2010  -  Studio Tecnico ing. Giorgio OBER
Tutti i diritti sono riservati