.dsy:it.
Show 150 posts per page

.dsy:it. (http://www.dsy.it/forum/)
- Sistemi operativi I (http://www.dsy.it/forum/forumdisplay.php?forumid=269)
-- Materiale di approfondimento (http://www.dsy.it/forum/showthread.php?threadid=29961)


Posted by morganhk on 12-03-2007 11:05:

Materiale di approfondimento

Sul Wiki del corso serale (http://homes.dico.unimi.it/sisop/ e poi scegliere la voce WIKI) ho inserito un approfondimento riguardante la lezione del 05/03/2007.
Viene analizzato in maniera specifica i due sorgenti asm.

Spero che questo approfondimento sia gradito da tutti coloro che seguono il corso (sia serale che diurno). Ditemi pure cosa ne pensate

Ciao
Morganhk


Posted by Smirne on 12-03-2007 12:39:

ottimo! gradito eccome :)

__________________
www.welld.ch
Sviluppo software tra Italia e Svizzera


Posted by NoWhereMan on 12-03-2007 13:29:

forse però è meglio spostarlo qui: http://sl-lab.it/dokuwiki/doku.php?id=sistop:lab piuttosto che in home
o in una sotto pagina apposita ;)

ciao


Posted by Kurt84 on 14-03-2007 20:33:

" Ed è proprio il registro AL che viene verificato per vedere se il valore contenuto è uguale alla lettera m, alla lettera b,al tasto invio (codice ASCII 13). Se non è uguale a nessuno di questi viene eseguita la ret che riporta il flusso del programma all’istruzione successiva a call waitenter. "

A me risulta invece che se non è uguale a nessuno di questi si esegue il salto a "waitenter:" e quindi si ripete la procedura..

----------------------------------------
waitenter: mov si, cont
call message
mov ah, 0
int 0x16 ; Wait for keypress
cmp al, 'm'
jz egg ; se il tasto è m salta a egg
cmp al, 'b'
jz basic ; se il tasto è b salta a basic
cmp al, 13
jnz waitenter ; se il tasto non è invio(e quindi nessuno tra m, b, invio) salta a waitenter

ret ; ret viene eseguita se il tasto è invio


Posted by morganhk on 14-03-2007 22:22:

Originally posted by Kurt84
" Ed è proprio il registro AL che viene verificato per vedere se il valore contenuto è uguale alla lettera m, alla lettera b,al tasto invio (codice ASCII 13). Se non è uguale a nessuno di questi viene eseguita la ret che riporta il flusso del programma all’istruzione successiva a call waitenter. "

A me risulta invece che se non è uguale a nessuno di questi si esegue il salto a "waitenter:" e quindi si ripete la procedura..

----------------------------------------
waitenter: mov si, cont
call message
mov ah, 0
int 0x16 ; Wait for keypress
cmp al, 'm'
jz egg ; se il tasto è m salta a egg
cmp al, 'b'
jz basic ; se il tasto è b salta a basic
cmp al, 13
jnz waitenter ; se il tasto non è invio(e quindi nessuno tra m, b, invio) salta a waitenter

ret ; ret viene eseguita se il tasto è invio


effettivamente se risulta differente dal codice ascii 13 viene eseguito un salto a waitenter tramite salto condizionato altrimenti viene eseguita la ret che dovrebbe restituire l'esecuzione al chiamante.

Ho apportato la dovuta correzione anche sul WIKI. Grazie per la segnalazione! :)


Posted by Kurt84 on 15-03-2007 16:45:

grazie a te per il materiale!

Io non ero presente a quella lezione, volevo sapere se questo codice è stato spiegato nei dettagli e dobbiamo conoscerlo o è stato illustrato solo in maniera "informale", a titolo di esempio.
Io sn riuscito a capirlo ma cercando un po su internet e guardando il tuo materiale, le slide sn abbastanza approssimative e non credo che in una lezione si possa implementare del codice così senza neanche un ripasso dei comandi principali ecc..


Posted by DarkSchneider on 15-03-2007 16:51:

scusate, ma dove sono le slide?

si possono scaricare da qualche parte?

thanks!


Posted by Kurt84 on 15-03-2007 16:56:

http://sl-lab.it/dokuwiki/doku.php?id=sistop:home


Posted by DarkSchneider on 16-03-2007 08:17:

grazie :)


All times are GMT. The time now is 04:45.
Show all 9 posts from this thread on one page

Powered by: vBulletin Version 2.3.1
Copyright © Jelsoft Enterprises Limited 2000 - 2002.