Upload
lccimetro
View
56
Download
2
Embed Size (px)
Citation preview
PROGRAMAÇÃO EM LINGUAGEM
MÁQUINA
LCC2 - 2014
SIMULADORES DO PROCESSADOR 8086:
TASM – Turbo Assembler da Borland
MASM – Marco Assembler da Microsoft
Debug – Ferramenta do MS-DOS
EMU8086 – Simulador gráfico do 8086
29-03-2014 Prof. Nobre - Programação e Linguagem Máquina 2
EM
U8086
VANTAGENS:
Visualização em modo gráfico
Memória
Stack
ALU;
FLAGS;
Variáveis;
Log Debug;
Registadores;
Janela da consola (Emulator Screen);
ASCII tabela;
Emulador
…
29-03-2014 Prof. Nobre - Programação e Linguagem Máquina 3
EM
U8086
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-2014 Prof. Nobre - Programação e Linguagem Máquina 4
EM
U8086
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-2014 Prof. Nobre - Programação e Linguagem Máquina 5
EM
U8086
29-03-2014 Prof. 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
EM
U8086
29-03-2014 Prof. 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 EM
U8086
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-2014 Prof. Nobre - Programação e Linguagem Máquina 8
EM
U8086
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-2014 Prof. Nobre - Programação e Linguagem Máquina 9
EM
U8086
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-2014 Prof. Nobre - Programação e Linguagem Máquina 10
EM
U8086
Endereçamento Imediato:
MOV CH, FFh
MOV CH 11111111b
Endereçamento por Registrador:
MOV BL, CH
Endereçamento por Deslocamento(Offset):
MOV AX, [00100h]
MOV AX, [BX]
29-03-2014 Prof. Nobre - Programação e Linguagem Máquina 11
EM
U8086
Endereçamento de Base Indexada:
MOV AX, [00100h + BX]
MOV AX, [BX + 00100h]
MOV AX, 00100h[BX]
MOV AX, [BX] + 00100h
MOV DX, OFFSET x ;Usando variáveis
29-03-2014 Prof. Nobre - Programação e Linguagem Máquina 12
EM
U8086
PROGRAMAÇÃO EM LINGUAGEM
MÁQUINA
LCC2 - 2014