Changes between Version 3 and Version 4 of WikiStart


Ignore:
Timestamp:
Mar 12, 2009, 10:26:37 AM (15 years ago)
Author:
lorenzo
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • WikiStart

    v3 v4  
    33[[TOC(noheading)]]
    44
    5 == 4 marzo 2009 ==
     5== Lezione 1: Introduzione ==
    66
    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
    812
    913=== Programmi ===
    1014
    11 * Accesso diretto alla macchina fisica `mioboot-nobios-simple.asm`
    12 
     15 * Accesso diretto alla macchina fisica `mioboot-nobios-simple.asm`
    1316{{{
    1417bits 16                         ; 16 bit real mode
     
    3235dw 0xAA55
    3336}}}
    34 
    3537{{{
    3638#!sh
     
    4042
    4143
    42 * Uso dei servizi del BIOS `mioboot.asm`
    43 
     44 * Uso dei servizi del BIOS `mioboot.asm`
    4445{{{
    4546bits 16                         ; 16 bit real mode
     
    9293        dw 0xAA55
    9394}}}
    94 
    9595{{{
    9696#!sh
     
    9999}}}
    100100
     101 * Programma che esegue il codice letto da standard input exec.c
     102{{{
     103#include <stdio.h>
     104
     105int 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{{{
     125gcc -o exec exec.c
     126echo -ne "\xB8\x11\x22\x33\x44" | ./exec
     127echo -n "ciao" | ./exec
     128...
     129}}}
    101130
    102131=== Link ===
     
    107136 * [http://www.intel.com/products/processor/manuals/ Manuali Intel]
    108137
     138
     139== Lezione 2 ==