Changes between Version 3 and Version 4 of WikiStart
- Timestamp:
- Mar 12, 2009, 10:26:37 AM (16 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
WikiStart
v3 v4 3 3 [[TOC(noheading)]] 4 4 5 == 4 marzo 2009==5 == Lezione 1: Introduzione == 6 6 7 * [http://homes.dico.unimi.it/sisop/lucidi0809/solab01.pdf slide]([http://homes.dico.unimi.it/sisop/lucidi0809/solab01.pdf Versione stampa]) 7 === Slide === 8 9 * '''Turno 1 (4 Marzo 2009)''': [http://homes.dico.unimi.it/sisop/lucidi0809/solab01.pdf slide] ([http://homes.dico.unimi.it/sisop/lucidi0809/solab01.pdf Versione stampa]) 10 * '''Turno 2 (6 Marzo 2009)''': [http://homes.dico.unimi.it/sisop/lucidi0809/solab01b.pdf slide] ([http://homes.dico.unimi.it/sisop/lucidi0809/solab01b-print.pdf Versione stampa]) 11 8 12 9 13 === Programmi === 10 14 11 * Accesso diretto alla macchina fisica `mioboot-nobios-simple.asm` 12 15 * Accesso diretto alla macchina fisica `mioboot-nobios-simple.asm` 13 16 {{{ 14 17 bits 16 ; 16 bit real mode … … 32 35 dw 0xAA55 33 36 }}} 34 35 37 {{{ 36 38 #!sh … … 40 42 41 43 42 * Uso dei servizi del BIOS `mioboot.asm` 43 44 * Uso dei servizi del BIOS `mioboot.asm` 44 45 {{{ 45 46 bits 16 ; 16 bit real mode … … 92 93 dw 0xAA55 93 94 }}} 94 95 95 {{{ 96 96 #!sh … … 99 99 }}} 100 100 101 * Programma che esegue il codice letto da standard input exec.c 102 {{{ 103 #include <stdio.h> 104 105 int main() { 106 unsigned char buf[1024]; 107 void (*ptr)(); 108 int n; 109 unsigned int eax; 110 111 n = read(0, buf, 1024); 112 buf[n] = '\xc3'; 113 114 ptr = (void(*)()) buf; 115 ptr(); 116 117 __asm__("mov %%eax, %0" : "=m"(eax)); 118 119 printf("EAX: %.8x\n", eax); 120 121 return 0; 122 } 123 }}} 124 {{{ 125 gcc -o exec exec.c 126 echo -ne "\xB8\x11\x22\x33\x44" | ./exec 127 echo -n "ciao" | ./exec 128 ... 129 }}} 101 130 102 131 === Link === … … 107 136 * [http://www.intel.com/products/processor/manuals/ Manuali Intel] 108 137 138 139 == Lezione 2 ==