- Messaggi: 119
- Ringraziamenti ricevuti 0
Linux Avanzato 2008-2009
- COM_EASYSOCIAL_GUEST_NAME
-
- Visitatori
-
16 Anni 7 Mesi fa #95490
da COM_EASYSOCIAL_GUEST_NAME
che ne dite ?
Risposta da COM_EASYSOCIAL_GUEST_NAME al topic Linux Avanzato 2008-2009
3) Scrivere un programma nel linguaggio assemblativo x86 con sintassi AT&T che esamina il contenuto di due variabili globali dato1 e dato2 da 32 bit e scrive 1 nel registro %eax se dato1 e' l'immagine speculare di dato2, 0 altrimenti.
che ne dite ?
.section .rodata
.dato1: .long 0x00000004
.dato2: .long 0xa0000000
.LC0:
.string "%x\n"
.LC01:
.string "bit %x\n"
.LC1:
.string "ERRORE !\n"
.LC2:
.string "OK!\n"
.LC3:
.string "Run numero %d\n"
.text
.globl main
.type main, @function
main:
leal 4(%esp), %ecx
andl $-16, %esp
pushl -4(%ecx)
pushl %ebp
movl %esp, %ebp
pushl %ecx
subl $36, %esp
/*
Copio le due variabili in %esi e %edi
Annullo %ebx che uso come contatore
*/
movl .dato1, %esi
movl .dato2, %edi
xorl %ebx, %ebx
ciclo:
/*
Stampo il valore di %esi e %edi
*/
movl $.LC0, (%esp)
movl %esi, 4(%esp)
call printf
movl %edi, 4(%esp)
call printf
/*
Ruoto verso sinistra %edi di 1 bit
e stampo il nuovo valore
*/
roll $1, %edi
movl %edi, 4(%esp)
call printf
/*
Salvo il valore di %esi e %edi
*/
pushl %edi
pushl %esi
/*
Prendo il bit meno significativo di %esi
e lo stampo
*/
andl $0x00000001, %esi
subl $12, %esp
movl %esi, 4(%esp)
movl $.LC01, (%esp)
call printf
addl $12, %esp
/*
Prendo il bit meno significativo di %edi
e lo stampo
*/
andl $0x00000001, %edi
subl $12, %esp
movl %edi, 4(%esp)
movl $.LC01, (%esp)
call printf
addl $12, %esp
/*
Confronto i due bit ed esco su errore
se non corrispondono
*/
cmpl %esi, %edi
jnz errore
/*
Ripristino %esi e %edi
*/
popl %esi
popl %edi
/*
Shifto a destra %esi e lo stampo
*/
shrl $1, %esi
subl $12, %esp
movl %esi, 4(%esp)
movl $.LC0, (%esp)
call printf
addl $12, %esp
/*
Incremento il contatore ed esco con
sucesso se vale 32, sennò ciclo
*/
addl $1, %ebx
subl $12, %esp
movl %ebx, 4(%esp)
movl $.LC3, (%esp)
call printf
addl $12, %esp
cmpl $32, %ebx
je ok
jmp ciclo
ok:
movl $.LC2, (%esp)
call printf
movl $1, %eax
jmp esci
errore:
popl %esi
popl %edi
movl $.LC1, (%esp)
call printf
movl $0, %eax
esci:
addl $36, %esp
popl %ecx
popl %ebp
leal -4(%ecx), %esp
ret
.size main, .-main
.ident "GCC: (Debian 4.3.2-1.1) 4.3.2"
.section .note.GNU-stack,"",@progbitsSi prega Accedi o Crea un account a partecipare alla conversazione.
- COM_EASYSOCIAL_GUEST_NAME
-
- Visitatori
-
16 Anni 7 Mesi fa #95491
da COM_EASYSOCIAL_GUEST_NAME
Risposta da COM_EASYSOCIAL_GUEST_NAME al topic Linux Avanzato 2008-2009
Non si capisce, in quanto sono stati fatti solo 5 nomi, persone che, testuali parole, "saranno premiate". Gli altri si vedrà, in quanto:
- per il programma da correggere di giovedì, il termine ultimo è diventato improvvisamente le 18 del giovedì, poi forse le 24 del giovedì, mentre inizialmente era le 14 del venerdì. Ma la cosa è molto confusa, e probabilmente verranno "premiati" solo i primi 2 che hanno inviato la soluzione;
- la patch assegnata martedì andava bene solo se accompagnata da sperimentazioni e da stampe di prova. Una patch funzionante accompagnata da un readme illustrativo dettagliato ma senza stampe di prova non porterà ad "essere premiati". Il limite per l'invio delle stampe di prova e' ormai scaduto, anche se si inviano solo queste e la patch era stata già inviata.
La stessa entità del "premio", che dovrebbe al 99% consistere nell'esonero dalla seconda prova, ieri non è stata mai esplicitamente specificata da lui.
Insomma, non si è smentito nel suo modo di fare.
- per il programma da correggere di giovedì, il termine ultimo è diventato improvvisamente le 18 del giovedì, poi forse le 24 del giovedì, mentre inizialmente era le 14 del venerdì. Ma la cosa è molto confusa, e probabilmente verranno "premiati" solo i primi 2 che hanno inviato la soluzione;
- la patch assegnata martedì andava bene solo se accompagnata da sperimentazioni e da stampe di prova. Una patch funzionante accompagnata da un readme illustrativo dettagliato ma senza stampe di prova non porterà ad "essere premiati". Il limite per l'invio delle stampe di prova e' ormai scaduto, anche se si inviano solo queste e la patch era stata già inviata.
La stessa entità del "premio", che dovrebbe al 99% consistere nell'esonero dalla seconda prova, ieri non è stata mai esplicitamente specificata da lui.
Insomma, non si è smentito nel suo modo di fare.
Si prega Accedi o Crea un account a partecipare alla conversazione.
- COM_EASYSOCIAL_GUEST_NAME
-
- Visitatori
-
16 Anni 7 Mesi fa #95492
da COM_EASYSOCIAL_GUEST_NAME
Risposta da COM_EASYSOCIAL_GUEST_NAME al topic Linux Avanzato 2008-2009
A proposito, ma avete capito voi dove sarà il test?
Che vuol dire T5+T6 PP2?
Che vuol dire T5+T6 PP2?
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Stefano Annunziato
-
- Offline
- Premium Member
-
Riduci
Di più
16 Anni 7 Mesi fa #95494
da Stefano Annunziato
Credo sia T5 T6 SoGeNe.
Risposta da Stefano Annunziato al topic Linux Avanzato 2008-2009
A proposito, ma avete capito voi dove sarà il test?
Che vuol dire T5+T6 PP2?
Credo sia T5 T6 SoGeNe.
Si prega Accedi o Crea un account a partecipare alla conversazione.
- COM_EASYSOCIAL_GUEST_NAME
-
- Visitatori
-
16 Anni 7 Mesi fa #95509
da COM_EASYSOCIAL_GUEST_NAME
Risposta da COM_EASYSOCIAL_GUEST_NAME al topic Linux Avanzato 2008-2009
Sì anch'io credo così...ma chi ci dice che non sia aule 5 e 6 PP2?
Si prega Accedi o Crea un account a partecipare alla conversazione.
- COM_EASYSOCIAL_GUEST_NAME
-
- Visitatori
-
16 Anni 7 Mesi fa #95514
da COM_EASYSOCIAL_GUEST_NAME

si è sbagliato a scrivere...è in T5/T6 a sogene
Risposta da COM_EASYSOCIAL_GUEST_NAME al topic Linux Avanzato 2008-2009
Io...perchè l'ho chiesto ieri dopo la lezione al prof!Sì anch'io credo così...ma chi ci dice che non sia aule 5 e 6 PP2?
si è sbagliato a scrivere...è in T5/T6 a sogene
Si prega Accedi o Crea un account a partecipare alla conversazione.