Sei sulla pagina 1di 6

Intel 8086:

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:

Registradores so nada mais que so circuitos digitais capazes de armazenar e deslocar


informaes binrias, sendo tipicamente utilizados como dispositivo de armazenamento
temporrio.

Registradores de uso geral:

AX: o chamado ACUMULADOR (o X refere-se a eXtended). O AX pode ser dividido em dois


registradores de 8 bits: AL e AH, sendo AL formado pelo byte menos significativo (D0 a D7),
enquanto AH constitudo pelo byte mais significativo (D8 a D15), podendo cada um deles ser
acessado separadamente.

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:

O registrador de flags contm os seguintes principais bits:

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).

TF (Trap Flag): permite a operao passo a passo para debug.

IF (Interrupt Flag): indica se as interrupes esto habilitadas (1) ou no (0).

DF (Direction Flag): para operaes com strings, se D=0 os registradores de ndice sero
incrementados, caso contrrio (D=1) sero decrementados.

OF (Overflow Flag): indica um estouro da capacidade de armazenamento de um registrador.

Registradores de Segmento:

Os endereos dos segmentos so armazenados nos 4 seguintes registradores da BIU:

CS (CODE SEGMENT): enderea o segmento onde devem estar as instrues a serem


executadas pela CPU.

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:

ADD: Realiza a adio de dois dados e armazena o resultado no registrador da esquerda.

Ex.:

mov al, 1

mov bl, 2

add al, bl

INC: Incrementa em 1 o registrador especificado.

SUB: Realiza a subtrao de um dado por outro e armazena o resultado no registrador da


esquerda.

Ex.:

mov al, 1

mov bl, 2

sub al, bl

DEC: Decrementa em 1 o registrador especificado.

CMP: Faz a comparao entre dois valores.

Ex.:

cmp al, 1

cmp ah, [var]

cmp al, ah

MUL/IMUL: para multiplicaes no-sinalizadas utilizamos o comando MUL. J para


multiplicaes sinalizadas, o comando usado o IMUL. Ao contrrio da soma, a multiplicao
feita sempre com o registrador AX (multiplicando), que ir possuir o resultado da multiplicao
de 16 bits.

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

OBS.: Nesse caso, AL tem AX/BL e AH tem AX%BL.

Lgicas:

AND: Executa a funo E bit-a-bit.

NOT: o operando de negao, que executa a operao bit-a-bit.

OR: o operando lgico OU, que executa a operao bit-a-bit.

XOR: Operando lgico do OU EXCLUSIVO, tambm bit-a-bit.

Controle:

JMP: Salto incondicional para outra parte do programa.


JE/JZ: Salta para outra parte do programa no caso do primeiro valor ser igual ao segundo.

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).

JO: Salta caso haja estouro de capacidade (overflow).

JNE/JNZ: Salta se o primeiro valor for diferente do segundo.

JNL/JGE: Salta se o primeiro valor for menor do segundo.

JNLE/JG: Salta caso o primeiro seja menor ou igual ao segundo (nmeros nosinalizados).

JNB/JAE: Salta se o primeiro valor no for menor que o segundo.

JNBE/JA: Salta se o primeiro valor no for menor ou igual ao segundo.

JNO: Salta se no houver estouro de capacidade.

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:

DB: Definio de Byte (1 byte).

DW: Definio de Word (2 bytes).

HLT: usado para acabar com a execuo (parar o processador).

Potrebbero piacerti anche