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


Aula8 - Emu8086, Exercícios de Mecatrônica

Software basíco, linguagem assembly. Apresentação de comandos, cógigos e exercícios.

Tipologia: Exercícios

2011

Compartilhado em 05/02/2011

alex-alves-37
alex-alves-37 🇧🇷

1 documento

1 / 47

Toggle sidebar

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

Não perca as partes importantes!

bg1
1
Software Básico
[EMU8086]
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f

Pré-visualização parcial do texto

Baixe Aula8 - Emu8086 e outras Exercícios em PDF para Mecatrônica, somente na Docsity!

Software Básico

[EMU8086]

Introdução Emu

http://www.emu8086.com

Simuladores do Processador 8086:

  • TASM (Turbo Assembler da Borland)
  • MASM (Macro Asssembler da Microsoft)
  • Debug (Ferramenta do MS-DOS)
  • Emu8086 (Simulador Gráfico do 8086)

Introdução Emu

Vantagens: Não é necessário saber onde cada instrução está na memória; Utiliza-se label para executar as instruções de desvios. Quando ocorre um erro no programa não é necessário refazê-lo a partir da instrução. Pode-se criar variáveis mais facilmente;

Introdução Emu

Desvantagens Alguns comandos e Interrupções não funcionam corretamente no emu8086. Exemplos:

  1. AH=08; int 21h ;Não funciona
  2. MOV DX, 0100h ;Não funciona Usar o LEA

Conjunto de Instruções

  • (^) http://www.emu8086.com/assembly_ language_tutorial_assembler_reference /8086_instruction_set.html (Conjunto de Instruções)
  • (^) http://www.emu8086.com/assembly_ language_tutorial_assembler_reference/ supported_interrupts.html (Interrupções)

Programa Alo Mundo!

Exemplo de Compiladores Assembler DEBUG (Prompt do DOS): -a 1537:0100 mov AH, 09 1537:0102 mov DX, 0200 1537:0105 int 21 1537:0107 int 20 1537:0109 -e 0200 1537:0200 00.41 00.6C 00.6F 00.20 00.6D 00.75 00.6E 00. 1537:0208 00.6F 00.21 00.

Programa Alo Mundo!

Exemplo no Emu8086 (Simulador) Emu #make_COM# ; COM file is loaded at CS:0100h ORG 100h mov AH, 09h LEA DX, mensagem int 21h int 20h mensagem DB 41h, 6Ch, 6Fh, 20h, 6Dh, 75h, 6Eh, 64h, 6Fh, 21h, 24h

Exemplo Pilha (Emu8086) #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

Endereçamentos no Emu

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]

Endereçamento no Debug

-e 300 56 78 1537:0106 MOV BX, 300 1537:0108 SUB AX, AX 1537:010A MOV AX, [BX] 1537:010C INT 20 1537:010E -a 100 1537:0100 MOV BX, 300 1537:0103 MOV AX, 5678 1537:0106 MOV [BX], AX 1537:0108 SUB AX, AX 1537:010A MOV AX, [BX] 1537:010C INT 20 1537:010E Ler e Escreve os bytes de forma invertida, veja exemplos.

Endereçamento no Emu

#make_COM# ; COM file is loaded at CS:0100h ORG 100h x DB 'teste' MOV DX, OFFSET x MOV AH, 09 INT 21 HLT

  • #make_COM# ; COM file is loaded at CS:0100h ORG 100h MOV BX, 0300h MOV AX, 05678h MOV [BX], AX SUB AX, AX MOV AX, [BX] HLT CUIDADO : Os dados não podem vir ante do código.

Código no Emu

#make_COM# ORG 100h MOV AH, 09h LEA DX, mensagem INT 21h INT 20h mensagem DB 41h, 6Ch, 6Fh, 20h, 6Dh, 75h, 6Eh, 64h, 6Fh, 21h, 24h #make_COM# ; COM file is loaded at CS:0100h ORG 100h JMP inicio mensagem DB 41h, 6Ch, 6Fh, 20h, 6Dh, 75h, 6Eh, 64h, 6Fh, 21h, 24h inicio: LEA DX, mensagem MOV AH, 09h INT 21h INT 20h

Código no Emu

#make_COM#

; COM file is loaded at CS:0100h

ORG 100h

.DATA

mensagem DB 41h, 6Ch, 6Fh, 20h, 6Dh, 75h, 6Eh, 64h, 6Fh, 21h,

24h

.CODE

LEA DX, mensagem

MOV AH, 09h

INT 21h

INT 20h