assembly
3. Introdução à linguagem montadora do 8086
3.1 A sintaxe assembly do 8086
A linguagem montadora não é sensível à letra maiúscula ou minúscula
Para facilitar a compreensão do texto do programa, sugere-se:
• uso de letra maiúscula para código
• uso de letra minúscula para comentários
Declarações (statements):
• instruções, que são convertidas em código de máquina
• diretivas, que instruem o montador a realizar alguma tarefa específica:
- alocar espaço de memória para variáveis
- criar uma sub-rotina (procedure ou procedimento)
Formato de uma declaração (linha de programa):
[Nome]
[Cod. oper.]
[Operando(s)] [;Comentário]
Exemplo:
INICIO:
MOV
CX,5h
;inicializar contador
A separação entre os campos deve ser do tipo ou .
Cap3.2
• O campo Nome:
Pode ser um rótulo de instrução, um nome de sub-rotina, um nome de variável, contendo de 1 a 31 caracteres, iniciando por uma letra e contendo somente letras, números e os caracteres ? . @ _ : $ % .
Obs: o Montador traduz os nomes por endereços de memória.
Exemplos:
nomes válidos
LOOP1:
.TEST
@caracter
SOMA_TOTAL4
$100
nomes inválidos
DOIS BITS
2abc
A42.25
#33
• Campo de código de operação:
Contem o código de operação simbólico (mnemônico)
No caso de diretivas, contem o código de pseudo-instrução
Exemplos:
instruções
MOV
ADD
INC
JMP
diretivas
.MODEL
.STACK nome PROC
Cap3.3
• Campo de operandos:
Instruções podem conter 0, 1 ou 2 operandos no 8086.
Exemplos:
NOP
;sem operandos: instrui para fazer nada
INC AX
;um operando: soma 1 ao conteúdo de AX
ADD
A,2d
;dois operandos: soma 2 ao conteúdo da palavra
;de memória A
No caso de instruções de dois operandos:
• o primeiro, operando destino: registrador ou posição de memória onde o resultado é armazenado; o conteúdo inicial é modificado;
• o segundo, operando fonte: não modificado pela instrução;
• os operandos são separados por uma vírgula.