Notas de Aula - MAC 211 - Laboratório de Programação
Aula 3 - 8/3/2001
-
Lista de processadores da família x86 - "backward compatibility",
"no forward compatibility"
-
Linguagem de montagem
-
instrucoes do 80x86 : aritmeticas, logicas, transferencia de dados, pilha,
transferencia de controle, entrada e saida: MOV, ADD, SUB, MUL, DIV, etc.
-
registradores do 8086
-
AX - acumulador
-
BX - base
-
CX - contador
-
DX - dados
-
versoes de 8 bits: AH, AL, BH, etc.
-
versoes de 32 bits (a partir do 80386)
-
IP - apontador de instrucao
-
indicadores (Flags) - guardam informacoes sobre resultados de operacoes
-
MOV
-
mov reg, reg/memory/constant(ou dado imediato)
-
mov memory, reg
-
mov memory, constant (dado imediato)
-
com registradores de 32 bits so' mov entre registradores e' permitido
-
XCHG
-
xchg reg, reg
-
xchg reg, mem
-
xchg mem, reg
-
operacoes aritmeticas
-
add reg, reg/memory/constant
sub reg, reg/memory/constant
and reg, reg/memory/constant
or reg, reg/memory/constant
not reg/memory
-
exemplo: add AX, 34 -> AX := AX
+ 34
-
Rotulos e desvio incondicional
-
nome_rotulo: (indentado aa esquerda)
-
JMP destino
-
exemplo: JMP nome_rotulo
-
exemplo: JMP 21A7:000211F3H
-
Comparacao
-
cmp reg, reg/memory/constant
-
exemplo: cmp AX, BX
-
Desvio condicional
-
JE, JNE, JZ, JNZ, JPE (jump if parity is even), JPO, JG, JGE, JL, JLE
-
Sintaxe da Intel versus Sintaxe da AT&T (referencia na pagina de ponteiros).
-
Para casa: comecar a dar uma olhada no info do GNU as (tambem
conhecido como gas)
-
Para casa: escrever um programa em C bem simples, compilar com gcc
-S prog.c e ver saida prog.s
-
Na proxima aula: nosso primeiro programa completo em assembly
Página de MAC211
Página do Fabio
Página do DCC