Mnemônico
Origem: Wikipédia, a enciclopédia livre.
Em nível de hardware, num processador Intel ou compatível, as instruções estão embutidas nos circuitos e são denominadas de "opcodes" - códigos operacionais. Apesar da informação poder ser escrita em nível de bit, o tamanho mínimo dos dados normalmente utilizado é um byte.
Em nível de byte, o código pode ser escrito na notação hexadecimal usando-se um editor hexadecimal. Porém, este método de escrever o código é complexo e exige o conhecimento de um grande número de códigos operacionais, além de uma dificuldade adicional: os processadores Intel têm a peculiaridade de armazenar os dados numéricos na ordem inversa dos dados caracteres.
Para copiar um valor de 32 bits (exemplo: 56 A7 00 FE) no registrador EAX, você encontrará o código operacional A1 (MOV EAX) seguido por FE 00 A7 56 (o inverso de 56 A7 00 FE).
Exemplo: A1 FE 00 A7 56 A1 = MOV EAX FE 00 A7 56 = código hexadecimal invertido MOV EAX FE 00 A7 56
- Para facilitar o trabalho de escrever código de baixo nível, há muitos anos foi desenvolvido um sistema onde grupos de códigos operacionais semelhantes receberam nomes que lembram suas funções e que os tornaram muito mais práticos de serem usados. Estes nomes são denominados mnemônicos. Este é o sistema utilizado nos assemblers de 32 bits modernos.
Um mnemônico é um nome reservado de uma família de códigos operacionais que realizam tarefas semelhantes no processador. Os códigos operacionais atuais diferem quanto ao tamanho e tipo de operandos que sejam utilizados.
Exemplo: MOV EAX, Var1 ........ representado por A1 (valor hexadecimal) MOV Var1, EAX ........ representado por A3 (valor hexadecimal)
Os mnemônicos possibilitam escrever código de um modo muito mais intuitivo e sem perda de precisão. Existe uma correlação exata entre o que você escreve com mnemônicos e o que você obtém como códigos operacionais acabados.
Ficando no exemplo acima, você escreve o mnemônico MOV EAX, Var1 e o assembler transforma MOV EAX na sequência de bits correspondente ao hexadecimal A1, ou seja, em 1010 0001. Esta sequência de bits corresponde à instrução embutida nos circuitos do processador Intel (código operacional) que faz com que dados sejam copiados do endereço onde se encontra Var1 para o registrador EAX. É evidente que apenas a sequência de bits correspondentes a uma operação MOV EAX não vai funcionar se não estiver acompanhada do seu operando Var1.
Exemplo: MOV EAX, Var1 A1, Var1 1010 0001, Var1 MOV EAX = A1 = 1010 0001
O exemplo acima mostra a transformação efetuada pelo assembler (substituição do mnemônico).