61 lines
1.3 KiB
Rust
61 lines
1.3 KiB
Rust
|
/* TRUCS MANQUANT
|
||
|
* Verifier qu'il y a un nombre pair de caractere hexa dans la ligne correspondante d'une section du fichier source
|
||
|
* Sinon on ne peut pas automatiquement remplir chaque octect car 2 hexa = 1 octet
|
||
|
*/
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
/* FORMAT FICHIER.TXT Représentant la mémoire apres éxecution d'un prog
|
||
|
* PC
|
||
|
* SP
|
||
|
* Section_1
|
||
|
* Section_2
|
||
|
* ...
|
||
|
* ...
|
||
|
* Section_n
|
||
|
*/
|
||
|
|
||
|
/* Chaque section se divise en 3 parties, sur 2 lignes de texte
|
||
|
* addr ESPACE len
|
||
|
* content
|
||
|
*/
|
||
|
|
||
|
//content est une suite hexadécimale
|
||
|
|
||
|
//Section dans le fichier, champ String car informations proviennent d'un fichier txt
|
||
|
struct SectionFormat{
|
||
|
addr: String,
|
||
|
len: String,
|
||
|
content: String,
|
||
|
}
|
||
|
|
||
|
//Section dans le programme
|
||
|
struct Section{
|
||
|
addr: usize, // adresse dans la mémoire
|
||
|
len: usize, // nombre d'octets de la donnée à addr
|
||
|
content: Vec<u8>, // la donnée en question
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Voir si instanciation d'une structure deplace les valeurs "locales" à la méthode from, je sais plus ....
|
||
|
*/
|
||
|
impl Section{
|
||
|
fn from(section: &SectionFormat) -> Section {
|
||
|
let mut content: Vec<u8> = Vec::new();
|
||
|
let addr: usize = section.addr.parse().unwrap();
|
||
|
let len: usize = section.len.parse().unwrap();
|
||
|
|
||
|
/*
|
||
|
* Remplissage de content
|
||
|
*/
|
||
|
|
||
|
|
||
|
Section{addr:addr, len:len, content:content}
|
||
|
}
|
||
|
}
|
||
|
|