4. VANTAGENS:
Não é necessário saber onde cada instrução está
na memória;
Utiliza-se uma label para executar as instruções de
desvios;
Quando ocorre um erro no programa não é
necessário refaze-lo a partir da instrução;
Pode-se criar variáveis mais facilmente.
29-03-2014Prof. Nobre - Programação e Linguagem Máquina 4
EMU8086
5. DESVANTAGENS:
Alguns comandos ou interrupções não funcionam
corretamente
AH = 8; int 21;
MOV DX , 0100h;
Usar o LEA para registadores de 16 bits
29-03-2014Prof. Nobre - Programação e Linguagem Máquina 5
EMU8086
6. 29-03-2014Prof. Nobre - Programação e Linguagem Máquina 6
#make_COM#
; COM file is loaded at CS:0100h
ORG 100h
mov AH, 09h
LEA DX, mensagem
int 21h
int 20h
mensagem DB 50h, 72h, 6Fh, 66h, 65h, 2Eh, 20h, 4Eh, 6Fh,
62h, 72h, 65h, 21h, 24h
ret
Escreva um programa que retorne na consola o teu
nome. Para tal a variável mensagem deverá receber
os caracteres representado pelo sistema
hexadecimal
EMU8086
7. 29-03-2014Prof. Nobre - Programação e Linguagem Máquina 7
#make_COM#
; COM file is loaded at CS:0100h
ORG 100h
MOV AX, 000Ah
MOV BX, 000Bh
PUSH AX
PUSH BX
CALL procedimento
INC AX
INC BX
CALL procedimento
POP BX
POP AX
INT 20h
procedimento: MOV AX, 0001h
MOV BX, 0002h
INC AX
INC BX
ret
ret
EXERCÍCIO PILHA
EMU8086
8. ENDEREÇAMENTO DIRECTO
O endereço é dado na instrução
Mov ax, var1
ENDEREÇAMENTO INDIRECTO SOBRE O
REGISTO
O endereço é lido de um registo base (BX ou BP)
ou index (SI ou DI)
Mov ax, [bx]
29-03-2014Prof. Nobre - Programação e Linguagem Máquina 8
EMU8086
9. ENDEREÇAMENTO BASEADO
O endereço é lido de um registo base (BX ou BP)
ao qual é adicionado o valor indicado na
instrução
Mov ax, [bx+5]
ENDEREÇAMENTO INDEXADO
Identico ao anterior mas usando um registo de index
(SI ou DI)
Mov ax, [SI+10]
29-03-2014Prof. Nobre - Programação e Linguagem Máquina 9
EMU8086
10. ENDEREÇAMENTO BASEADO INDEXADO
O endereço é dado pela soma de um registo base
(BX ou BP) com um registo de index (SI ou DI) e
ainda com um valor indicado na instrução
Mov ax, [bx] [si]
Mov ax, tabela[bx] [si]
29-03-2014Prof. Nobre - Programação e Linguagem Máquina 10
EMU8086