avec l'apparence des langages èvoluès(c,c++,java...)la programmation est devenue facile
et bien pourquoi la programmation en assembleur ?
merieme_info
: avec l'apparence des langages èvoluès(c,c++,java...)la programmation est devenue facile
#define byte_v(x) (char)(x) #define byte_a(x) (*(char *)(x)) #define byte_ainc(x) (*((char *)(x)++)) #define byte_adec(x) (*(--(char *)(x))) #define _byte_v byte_v( #define _byte_a byte_a( #define _byte_ainc byte_ainc( #define _byte_adec byte_adec( #define get_b(x) (_byte_##x)) #define get_w(x) (_word_##x)) #define move_b(x,y) (_byte_##x) = _byte_##y)) #define move_w(x,y) (_word_##x) = _word_##y)) void *f(void *p,void *q) { move_b(ainc p, v sin(42.3)*rand()); move_b(ainc p, ainc q ); move_w(ainc p, ainc q ); move_w(ainc p, a 0x4c00 ); return p; }
Code Etat réel Etat émulé sr=0000 sr=0000 trap #12 trap debugger trap tios sr=0000 sr=2000 rte privilege violation pas de probleme (le debuggeur émule le rte, en travaillant sur le SR virtuel) sr=0000 sr=2000 (puisque trap#12) move sr,d0 pas de probleme pas de probleme => d0 devient 0000 => émulation impossible donc d0=0000 alors qu'il devrait valoir 2000 sr=0000 sr=2000 move d0,sr privilege violation pas de probleme, mais le d0 erronné fait que le débuggeur met le SR virtuel à 0 sr=0000 sr=0000 move usp,a0 privilege violation privilege violation (puisque le sr virtuel est à 0)