Intro: -Asm pas facile -il faut penser abcp de choses -on fait facilemnt des erreurs -plus complexe : ex: hello world -langage de bas niveau : on programme directemnt le le proc -permet de bien savoir ce qui se passe -permet d'optimizer -ts utile pour les proc qui n'ont pas de langage evolue : ex: : 6809, Z80... La compilation: -le compilateur : translation language evolue <> asm -l'assemnleur : translation asm(mnemonique) <> hexa -environ 200 nmemonique sur le pentium -ex: MOV ax, 012h -hexa : comprehensible par le proc -linker : cree l'entete (expliquer ce qu'est une entete) -debugueur (expliquer son fonctionnement), mode paspas ex : SoftIce -desassembleur (expliquer la difference avec un debogeur) ex : Dasm -assemblers : TASM, MASM. ex -linker : ex : Declaration de variables -les differentes longeurs : bit, nibble, word, dword -declaration de constante : EQU, ex: -declaration de variables : db, dw, dd ex: ------------ de chaines, ex: -instruction DUP , ex: Registres et memoire -shema : memoire ram et rom, meme adressage -histoire des differentes memoire (ts bref) -Qu'est-ce qu'un registre -Registres de segments, utilitee : SS CS DS ES FS GS -Registres pointer, utilite : IP, SP, BP -Register index, utilite vu plus tard : SI, DI -registres generaux ax,bx, cx, dx -division en sous-registre -adressage de la memoire -direct ( ou immediate) : reg, imm -base : reg, [reg] -base + imm : reg, [reg + imm] -base + index : reg, [reg + IndexReg] -base + index + imm : reg, [reg + IndexReg imm] -impossibilite pour le proc de savoir sur combient de bits on trvaille, utilisation de PTR Structure d'1 prog et instructions de base -ex prog -utilisation de plusieurs segments -instructions de bases -MOV ou LD -AND, OR, NOT -Shift, Rotate -ADD, SUB, NEG, MUL, IMUL, DIV, IDIV : seuleument sur les proc evolue -IND DEC -Virgule flottante Les sauts -JMP ou BRA -3 type : SHORT, NEAR, FAR, ex: -registre de flag, c koi? -schema du flag -difference netre carry et overflow -AF : auxilary flag -TF : trap flag : utilise dans les debogeurs -liste de jump, remarque que JZ = JE -instruction CMP : soustraction -equivalence avec IF..THEN..ELSE, CASE OF, WHILE .... Les procedures -Principe de la pile -Schema -PUSHA/POPA , PUSHF/POPF -Possibilite de modifie directment SP -Attention au depassement de pile -CALL, principe -INT -principe -interruption materiels -utilisation pour les drivers -table des vecteur d'int a 0000:0000 -interruption seuleument sur le segment 0000 -INT 21h, INT10h -appel d'une fonction par AH -parametre passe par les autres registres -ex: hello world I/O -instruction OUT ex: Beep -affichage de sprites Win32 -Qu'est ce qu'1 API -paramatres passe par la pile -utilisation du model flat : windows gere les segment -ex : affichage d'1 boite de dialogue Appli -creation d'un TSR, impossible dans un autre language -qu'est ce qu'un TSR -interface -detournement d'int -enormes possibilite : virus -demonstration de la puissance de l'asm THANKS -Moeti, un bon programmeur