trucchi-com

tutti i trucchi che nessuno sà

 

AREA PERSONALE

 

TAG

 

ARCHIVIO MESSAGGI

 
 << Luglio 2024 >> 
 
LuMaMeGiVeSaDo
 
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        
 
 

FACEBOOK

 
 

CONTATTA L'AUTORE

Nickname: romoletto640
Se copi, violi le regole della Community Sesso: M
Età: 59
Prov: EE
 

 

« assembler per principiantiassembler per principianti »

assembler per principianti

Post n°11 pubblicato il 02 Giugno 2007 da romoletto640
 

Cap. 2 Il processore

 

Il processore non è altro che un chip elettronico simile a quelli che vedete su qualsiasi altro circuito elettronico (quei ragnetti neri di plastica con tante zampette metalliche intorno), bene, sedici di queste zampette il processore le usa per scegliere il blocco di memoria da cui vuole leggere o scrivere un numero, altre sedici le usa per l'indirizzo della cella all'interno del blocco stesso, inoltre possiede altre otto zampette su cui riceve o spedisce il numero per/da la memoria, vi sono inoltre molte altre zampette che servono per altri scopi, ma a noi non interessano.

Ma il processore dove mette questo numero? Esso possiede al suo interno delle celle di memoria simili a quelle della memoria stessa, ma più grandi, infatti si dice di processori a 16 BIT ossia 16 elementi invece di 8 che possono contenere in binario 1111111111111111 (65535 in decimale, non vi suona familiare questo numero?) ora queste celle si chiamano registri e vengono contrassegnati con delle sigle, così abbiamo il registro AX detto anche accumulatore, il BX, il CX, il DX, il DI e il SI detti anche registri indice (poi vedremo perché), il F (che ha funzioni particolari), il BP ed il SP, vi sono inoltre il IP non accessibile dai programmi, CS DS SS ES FS GS che contengono i numeri relativi a blocchi di memoria.

Quando caricate in memoria un programma e lo mandate in esecuzione il registro IP punta al primo numero del programma chiamato istruzione ed in base al valore di questo numero esegue una determinata azione che può essere per esempio INC AX, ossia incrementa il valore contenuto nel registro AX, quindi se AX conteneva 10 (2 in decimale) dopo l'operazione conterrà 11 (3 in decimale).

Come vedete sono istruzioni molto semplici ed infatti per eseguire una operazione un po' elaborata a volte occorrono decine di istruzioni di questo tipo. Se avete intenzione di scrivere un programma come Write in assembler è possibile, ma armatevi di una santa pazienza e prevedete di fermarvi davanti alla vostra tastiera per i prossimi dieci anni. In effetti l'assembler si usa solitamente per scrivere dei piccoli programmi dove conta molto la velocità di esecuzione o non è possibile scriverli con linguaggi più evoluti.

Pensate che per scrivere "Hello world" sullo schermo in basic basta scrivere:

PRINT "HELLO WORLD"

In C scrivereste:

PRINTF "HELLO WORLD";

In assembler invece la cosa è molto più laboriosa:

MOV ES, B800 'metti nel registro di segmento l'indirizzo del segmento video non

' grafico

MOV CX,11 ' metti in CX la lunghezza della stringa di testo

MOV DX, buffer 'metti in DX l'indirizzo in memoria della frase

MOV BX,0 'metti in BX l'indirizzo della prima cella del video

Etichetta:

MOV AX,(DX) 'metti in AX il primo carattere puntato da DX (H)

MOV ES:(BX),AX 'scrivi il carattere nella memoria video puntata da ES e BX

INC BX 'incrementa BX

INC DX 'incrementa DX

DEC CX 'decrementa il contatore di caratteri

JNZ etichetta 'se non è zero CX torna a etichetta e ricomincia da lì

Come vedete l'assembler è molto più prolisso, ma sappiate che anche le istruzioni del basic o del C inseriscono nel programma le stesse istruzioni assembler, magari molte di più perché devono tener conto che non sanno in anticipo la lunghezza della stringa, che chi scrive in assembler sa già in partenza. Alla prossima lezione.

 

 
 
 
Vai alla Home Page del blog
 
 

INFO


Un blog di: romoletto640
Data di creazione: 29/05/2007
 

CERCA IN QUESTO BLOG

  Trova
 

ULTIME VISITE AL BLOG

precious445benny1984fredom010pantera_blanca2NevegGgiallAea.joobleRjegu73developer68OLIO5wallygator54istrice82hiram9mrk2005rospetta000erconte5
 

CHI PUò SCRIVERE SUL BLOG

Solo l'autore può pubblicare messaggi in questo Blog e tutti gli utenti registrati possono pubblicare commenti.
 
RSS (Really simple syndication) Feed Atom
 
 

I MIEI LINK PREFERITI

 

© Italiaonline S.p.A. 2024Direzione e coordinamento di Libero Acquisition S.á r.l.P. IVA 03970540963