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°12 pubblicato il 02 Giugno 2007 da romoletto640
 

Cap. 3 I registri

 

Nella lezione precedente abbiamo visto che in assembler le istruzioni sono del tipo MOV AX,25 ecc. ecc., cosa vuol dire? Semplicemente che questa istruzione andrebbe scritta nel file .EXE .COM con i corrispondenti numeri, ossia B8 C0 19 00, capirete che letti così questi numeri non significano un granché per chi li legge, mentre per il processore è tutto chiaro, lui li interpreta in questo modo: Vogliono che prenda il valore 0019h (25 in decimale) e lo metta nel registro AX. Nota bene: in memoria viene messo prima il valore basso (19h) e poi il valore alto 00. Questa è una convenzione legata al progetto originale dei primi processori, i processori della Motorola, invece, usano il contrario, ma non preoccupatevi di queste sottigliezze, poiché voi scrivete il numero come lo scrivereste su un foglio e penserà il compilatore a metterli nel giusto ordine.

Ora c'è un particolare che avrete notato benissimo, il registro AX è a 16 bit e quindi si aspetta un valore a 16 bit, ma 25 entra benissimo in 8 bit, ma lui è testardo vuole 16 bit e noi lo accontentiamo portando il valore a 16 bit con l'aggiunta di uno zero, 0019h, in alternativa avremmo potuto caricare 25 in AL e lui non avrebbe protestato, ma AH sarebbe rimasto al suo valore originale, e questo se non ci creava problemi era la cosa più logica, ma se volevo 25 in tutto AX la soluzione è quella usata nell'esempio.

D'ora in poi, per comodità, per indicare i numeri aggiungerò una 'h' finale se il numero è decimale, una 'b' finale se il numero è binario e niente se il numero è decimale.

Visto che abbiamo conosciuto i registri approfondiamo questo importante argomento; Abbiamo visto che esistono 8 registri (AX,BX,CX,DX,DI,SI,SP,BP). Tralasciamo per ora i registri SP e BP perché sono usati per speciali funzioni che descriverò in un'altra lezione, dunque, i 6 rimanenti sono registri a 16 bit e possono contenere numeri fino a 65535 ossia FFFFh, ma se io volessi operare su numeri a 8 bit? Si può fare ragazzi.

I progettisti della INTEL hanno pensato bene di dividere i registri in 2 sottoregistri da 8 bit l'uno, quindi il registro AX è formato dai due sottoregistri AH e AL, ovviamente AL (L sta per low basso) sono i primi 8 bit di AX a partire da destra, , mentre AH sono gli altri 8 (H sta per high alto), e questo vale per tutti i quattro registri base (AX,BX,CX,DX), non esistono per SI e DI, ma tanto non servirebbero, visto l'uso cui sono destinati questi ultimi due.

Quindi l'istruzione vista prima MOV AX,25 caricherebbe il valore 25 nel registro AL ed il valore 0 nel registro AH e l'aspetto complessivo di AX sarebbe 0019h, ora è anche chiaro che scrivendo i numeri nel formato esadecimale si riesce chiaramente a vedere i valori presenti nei singoli sottoregistri.

Chiaramente queste istruzioni scritte nella forma MOV XX,YY vanno poi passate ad un compilatore, ossia un programma che legge ciò che voi avete scritto e lo trasforma nella giusta sequenza di numeri leggibili dalla CPU.

I REGISTRI DI SEGMENTO

Abbiamo visto nella lezione precedente che la memoria è divisa in blocchi da 64Kbyte ciascuno e che i registri di segmento selezionavano il blocco desiderato, ma perché esistono 6 registri? E qui ti volevo, dunque per capire il perché bisogna capire come è strutturato un programma quando viene caricato in memoria.

:

 
 
 
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