View Full Version : Esadecimali e assembler
Ragazzi,
devo fare l'esame di Calcolatori I a ingegneria però ho molte difficoltà nel capire le rappresentazioni, vi spiego:
ho un numero ad esempio 2 in base 10, lo posso rappresentare sia in base 16 che 2, cioè in binario
Ho letto che esiste una relazione diretta tra una cifra esadecimale e 4 cifre binarie, ma perchè? So che 2^4=16(quindi sono 16 elementi rappresentabili, però voglio conferma di aver capito bene), poi però mi sono trovato di fronte un numero esadecimale tipo A16BC9, ma sta usando 6 cifre(ma sono sempre bit?), ma 'è un limite fin quando si possono usare
Ma sei io voglio esprimere un numero enorme tipo 1000000000, allora lo sposso esprimere in esadecimale ma con 30bit(ma il bit non sono solo gli 0 e 1?) Non ci capisco più niente
Raga scusate le domande per voi saranno ddellle cretinate assurde però io mi ci sto perdendo.....:rolleyes: :cry:
Ragazzi,
devo fare l'esame di Calcolatori I a ingegneria però ho molte difficoltà nel capire le rappresentazioni, vi spiego:
ho un numero ad esempio 2 in base 10, lo posso rappresentare sia in base 16 che 2, cioè in binario
Ho letto che esiste una relazione diretta tra una cifra esadecimale e 4 cifre binarie, ma perchè? So che 2^4=16(quindi sono 16 elementi rappresentabili, però voglio conferma di aver capito bene), poi però mi sono trovato di fronte un numero esadecimale tipo A16BC9, ma sta usando 6 cifre(ma sono sempre bit?), ma 'è un limite fin quando si possono usare
Ma sei io voglio esprimere un numero enorme tipo 1000000000, allora lo sposso esprimere in esadecimale ma con 30bit(ma il bit non sono solo gli 0 e 1?) Non ci capisco più niente
Raga scusate le domande per voi saranno ddellle cretinate assurde però io mi ci sto perdendo.....:rolleyes: :cry:
beh di sicuro da come stai esponendo la cosa non c'ho capito nulla....vabbè che son ormai + di 10 anni che non ho + a che far con bin, hex e bagoli vari...
prova a schiarirti qui:
http://it.wikipedia.org/wiki/Sistema_numerico_binario
ma i testi non le spiegano ste cose :confused:
guarda la foto:
http://img183.imageshack.us/img183/3786/progass2.th.jpg (http://img183.imageshack.us/i/progass2.jpg/)
allora ho un codice di programma assembler 68000, allora io non capisco perchè vengono usati codici oprativi con sole 8 cifre e non di più perchè per 8032 si usano altri 4 zeri prima....
è un gran casino, però il linguaggio di per sè è facile
mi date una mano
yorkeiser
15-09-2009, 12:34
Ho capito davvero poco, comunque provo a risponderti per quel poco che ho capito:
Ho letto che esiste una relazione diretta tra una cifra esadecimale e 4 cifre binarie, ma perchè?
Perchè essendo 2^4 = 16, con una cifra esadecimale puoi esprimere 4 cifre binarie.
Ad esempio, se hai il numero binario 1001101000011111, per convertirlo in esadecimale:
- lo dividi in gruppi di 4 cifre, a partire dalla destra
1001.1010.0001.1111
- Converti ogni gruppo di 4 cifre binarie in un unico esadecimale
1001=9
1010=A
0001=1
1111=F
=>Risultato della conversione in esadecimale: 9A1F
poi però mi sono trovato di fronte un numero esadecimale tipo A16BC9, ma sta usando 6 cifre(ma sono sempre bit?), ma 'è un limite fin quando si possono usare
Puoi avere un numero di cifre esadecimali grande quanto vuoi, così come nessuno ti vieta di avere un decimale a 80 cifre. Il limite, chiaramente, è l'hardware.
non l'hai fatto il 68000 vero?
Perchè io no capisco perche passa da 8000 a 8006 e non a un altro indirizzo di memoria
yorkeiser
15-09-2009, 12:55
Ho programmato anche su Motorola 68000, una ventina d'anni fa più o meno. Ma la tua domanda non l'ho capita ugualmente: cos'è che passa da 8000 a 8006?
xciaoatuttix
15-09-2009, 13:53
Ragazzi,
devo fare l'esame di Calcolatori I a ingegneria però ho molte difficoltà nel capire le rappresentazioni, vi spiego:
ho un numero ad esempio 2 in base 10, lo posso rappresentare sia in base 16 che 2, cioè in binario. Ho letto che esiste una relazione diretta tra una cifra esadecimale e 4 cifre binarie, ma perchè? So che 2^4=16(quindi sono 16 elementi rappresentabili, però voglio conferma di aver capito bene), poi però mi sono trovato di fronte un numero esadecimale tipo A16BC9, ma sta usando 6 cifre(ma sono sempre bit?), ma 'è un limite fin quando si possono usare
ahahahha che casino che hai fatto non si capisce niente :Prrr:
Non preoccuparti alla fine è piu semplice di quanto credi.
Allora un numero in base 2 vuol dire che hai a disposizione 2 simboli per rappresentare i numeri ( 0 e 1), base 10 invece hai 10 simboli per rappresentare i numeri ( 0 1 2 3 4 5 6 7 8 9 ) e base 16 invece hai 16 simboli per rappresentare i numeri ( 0 1 2 3 4 5 6 7 8 9 a b c d e f ).
Quindi il numero 26 lo posso rappresentare in:
base 2: 11010
base 10: 26
base 16: 1a
Esiste una relazione diretta tra una cifra esadecimale e 4 cifre binarie. Ecco perchè:
Questi sono i numeri da 0 a 15 rappresentati in binario:
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
Questi sono i numero da 0 a 15 rappresentati in esadecimale ( o base 16 ):
0
1
2
3
4
5
6
7
8
9
a
b
c
d
e
f
Come vedi ho usato una solo cifra esadecimale per rappresentare un numero che in binario avrei rappresentato con 4 cifre.
Il numero A16BC9 è un qualsiasi numero rappresentato in base 16. I numeri possono essere di qualsiasi cifra, proprio come accade con i numeri decimali con cui hai a che fare ogni giorno.
Anche questo è un numero in base 16:
F7f865310F762F263764AA765D
Ma sei io voglio esprimere un numero enorme tipo 1000000000, allora lo sposso esprimere in esadecimale ma con 30bit(ma il bit non sono solo gli 0 e 1?) Non ci capisco più niente
UN BIT PUÒ VALERE 0 OPPURE 1 !!! Si possono avere numeri formati con miliardi di bit.
Questo è un numero di 30 bit:
101011010110101001110101100101
Se lo vuoi esprimere in base 16 allora lo dividi in gruppi da 4 partendo da destra come ti hanno segnalato prima di me.
Hai fatto un po di confusione. Un numero è solo un numero... come lo rappresenti è un' altra questione.
Il tutto si traduce in:
base 2 hai 2 simboli per rappresentare i tuoi numeri ( 0 e 1 )
base 10 hai 10 simboli
base 16 hai 16 simboli
E' tutto più semplice di quanto credi!!
allora ho sbagliato slide scusatemi, ecco quella giusta
http://img19.imageshack.us/img19/8675/95537709.th.jpg (http://img19.imageshack.us/i/95537709.jpg/)
raga allora perchè il PLC(program location counter si muove sempre ogni 6 , ma ogni 6 di che di bit, di esadecimali, nun ce capisco niente)
poi il 4279 e il codice operativo della CLR.W che poi dovrebbe essere una word quindi 16 bit, perchè non ci sono 16 cifre?
Mi sapreste spiegare passo passo tutti quei numeri, il programma nel linguaggio quello solo a lettere l'ho capito bene, però so i numeri che mi stanno mandando .....
grazie mille
yorkeiser
15-09-2009, 14:13
Si muove di 6 byte (un byte = 2 cifre esadecimali o 8 cifre binarie). Ovvero, se un'istruzione è codificata con 12 esadecimali, sono in realtà 6 byte, perciò il PC si incrementa di 6 byte per leggere l'istruzione successiva.
16 bit = 2 byte = 4 cifre esadecimali
6byte=>6*8bit=48bit
1 esad=4bit
48/4=6byte
però allora ho 00008032 nel PLC, mi dici perchè ci sono 4 zeri prima, il numero espresso è in esadecimale?
cioè quello che mi suona strano è che ci sono 8 cifre ma se il comando CLR.W è una word di 16bit?2byte=4 cifre decimali perchè ce ne stanno 8?
yorkeiser
15-09-2009, 14:50
Suppongo perchè 00008032 (che sì, è un esadecimale) è l'indirizzo di memoria della variabile, non il suo contenuto, come specificato in fondo al documento. Ora è passato tanto tempo e non ricordo di preciso, basterebbe una googlata, ma mi pare che il 68000 utilizzi degli indirizzi a 32 bit, al di là poi se la variabile è di tipo byte, word o double.
lunghezza è proprio 32bit
grazie mille cmq
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.