******************************************************************************** REF: tous ce que j'ai | LES INSTRUCTIONS ASSEMBLEUR | pus trouver... | PAR | | ALLIGATOR427 | 09/96 ******************************************************************************** Pourquoi un ../article\.. sur les instructions ASM? Vu qu'on vous fait des cours de crack, sans les instructions pour vous reperer cela me semblait incomplet. Alors, dans l'attente de la traduc de winice en francais (he oui! on vous le fera!), ca depanne & complete! AAA ajustement ascii de apres une addition. Format BCD AAD ajustement ascii de avant une division BCD AAM ajustement ascii de apres une multiplication. Format BCD AAS ajustement ascii de apres une soustraction. ADC addition avec retenue ADD addition sans retenue AND operation logique ET ARPL ajuste le niveau du privilege (mode prot‚g‚e) BOUND teste un nombre par rapport a des limites BSF cherche 1 bit de droite a gauche BSR " " " " " gauche a droite BSWAP conversion d'un registre en un format INTEL BT charge 1 bit en CF BTC " " " " " " et complement BTR " " " " " " " " " puis le met a 0 dans la source BTS " " " " " " " " " " " " " " " " "1 " " " " "" " " CALL appel de sous programme CBW convertit l'octet sign‚ de en un mot dans CDQ convertit le mot sign‚ de EAX en un quadruple mot dans CLC mets l'indicateur a 0 dans CF CLD " " " " " " " " " " " " " DF CLI " " " " " " " " " " " " " IF CLTS mets a 0 l'indicateur de changement de contexte Task-Switch-Flag mode prot‚g‚e. CMC complemente l'indicateur CF CMP comparaison logique CMPS[b][w] compare des chaines de caracteres CMPSD compare des chaines de caractere 80386() CMPXCHG compare l'accumulateur avec AL, AX, ou EAX CWD convertit le contenu signe de AX en un double mots DX:AX CWDE " " " " " "" " "" " " " " " " " "" " " " " " " " dans EAX DAA ajustement decimal de AL apres une addition BCD DAS " " " " " " " " " " " " " " " " " soustraction BCD DEC decrementation DIV division non signee ENTER construit un cadre de pile pour une procedure de haut niveau. ESC acces pour le coprocesseur HLT arret du processeur en attente d'un evenement externe IBTS insere une chaine de bits (mode protegee) IDIV division sign‚e IMUL multiplication sign‚e IN lit un octet ou mot sur un port peripherique INC incrementation INS[b][w] lit une chaine sur un port INT interruption logiciel INTO active l'interruption 4 si l'indicateur OF est arm‚ INBD efface le contenu de la mem cache du 486 INVLPG exploitation du 486 en mode virtuel. multiprocesseur 8088 IRET retour d'interruption IRETD " " " " " " " " " "" depuis un segment de 32bits JA branchement si superieur JAE "" " " " "" " " "" " ou egal JB branchement si inferieur JBE " " " " " " " " " " " " " ou egal JC branchement si CF est a 1 JNC " " " " "" " "" " "" 0 JCXZ " " " " " " " CX " " " " JECXZ branchement si le registre ECX est a 0 JE branchement en cas d'egalit‚ JG branchement si arithmetiquement superieur ou egale JMP branchement a l'adresse indiqu‚e JNA branchement si non superieur JNAE branchement si non superieur ou egal JNB branchement si non inferieur JNBE "" " " " "" " " " "" " " " ou egal JNE branchement en cas de non egalit‚ JNG branchement si arithmetiquement non superieur JNGE " " " " "" " " "" " " " " "" " " "" "" " ou egal JNL branchement si non inferieur arithmetiquement JNLE branchaement si arithmetiquement non inferieur ou egale JNO branchement si l'indicateur OF est a 0 JNP branchement si parit‚ impaire (indicateur PF a 0) JNS branchement si positif JNZ branchement si different JO branchement si OF est a 1 JP branchement si parit‚ pair. indicateur PF est a 1 JPE " " " " " " " " " " " " " " " " " " " " " " " " " JPO " " " "" " " " " " " "impair. " " " " " "" " " 0 JS branchement si negatif JZ branchement en cas d'egalit‚ LAHF charge en AH la partie basse du registre des indicateurs LAR charge le drout d'acces (mode proteg‚e) LDS charge une adresse physique en DS: registre LEA " " " " " " "" " "effective LEAVE libere le cadre de pile, installer par entr‚e LES charge une adresse physique en ES: registre LFS " " " "" " "" " " " "" " " " FS: " '" " LGDT charge le registre de la table des descripteurs globaux (mode prot‚g‚e) LGS charge une adresse physique en GS: registre LIDT charge le registre de la table des descripteurs d'interruption (MODE P) LLDT charge le registre de la table des descripteurs locaux LMSW " " " le mot d'etat de la machine (mode prot‚g‚e) LOCK verrouille le bus LODS[b][w] charge AL/AX avec le contenu de DS:SI LODSD charge EAX avec le contenu de DS:SI LOOP branchament tant que CX #0 LOOPE " " " "" " " " "" " " " "et ZF =1 LOOPNZ " " " " " " "" "" " " "" " ""=0 LOOPZ " " " " " " " " " " "" "" " " =1 LSL charge une limite de segment (mode proteg‚e) LSS charge une adresse physique en SS: registre LTR charge le registre de tache (mode prot‚g‚e) MOV tranfere une donn‚e MOVS transfere une chaine de caractere octet par octet ou mot pour mot de DS:SI en ES:DI MOVSD transfere une chaine de caracteres double mot par double mot MOVSX tranfert avec extension de signe MOVZX tranfert avec une extension de 0 MUL multiplication non sign‚e NEG negation par complement de 2 NOP pas d'operation, voir utilisation de samsom pour ex: NOT operation logique NON complement a 1 OR operation logique OU inclusif OUT transmets un octet ou mot a un periph OUTS[b][w] transmets une chaine a un port OUTSD transmets un double mot a un port POP depile un mot POPA depile les registres POPAD depile tous les registres 32 bits POPF depile un mot et le tranfere vers le registre des indicateurs POPFD " """ " DOUBLE MOT "" " " " " "" " " "" " " " " "" " " " "" " "" " sur 32bits PUSH: empile une valeur PUSHA empile tous les registres PUSHAD " " " " " "" " " "" "" 32 bits PUSHF empile le registre des indicateurs PUSHFD empile le registre des indicateurs a 32bits RCL rotation a gauche a travers CF RCR rotation a droite a travers CF REP[z][nz] prefixes de repetition REP[e][ne] pour traiter les chaines de caractere en association avec CX et les indicateurs RET[n][f] retour de sous programme ROL rotation a gauche ROR rotation a droite SAHF copie AH dans la partie basse du registre des indicateurs. SAL decalage a gauche avec introduction de 0 SAR " " " " " droite avec signe SBB soustraction non sign‚e avec prise en compte de CF SCAS[b][w] compare une chaine octet par octet ou mot par mot avec le contenu de AL/AX SCASD compare une chaine double mot par double mot avec le contenu EAX SETA initialisation a 1 si CF et ZF sont a 0, sinon initialisation a 0 SETAE " " " " " " " " " " "" est a 0, sinon init. a 0 SETB " " " " " " " " " " " " " " " 1, " " " " " " " " SETBE " " " " " " " " " " " CF ou ZF est a 1, sinon initialisation a 0 SETE " " " " " " " " " " " ZF est a 1, sinon init. a 0 SETG " " " " " " " " " " " " " " " " 0 et SF=OF, sinon init. a 0 SETGE " " " " " " " " " " " SF=OF, sinon init. a 0 SETL " " " " " " " " " " " SF#OF, sinon init. a 0 SETLE " " " " " " " " " " " ZF est a 1 et SF#OF, sino init a 0 SETNA " " " " " " " " " " " CF ou ZF est a 1, init a 0 SETNAE " " " " " " " " " " " CF est a 1, sinon init. a 0 SETNB " " "" " " "" "" "" CF est a 0, sinon init a 0 SETNBE " " " " " " " "" " " "CF et ZF sont a 0, sinon, init. a 0 SETNE " " " " " " " " " " " ZF est a 0, sino init a 0 SETNG " " " " " " " " " " " " " " " " 1 ou SF#OF, sinon init. a 0 SETNGE " " " " " " "" " " " "SF#OF, sinon init. a 0 SETNL " " " " " " " " " " " "SF et OF sont egaux, sinon init. a 0 SETNLE " " " " " " " " " " " "ZF est a 0 et SF=OF, sinon init a 0 SETNO " " " " " " " " " " " OF est a 0, sinon init a 0 SETNP " " " " " " " " " " " "PF est a 0, " " " "" " " " SETNS " " " " " " "" " "" " SF " " " " " " "" " " " "" SETNZ " " "" " " " "" " " " "ZF " " " "" " "" " " " " SETO " " " " " " " " "" " OF est a 1, "" " "" " " "" SETP " " " " " " " " " " " PF " " " " " " " " " "" " SETPE " " " " "" " " " " " " " " " " " " "" "" " "" " SETPO " " " " " " " " " " " " " " " " 0, " " " " " " "" " SETS " " " " " " " " " " " " SF est a 1, sinon " " " " " SETZ " " " " " " " " "" " " ZF " " " " " " " " "" "" " SGDT sauvegarde le registre de la table des descripteurs globaux(mode prot.) SHL voir SAL SHLD decalage double a gauche SHR decalage a droite avec introduction de 0 SHRD decalage double a droite SIDT sauvegarde le registre de la table des interruptions. (mode prot‚g‚e) SLDT " " " " " " " " " " " " " " " " " " "" descripteurs locaux (mode P) SMSW sauvegarde le mot d'etat de la machine (mode P) STC mets a 1 l'indicateur CF STD " " " " "" "" " " " DF STI " " " " " " " "" " "IF STIOS[b][w] transfert octet par octet, mot par mot le contenu de AL en ES:DI STOSD transfert double mot par double mot le contenu de EAX en ES:DI STR sauvegarde le registre de tache (mode Prot‚g‚e) SUB soustraction non sign‚e TEST test si un bit est a 1 VERR test l'autorisation de lecture d'un segment (mode prot‚g‚e) VERW test l'autorisation d'ecriture dans un segment (mode prot‚g‚e) XADD addition sign‚e WAIT attends que la ligne BUSY ne soit plus actif XBINVD efface le contenu de la memoire cache du 486 XBTS prends une chaine de bits (mode prot‚g‚e) XCHG echange les contenus de 2 registres XLAT charge en AL l'octet de la table DS:BX+AL XOR operation logique ou exclusive FINI!!!! Putain c'etait chiant!!! j'espŠre vraiment que vous en aurez utilit‚! ******************************************************************************** ******************************************************************************** beyond_voyage