|
Mnemónicas e Opcodes
Programas executáveis são apenas filas de bits num ficheiro. Estes bits dizem ao CPU e ao Sistema Operativo o
que fazer. A Maioria dos computadores operam com 8 bit -bytes, significando que cada conjunto de 8 bits corresponde a um byte. Nas máquinas 80x86, os bytes são agregados em palavras. Dois bytes são uma palavra, quatro formam uma dupla palavra, etc. Num fi
cheiro executável (que é uma cadeia de bytes), os bytes no ficheiro correspondem a dados, opcodes do processador, portos de I/O e endereços de memória.
Nos dias antigos, os programadores de linguagem assembly tinham que se lembrar do Opcode (fila d
e bits) para cada instrução que eles quisessem usar nos seus programas. Isso não era lá muito divertido, por isso alguém veio com a ideia de utilizar um Assemblador. Um Assemblador traduz as mnemónicas nos opcodes próprios para o CPU descodificar ao nível
das suas instruções de máquina. Uma mnemónica é apenas uma palavra ou abreviação que corresponde a um Opcode. Por exemplo, a mnemónica MOV AL,DL é convertida pelo assemblador para 8AC2 em Hexadecimal.
Muitas mnemónicas recebem operandos (argumento
s) para realizar alguma operação sobre eles. No exemplo acima, "AL,DL" eram os argumentos dados à instrução MOV. Operandos para diferentes instruções podem ser registos, endereços ou localizações de memória. O Assemblador converte estes nos valo
res Hex apropriados.
Arquitectura :
Portos e "Buses" (barramento)
O chip 80x86 possui um número de "buses&qu
ot; que permitem-lhe comunicar com a memória , componentes e periféricos do sistema. Cada "bus" tem uma função. Genericamente, existe um bus de endereços, um bus de controlo e um bus de dados. Muitos utlizadores de DOS ou de Windows estão famili
arizados com a ideia de um porto COM. Conflitos muitas vezes surgem entre modems e ratos acerca de qual utilizar um porto COM especifíco ou IRQ. No DOS, um porto COM é actualmente um endereço no bus de endereços. Alguns conflitos são resultado dos dois di
spositivos a tentar utlizar o mesmo endereço. Endereços num 80x86 são normalmente dois bytes no fomato Hexadecimal. Por exemplo, COM1 em DOS é usualmente 03F8H (o H no fim representa um valor Hex).
|
|