![]() |
Show 150 posts per page |
.dsy:it. (http://www.dsy.it/forum/)
- Architettura degli elaboratori e delle reti (http://www.dsy.it/forum/forumdisplay.php?forumid=210)
-- [architettura]comando jal (http://www.dsy.it/forum/showthread.php?threadid=12077)
[architettura]comando jal
ciao ragazzi!
spero che voi mi possiate aiutare!!
allora il mio problema è questo:
io so che il comando jal è composto da 32 bit come tutti del resto, ma c'è una cosa che non riesco a capire!!
nel bit field 25-0 ci va il target!ma..il target è l indirizzo dell istruzione a cui salta o cosa??
per esempio...
[0x0040003c] 0x0c100017 jal 0x0040005c [Foglia] ; 31: jal Foglia
il codice in esadecimale di jal è 0x0c100017
quindi in binario diventa:
0000-1100-0001-0000-0000-0000-0001-0111
i primi sei bit (da sinistra) sono per l opcode(0x3) mentre i restanti sono x il target!
ma questo 00-0001-0000-0000-0000-0001-0111
che cosa vuol dire?
non corrisponde a nessun indirizzo del text segment o data segment!
chi mi puo' aiutare??
grazie mille a chi mi sa dare una risposta!!
__________________
"ki ha scritto queste stronzate!!??" disse il cieco toccando una grattugia!
I bit [25-0] sono l'indirizzo in memoria a cui viene esteso il segno per 2 posizioni e a cui viene impostato il Program Counter già aumentato di 4 (o 1 parola). Questà è la teoria..
Nel caso pratico devi fare un estensione del segno di 00-0001-0000-0000-0000-0001-0111 (quindi 0000-0001-0000-0000-0000-0001-0111).. che però non cambia l'indirizzo...
per caso 32 bit dopo c'è qualcosa? (32 bit-> 4 parole (1 parola -> 8 bit)). Magari è già pensato aumentato di 4 parole... Anche se non dovrebbe perchè dovrebbe essere una cosa hardware, non del compilatore...
sicuro che 0x0c100017 sia il codice della jal ?
__________________
Non ti perdere di coraggio se ti tocca lavorare molto e raccogliere poco.....
Originally posted by mark
sicuro che 0x0c100017 sia il codice della jal ?
si esatto è il codice dell istruzione!
mentre quello alla sua sinistra è l indirizzo nel text segment!
cmq si nel bit field 25-0 ci va il target, l indirizzo dell istruzione a cui salta!
e questo bit field corrisponde a
00-0001-0000-0000-0000-0001-0111
che non corrisponde all indirizzo a cui dovrebbe saltare..o meglio..non riesco a tirarlo fuori da questi bit....
__________________
"ki ha scritto queste stronzate!!??" disse il cieco toccando una grattugia!
Re: [architettura]comando jal
concordo, ho verificato ![]()
suo ---> 00001100000100000000000000010111
mio ---> 00001100000100000000000000001001
__________________
Non ti perdere di coraggio se ti tocca lavorare molto e raccogliere poco.....
cmq quello che mi compare nel mips assembler è
[0x0040003c] 0x0c100017 jal 0x0040005c [Foglia] ; 31: jal Foglia
dove Foglia è l etichetta del blocco di istruzioni a cui salta!
Foglia:
add $t0,$a0,$a1 # $a0 + $a1
add $t1,$a2,$a3 # $a2 + $a3
sub $t2,$t0,$t1 # ($a0 + $a1) - ($a2 + $a3)
che comincia a partire dall indirizzo 0x0040005c
io non ci sto capendo + nulla...il target mi sa che si riferisce a qualcos altro..e non all indirizzo a cui salta..oppure fa qualke calcolo prima di mettere l indirizzo nel campo target!BOH!
__________________
"ki ha scritto queste stronzate!!??" disse il cieco toccando una grattugia!
Re: Re: [architettura]comando jal
Originally posted by mark
concordo, ho verificato
suo ---> 00001100000100000000000000010111
mio ---> 00001100000100000000000000001001
mi sa che devi sommare l'offset o BASE = 0x00400000 dal quale parte lo SPIM
__________________
Non ti perdere di coraggio se ti tocca lavorare molto e raccogliere poco.....
scusami mark...ma ke hai fatto?
__________________
"ki ha scritto queste stronzate!!??" disse il cieco toccando una grattugia!
mark..no...
il text segment parte da 0x00400000..
e poi nei bit
00-0001-0000-0000-0000-0001-0111
se volessi portarlo in base 10 mi vien fuori un 2^20=1048576
più 16+4+2+1=1048599....BOH!!!
__________________
"ki ha scritto queste stronzate!!??" disse il cieco toccando una grattugia!
ho corretto, andavo a memoria
__________________
Non ti perdere di coraggio se ti tocca lavorare molto e raccogliere poco.....
come si fa a allegare un file?cosi magari se volete ve lo studiate!;P
e mi trovate la soluzione!!![]()
__________________
"ki ha scritto queste stronzate!!??" disse il cieco toccando una grattugia!
c'e' un elenco dei capitoli da studiare per il compito di archi?
se quello è il copia e incolla della seconda colonna del programma SPIM mi viene il dubbio che l'indirizzo si riferisca a quello fisico del PC e non a quello virtuale dello SPIM
__________________
Non ti perdere di coraggio se ti tocca lavorare molto e raccogliere poco.....
il programma è il pcspim...e la seconda colonna da sinistra indica il codice dell istruzione esadecimale.
la seconda colonna da destra invece, cioè
0x0040005c [Foglia]
indica l indirizzo nel textsegment dell istruzione, anzi etichetta a cui salta.
__________________
"ki ha scritto queste stronzate!!??" disse il cieco toccando una grattugia!
Originally posted by superfabius
c'e' un elenco dei capitoli da studiare per il compito di archi?
Originally posted by karmo
Foglia:
add $t0,$a0,$a1 # $a0 + $a1
add $t1,$a2,$a3 # $a2 + $a3
sub $t2,$t0,$t1 # ($a0 + $a1) - ($a2 + $a3)
che comincia a partire dall indirizzo 0x0040005c
__________________
~ get Debian! ~ get FreeBSD! ~ get OpenBSD! ~
noooooooooo!!!
cacchio e chi si immaginava di dover allineare l indirizzo alla doppia parola....
pcspim di merdaaaaaa
grazie mille deepblue!!!!
__________________
"ki ha scritto queste stronzate!!??" disse il cieco toccando una grattugia!
| All times are GMT. The time now is 19:42. | Show all 19 posts from this thread on one page |
Powered by: vBulletin Version 2.3.1
Copyright © Jelsoft Enterprises Limited 2000 - 2002.