Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


assembler4, Notas de estudo de Eletrônica

- - - - - - -

Tipologia: Notas de estudo

Antes de 2010

Compartilhado em 09/02/2008

bruno-diego-10
bruno-diego-10 🇧🇷

5 documentos

1 / 10

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
ÕÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͸
³ RBT þ Curso de Assembly þ Aula N§ 04 ³
ÔÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ;
Por: Bruno Diego
ÕÍÍÍÍÍÍÍÍÍÍÍÍ͸
³ ASSEMBLY IV ³
ÔÍÍÍÍÍÍÍÍÍÍÍÍ;
0 0
8 7
0 0
8 7
0 0
9 4
Come aremos a ver algumas instru es do microprocessador 8086
0 0
8 7
0 0
9 4
agora. Existem os seguintes tipos de instru es:
0 0
8 7
0 0
9 4
0 0
8 2
þ Instru es Aritim ticas
0 0
8 7
0 0
9 4
þ Instru es L¢gicas
0 0
8 7
0 0
9 4
þ Instru es de Controle de Fluxo de Programa
0 0
8 7
0 0
9 4
0 0
8 7
0 0
8 4
þ Instru es de manipula o de flags
0 0
8 7
0 0
9 4
0 0
8 7
0 0
8 4
þ Instru es de manipula o da pilha
0 0
8 7
0 0
9 4
0 0
8 7
0 0
8 4
þ Instru es de manipula o de blocos
0 0
8 7
0 0
9 4
0 0
8 7
0 0
8 4
þ Instru es de manipula o de registradores/dados
0 0
8 7
0 0
9 4
þ Instru es de Entrada/Sa¡da
0 0
8 7
0 0
8 7
0 0
9 4
0 0
8 7
0 0
8 4
Vamos come ar com as instru es de manipula o de
registradores/dados por serem estas as mais f ceis de entender.
ÕÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͸
0 0
8 7
0 0
8 4
³ Instru o MOV ³
ÔÍÍÍÍÍÍÍÍÍÍÍÍÍÍ;
MOV tem a finalidade de MOVimentar um dado de um lugar para
outro. Por exemplo, para carregar um registrador com um determinado
0 0
8 2
valor. Isto feito com MOV:
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
ÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ MOV AX,0001h ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
ÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
0 0
9 0
a mesma coisa que dizer: "AX = 1". Na verdade, movimentamos o
valor 1 para dentro do registrador AX.
Podemos mover o conte£do de um registrador para outro:
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
ÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ MOV BH,CL ³
pf3
pf4
pf5
pf8
pf9
pfa

Pré-visualização parcial do texto

Baixe assembler4 e outras Notas de estudo em PDF para Eletrônica, somente na Docsity!

ÕÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͸

³ RBT þ Curso de Assembly þ Aula N§ 04 ³ ÔÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ;

Por: Bruno Diego

ÕÍÍÍÍÍÍÍÍÍÍÍÍ͸

³ ASSEMBLY IV ³

ÔÍÍÍÍÍÍÍÍÍÍÍÍ;

0 0 8 7

0 0 8 7

0 0 Come aremos a ver algumas instru (^) 9 4es do microprocessador 8086 0 0 8 7

0 0 agora. Existem os seguintes tipos de instru (^) 9 4es:

0 0 8 7

0 0 9 4

0 0 þ Instru (^) 0 0 es Aritim8 2 ticas 8 7

0 0 þ Instru (^) 0 09 4es L¢gicas 8 7

0 0 þ Instru (^) 0 09 4es de Controle de Fluxo de Programa 8 7

0 0 9 4

0 0 8 7

0 0 þ Instru es de manipula (^) 8 4o de flags 0 0 8 7

0 0 9 4

0 0 8 7

0 0 þ Instru (^) 0 0 es de manipula (^) 8 4o da pilha 8 7

0 0 9 4

0 0 8 7

0 0 þ Instru (^) 0 0 es de manipula (^) 8 4o de blocos 8 7

0 0 9 4

0 0 8 7

0 0 þ Instru es de manipula (^) 8 4o de registradores/dados 0 0 8 7

0 0 þ Instru (^) 9 4es de Entrada/Sa¡da

0 0 8 7

0 0 8 7

0 0 9 4

0 0 8 7

0 0 Vamos come ar com as instru es de manipula (^) 8 4o de registradores/dados por serem estas as mais f ceis de entender.

ÕÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͸ 0 0 8 7

0 0 ³ Instru (^) 8 4o MOV ³ ÔÍÍÍÍÍÍÍÍÍÍÍÍÍÍ;

MOV tem a finalidade de MOVimentar um dado de um lugar para outro. Por exemplo, para carregar um registrador com um determinado 0 0 valor. Isto (^) 8 2feito com MOV:

ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

ÄÄÄÄÄÄÄÄÄÄÄÄÄ¿

³ MOV AX,0001h ³

ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

ÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

0 0 9 0 a mesma coisa que dizer: "AX = 1". Na verdade, movimentamos o valor 1 para dentro do registrador AX.

Podemos mover o conte£do de um registrador para outro:

ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

ÄÄÄÄÄÄÄÄÄÄÄÄÄ¿

³ MOV BH,CL ³

ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

ÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

0 0 9 0 a mesma coisa que "BH = CL"! 0 0 Os registradores de segmento n8 4 o podem ser inicializados com MOV 0 0 8 2

0 0 tomando um parametro imediato (num rico). Esses registradores s8 4 o inicializados indiretamente:

ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

ÄÄÄÄÄÄÄÄÄÄÄÄÄ¿

³ MOV DS,0 ; ERRADO!!! ³

³ MOV AX,0 ³

³ MOV DS,AX ; CORRETO! ³

ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

ÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

Carregar um registrador com o conte£do (byte ou word, depende da 0 0 8 7

0 0 8 4

0 0 instru o!) armazenado em um segmento 0 0 (^) 8 2simples, basta especificar o

8 7

0 0 offset do dado entre colchetes. Aten (^) 8 4o que o segmento de dados 0 0 8 2

0 0 (DS) assumido por default com algumas excess9 4 es:

ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

ÄÄÄÄÄÄÄÄÄÄÄÄÄ¿

³ MOV AL,[0FFFFh] ³

ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

ÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

0 0 8 7

0 0 8 4

0 0 A instru o acima, pega o byte armazenado no endere8 7 o DS:FFFFh e coloca-o em AL. Sabemos que um byte vai ser lido do offset especificado porque AL tem 8 bits de tamanho. 0 0 Ao inv8 2 s de usarmos um offset imediato podemos usar um registrador:

ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

ÄÄÄÄÄÄÄÄÄÄÄÄÄ¿

³ MOV BX,0FFFFh ³ ³ MOV CH,[BX] ³

ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

0 0 8 2

0 0 8 7

0 0 Neste caso, BX cont m o offset e o byte no endere o DS:BX8 2 armazenado em CH. Note que o registrador usado como indice obrigatoriamente deve ser de 16 bits.

ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

ÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

0 0 8 4

0 0 S¢ que neste caso ser 0 0 o armazenados 2 bytes no endere8 7 o ES:BX. O primeiro byte (^) 8 2 o menos significativo e o segundo o mais 0 0

8 7

0 0 signigicativo. Essa instru (^) 8 4o equivale-se a:

ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

ÄÄÄÄÄÄÄÄÄÄÄÄÄ¿

0 0 8 7

0 0 ³ MOV ES:[BX],AL ; Instru (^) 9 4ess que fazem a mesma ³ ³ MOV ES:[BX + 1],AH ;coisa que MOV ES:[BX],AX ³

ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

ÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

0 0 8 2

0 0 8 4

0 0 8 2

0 0 8 7

0 0 Repare tamb m que n o poss¡vel mover o conte£do de uma posi (^) 8 4o da mem¢ria para outra, diretamente, usando MOV. Existe outra 0 0 8 7

0 0 8 4

0 0 8 7

0 0 instru o que faz isso: MOVSB ou MOVSW. Veremos essas instru (^) 9 4es mais tarde.

Regra geral: Um dos operandos TEM que ser um registrador! Salvo 0 0 8 7

0 0 8 4

0 0 8 7

0 0 no caso da movimenta o de um imediato para uma posi (^) 8 4o de mem¢ria:

ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

ÄÄÄÄÄÄÄÄÄÄÄÄ¿

³ MOV [DI],[SI] ; ERRO! ³

³ MOV [BX],0 ; OK! ³

ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

ÄÄÄÄÄÄÄÄÄÄÄÄÙ

0 0 8 7

0 0 8 4

0 0 Para ilustrar o uso da instru o MOV, eis um peda8 7 o do c¢digo usado pela ROM-BIOS do IBM PS/2 Modelo 50Z para verificar a integridade dos registradores da CPU:

ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

ÄÄÄÄÄÄÄÄÄÄÄÄÄ¿

³ MOV AX,0FFFFh ;Poe 0FFFFh em AX ³ ³ MOV DS,AX ³ ³ MOV BX,DS ³ ³ MOV ES,BX ³ ³ MOV CX,ES ³ ³ MOV SS,CX ³ ³ MOV DX,SS ³ ³ MOV SI,DX ³ ³ MOV DI,SI ³ ³ MOV BP,DI ³

³ MOV SP,BP ³

ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

ÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

0 0 8 4

0 0 Se o conte£do de BP n o for 0FFFFh ent 0 0 8 4 o a CPU est com algum 8 4

0 0 problema e o computador n o pode funcionar! Os flags s8 4 o testados de uma outra forma... :)

ÕÍÍÍÍÍ͸

³ XCHG ³

ÔÍÍÍÍÍ;

0 0 8 7

0 0 Esta instru (^) 8 4o serve para trocarmos o conte£do de um registrador pelo outro. Por exemplo:

ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

ÄÄÄÄÄÄÄÄÄÄÄÄÄ¿

³ XCHG AH,AL ³

ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

ÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

0 0 8 7

0 0 Se AH=1Ah e AL=6Dh, ap¢s esta instru (^) 8 4o AH=6Dh e AL=1Ah por causa da troca...

0 0 8 8

0 0 Pode-se usar uma refer 0 0 ncia (^) 8 5mem¢ria assim como em MOV... com 8 7

0 0 a mesma restri (^) 8 4o de que um dos operandos TEM que ser um 0 0 registrador. N8 4 o h possibilidade de usar um operando imediato.

ÕÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͸

³ MOVSB e MOUSW ³ ÔÍÍÍÍÍÍÍÍÍÍÍÍÍÍ;

0 0 8 7

0 0 9 4

0 0 Essas instru 0 0 es suprem a defici8 8 ncia de MOV quanto a 8 7

0 0 8 4

0 0 8 7

0 0 movimenta o de dados de uma posi (^) 8 4o de mem¢ria para outra diretamente. Antes de ser chamada os seguintes registradores tem que ser inicializados:

ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

ÄÄÄÄÄÄÄÄÄÄÄÄ¿

0 0 8 8

0 0 ³ DS:SI <- DS e SI t (^) 0 0m o endere8 7 o fonte ³ 8 8

0 0 ³ ES:DI <- ES e DI t m o endere8 7 o destino ³

ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

ÄÄÄÄÄÄÄÄÄÄÄÄÙ

0 0 8 7

0 0 8 4

0 0 8 7

0 0 Depois da execu o da instru (^) 8 4o o registrador SI ser incrementado ou decrementado de acordo com o flag D (Direction). No caso de usarmos LODSW, SI ser incrementado de 2 para garantir que DS:SI aponte para a pr¢xima word.

ÕÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͸ 0 0 8 7

0 0 9 4

0 0 8 7

0 0 ³ Outras instru es de manipula (^) 8 4o de registros/dados ³ ÔÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ;

0 0 8 7

0 0 Existem ainda as instru (^) 9 4es LEA, LES e LDS.

þ LEA:

0 0 8 2

0 0 8 7

0 0 LEA 0 0 , basicamente, igual a instru (^) 8 4o MOV, com apenas uma 8 7

0 0 8 2

0 0 diferen a: o operando "fonte" um endere8 7 (^) 0 0o (precisamente: um "offset"). LEA simplesmente calcula o endere8 7 (^) 0 0o e transfere para o

8 7

0 0 operando "destino", de forma que as instru (^) 9 4es abaixo sao equivalentes:

ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

ÄÄÄÄÄÄÄÄÄÄÄÄÄ¿

³ MOV BX,100h ³ ³ LEA BX,[100h] ³

ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

0 0 8 2

0 0 8 7

0 0 Por m, a instru (^) 8 4o:

ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

ÄÄÄÄÄÄÄÄÄÄÄÄÄ¿

³ LEA DX,[BX + SI + 10h] ³ ³

ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

Equivale a:

ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

ÄÄÄÄÄÄÄÄÄÄÄÄÄ¿

³ MOV DX,BX ³

³ ADD DX,SI ; DX = DX + SI ³

³ ADD DX,10h ; DX = DX + 10h ³

ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

ÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

0 0 8 7

0 0 8 4

0 0 8 7

0 0 Repare que apenas uma instru o faz o servi o de tr8 8 s!! Nos

0 0 8 7

0 0 processadores 286 e 386 a diferen a (^) 8 2 significativa, pois, no exemplo acima, LEA gastar 3 (nos 286) ou 2 (nos 386) ciclos de m quina enquando o equivalente gastar 11 (nos 286) ou 6 (nos 386) 0 0 8 7

0 0 8 4

0 0 ciclos de m quina! Nos processadores 8088/8086 a diferen a n o8 2 tao grande...

Obs: Consideremos cada ciclo de m quina seria, aproximadamente, 0 0 num 386DX/40, algo em torno de 300ns - ou 0,0000003s. 0 0 (^) 9 0uma medida empirica e n 0 0 8 4 o expressa a grandeza real (depende de 8 2

0 0 uma s rie de fatores n8 4 o considerados aqui!).

0 0 O operando "destino" 0 0 (^) 8 2 sempre um registrador. O operando 8 2

0 0 "fonte" sempre um endere8 7 o.

þ LDS e LES

Existe uma forma de carregar um par de registradores (segmento:offset) de uma s¢ vez. Se quisermos carregar DS:DX basta 0 0 8 7

0 0 usar a instru (^) 8 4o LDS, caso o alvo seja ES, usa-se LES.

0 0 8 7

0 0 Suponhamos que numa posi (^) 8 4o da mem¢ria tenhamos um double word (n£mero de 32 bits) armazenado. A word mais significativa correspondendo a um segmento e a menos signigicativa a um offset 0 0 8 2

0 0 8 7

0 0 (esse o caso da tabela dos vetores de interrup (^) 8 4o, que descreverei com poucos detalhes em uma outra oportunidade!). Se usamos:

ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

ÄÄÄÄÄÄÄÄÄÄÄÄÄ¿

³ LES BX,[SI] ³

ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

ÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

O par ES:BX ser carregado com o double word armazenado no 0 0 endere8 7 o apontado por DS:SI (repare no segmento default 0 0 que

8 7

0 0 8 4

0 0 discutimos em um texto anterior!). A instru o acima (^) 8 2equivalente a:

ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

ÄÄÄÄÄÄÄÄÄÄÄÄ¿

³ MOV BX,[SI+2] ³

³ MOV ES,BX ³

³ MOV BX,[SI] ³

ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

ÄÄÄÄÄÄÄÄÄÄÄÄÙ

0 0 8 7

0 0 8 4

0 0 De novo, uma instru o substitui tr8 8 s!

0 0 8 7

0 0 9 4

0 0 8 7

0 0 Existem mais algumas instru es de manipula (^) 0 08 4o de 8 7

0 0 registradores/dados, bem como mais algumas de manipula 0 0 (^) 8 4o de blocos. Que ficar8 4 o para uma pr¢xima mensagem. ?