dal 2015 - visita n. 1747
lods-stos-movs
lods-stos-movs

 
 Clear Buffer   LODSB-STOSB Copy   MOVSB Copy   STOSB-W-D  
  Buf1        db "ciao??....."          ; messaggio di n caratteri/byte (1 carattere = 1 byte)

  _start:     MOV   AL,'z'              ; Dato di 1 byte caricato in AL
              MOV   [Buf1],AL            ; Scrittura in memoria del byte contenuto in AL
              MOV   [Buf1+1],AL          ; Scrittura in memoria del byte contenuto in AL
  Buf1        db "ciao??....."          ; messaggio di n caratteri/byte (1 carattere = 1 byte)

  _start:     MOV   AL,'z'              ; Dato di 1 byte caricato in AL
              MOV   EDI,Buf1            ; L'indirizzo Buf1 viene duplicato (copiato) nel registro EDI
              MOV   [EDI],AL            ; Scrittura in memoria del byte contenuto in AL
              INC   EDI                 ; Variazione dell'indirizzo, EDI punta alla locazione successiva
              MOV   ECX,5               ; Impostazione contatore per scrivere su 5 caselle
ancora:       MOV   [EDI],AL            ; Scrittura in memoria del byte contenuto in AL
              INC   EDI                 ; Variazione dell'indirizzo, EDI punta alla locazione successiva
              LOOP  ancora              ; Ricicla ECX volte
              MOV   ECX,5               ; Impostazione contatore per scrivere su 5 caselle
ancora:       STOSB                     ; Scrittura in memoria di AL e Variazione dell'indirizzo EDI
              LOOP  ancora              ; Ricicla ECX volte
              MOV   ECX,5               ; Impostazione contatore per scrivere su 5 caselle
              REP   STOSB               ; Ricicla ECX volte: Scrittura in memoria di AL e Variazione dell'indirizzo EDI
              MOV   AL,'z'              ; Dato di 1 byte caricato in AL
              MOV   EDI,Buf1            ; Indirizzo iniziale del buffer di memoria nel registro EDI
              MOV   ECX,5               ; Impostazione contatore nel registro ECX
              REP   STOSB               ; Ricicla ECX volte: Scrittura in memoria di AL e Variazione dell'indirizzo EDI
              MOV   AX,'zk'             ; Dato di 2 byte caricato in AX
              MOV   EDI,Buf1            ; Indirizzo iniziale del buffer di memoria nel registro EDI
              MOV   ECX,5               ; Impostazione contatore nel registro ECX
              REP   STOSW               ; Ricicla ECX volte: Scrittura in memoria di AX e Variazione dell'indirizzo EDI
                                        ; Ogni volta EDI viene incrementato automaticamente di 2
                                        ; Alla fine saranno scritti:  5x2=10 byte
              MOV   EAX,'zkst'          ; Dato di 4 byte caricato in EAX
              MOV   EDI,Buf1            ; Indirizzo iniziale del buffer di memoria nel registro EDI
              MOV   ECX,5               ; Impostazione contatore nel registro ECX
              REP   STOSW               ; Ricicla ECX volte: Scrittura in memoria di EAX e Variazione dell'indirizzo EDI
                                        ; Ogni volta EDI viene incrementato automaticamente di 4
                                        ; Alla fine saranno scritti:  5x4=20 byte

















Menù
Introduzione
I registri del Pentium
Il modello della memoria
Interazione CPU-RAM
I Servizi Linux - Int 80h
I File in Linux
Schema programma NASM
Esempi Write/Read
Esercizi
lods-stos-movs
gcc + nasm
Gestione Command Line
Stack
Stack-Esercizi
Libreria Funzioni Base
Esercizi con la Libreria
Libreria Macro Base
Test 5 esercizi


Sistemi di numerazione
Elementi Bistabili
Strutture di Controllo
Istruzioni JMP
Hello World
I/O di Testo
Command Line
Colori e Macro
Introduzione I/O
Porta Parallela


AppuntiAsm-386.html
Linux ELF Howto
Linux Assembly Howto
Il linguaggio PC Assembly
Assembly di Paul A.Carter
Assembly di Claudio Daffra



Chi semina virtù, fama raccoglie.
Leonardo da Vinci

Valid CSS!
pagina generata in 0.002 secondi