dal 2015 - visita n. 1977
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



La maggior parte degli insegnanti perde tempo a fare domande che mirano a scoprire ciò che l'alunno non sa.
Mentre la vera arte del fare domande dovrebbe mirare a scoprire ciò che l'alunno sa o che è capace di sapere.
Albert Einstein

Valid CSS!
pagina generata in 0.002 secondi