oicìliS ©
Assembly para Iniciantes TEXTOS ACESSÓRIOS
Notice: Undefined variable: subtitulo in /home/numaboa.com.br/public_html/informatica/oiciliS/assembler/head.php on line 10
(ver 1.2 de 02.08.03)
|
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 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 (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).
A1 FE 00 A7 56
Para facilitar o trabalho de escrever código de baixo nível, há muitos anos atrás 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. Por exemplo, com o mnemônico MOV,
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.
|