Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
O 8086 foi um microprocessador desenvolvido pela Intel no final dos anos 1970, sendo um dos
responsveis pelo sucesso quase absoluto da empresa no ramo de processadores na poca.
Este microprocessador era um modelo de 16 bits e foi construdo especialmente para integrar
as mquinas IBM PC. O modelo foi notvel por introduzir a arquitetura x86, que serviu de base
para o desenvolvimento de tecnologias de processamento posteriores.
Registradores do 8086:
BX: assim como o AX, o BX tambm pode ser dividido em BL e BH. o chamado registrador de
BASE, pois pode ser usado como base de endereamento para manipulao de tabelas.
CX: tambm pode ser dividido em CL e CH. chamado registrador de CONTAGEM, pois alm
de trabalhar com dados tambm usado para contagens em instrues com LOOPS na
manipulao de strings.
DX: pode ser dividido em DL e DH. chamado de registrador de DADOS, pois ele pode ser
usado como uma extenso do AX em operaes de multiplicao e diviso.
SP: o STACK POINTER ou ponteiro de pilhas, que aponta para o topo da memria do tipo
pilha usada pelo 8088.
BP: este registrador, que chamado de BASE POINTER, usado para endereamento de
memria (geralmente relacionado a pilha, ou seja, uma registrador de base para a pilha).
Pode conter o endereo inicial (base) de uma tabela que ser manipulada pela CPU.
SI: SOURCE INDEX (registrador de ndice que aponta para a origem dos dados que sero
movimentados) usado para indexao de tabelas no endereamento indireto.
DI: DESTINATION INDEX (registrador de ndice que aponta para o destino dos dados que sero
movimentados). Assim como o SI, o registrador DI utilizado para a indexao no
endereamento indireto.
Registradores de Flags:
ZF (Zero Flag): indica se o resultado de uma operao aritmtica igual a zero (1) ou diferente
de zero (0). Se numa operao os valores so iguais o ZF = 1.
SF (Sign Flag): indica se o resultado de uma operao com sinal positivo (0), em caso
contrrio (1).
DF (Direction Flag): para operaes com strings, se D=0 os registradores de ndice sero
incrementados, caso contrrio (D=1) sero decrementados.
Registradores de Segmento:
SS (STACK SEGMENT): enderea o segmento que est reservado ao uso da PILHA ou STACK.
DS (DATA SEGMENT): como o nome diz, acessa o segmento reservado aos dados manipulados
pelo 8088.
ES (EXTRA SEGMENT): usado para acessar outro segmento que conter dados. Normalmente,
usado para manipulao de tabelas e strings.
Instrues:
Aritmticas:
Ex.:
mov al, 1
mov bl, 2
add al, bl
Ex.:
mov al, 1
mov bl, 2
sub al, bl
Ex.:
cmp al, 1
cmp al, ah
Ex.:
mov al, 1
mov bl, 2
mul bl
mov bl, 3
imul bl
DIV/IDIV: Realiza a diviso de valores. Para divises no-sinalizadas, usamos o comando DIV. J
para multiplicaes sinalizadas, o comando usado o IDIV.
Ex.:
mov al, 1
mov bl, 2
div bl
Lgicas:
Controle:
JL/JNGE: Salta caso o primeiro operador seja menor que o segundo (nmeros sinalizados).
JLE/JNG: Salta caso o primeiro operador seja menor ou igual ao segundo (nmeros
sinalizados).
JB/JNAE: Salta caso o primeiro operador seja menor que o segundo (nmeros nosinalizados).
JBE/JNA: Salta caso o primeiro operador seja menor ou igual ao segundo (nmeros
nosinalizados).
JNLE/JG: Salta caso o primeiro seja menor ou igual ao segundo (nmeros nosinalizados).
Transferncia de Dados:
MOV: Move dados para registradores, ou dos registradores para a memria. Ex.: mov AL, 30 _
move para AL o valor 30
Diretivas: