dicasneanderwin

Upload: roger-silva

Post on 22-Feb-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/24/2019 DicasNeanderWin

    1/3

    NEANDERWIN - Resumo operacional-------------------------------

    O NeanderWin um simulador da mquina Neander, definida no livrodo Raul F. Weber (UFRGS), Fundamentos de Arquitetura de Computadores,Ed. Sagra Luzzatto. A mquina original foi extendida aqui para incluiralgumas instrues extras, incluindo a carga de dados imediatosno acumulador e operaes de entrada e saida de dados. Em nossosimulador esto mapeados apenas dois dispositivos: um teclado e um visor.

    1) Listagem geral das instrues

    Todas as instrues so de 8 bits, sendo que algumas possuem umoperando de 8 bits adicional. Em ambos os casos o primeiro bytecontm o cdigo da operao nos 4 bits de mais alta ordem. Nasinstrues com um operando, este ocupa o segundo byte.

    Nota: Os 4 bits de mais baixa ordem do primeiro byte so reservadospara futuras expanses.

    'NOP' cdigo 0O comando NOP usado apenas para gastar tempo.

    'STA ender' cdigo 1

    O comando STA guarda o acumulador na posio de memria indicada pelo operando ender.

    'LDA ender' cdigo 2 O comando LDA atribui ao acumulador o contedo da posio de memria indicada pelo operando ender.

    'ADD ender' cdigo 3 O comando ADD soma ao acumulador o contedo de uma posio de memria indicada pelo operando ender.

    'SUB ender' cdigo 4 O comando ADD soma ao acumulador o contedo de uma posio de

    memria indicada pelo operando ender.

    'OR ender' cdigo 5 O comando OR realiza um "ou" lgico entre o acumulador e o contedo de uma posio de memria indicada pelo operando ender.

    'AND ender' cdigo 6 O comando AND realiza um "e" lgico entre o acumulador e o contedo de uma posio de memria indicada pelo operando ender.

    'NOT ender' cdigo 7

    O comando NOT inverte os bits do acumulador ender.

    'JMP edner' cdigo 8 O comando JMP (jump) desvia a execuo do programa para o endereo indicado pelo operando ender.

    'JN ender' cdigo 9 O comando JN (jump if negative) desvia a execuo do programa para o endereo indicado pelo operando ender, apenas quando a ltima operao realizada produziu um valor com o bit 7 ligado

  • 7/24/2019 DicasNeanderWin

    2/3

    (negativo).

    'JZ ender' cdigo 10 O comando JZ (jump if zero) desvia a execuo do programa para o endereo indicado pelo operando ender, apenas quando a ltima operao realizada produziu um valor zero.

    'JNZ ender' cdigo 11 O comando JNZ (jump if not zero) desvia a execuo do programa para o endereo indicado pelo operando ender, apenas quando a ltima operao realizada produziu um valor diferente de zero.

    'IN ender' cdigo 12 O comando IN (input) traz para o acumulador o valor lido num dispositivo externo indicado pelo operando ender.

    Em nosso simulador os dispositivos so: chaves (endereo 0) e o status de "dado disponvel" das chaves (endereo 1). Para escrever no banner uma letra direita usa-se o endereo 2 e o dado colocado no ACC. Para limpar o banner, usa-se o endereo 3.

    'OUT ender' cdigo 13 O comando OUT (output) descarrega o contedo do acumulador em

    um dispositivo externo indicado pelo operando ender. Em nosso simulador os nico dispositivos disponveis so um visor (endereo 0) e um banner (endereo 2 para escrever o dado do ACC e 3 para limpar).

    'LDI imed' cdigo 14 O comando LDI (load immediate) carrega no acumulador o valor dado pelo operando imed.

    'HLT' cdigo 15 O comando HLT (halt) para a mquina.

    Modos de Endereamento:

    - imediato O segundo byte da instruo o operando. A nica instruo que usa este modo de endereamento a LDI.- direto O segundo byte da instruo o endereo de memria do

    operando.- indireto O segundo byte da instruo contm o endereo de memria onde est o eo do operando (ou seja, o segundo byte da instruo o endereo do ponteiro para o operando).

    Para indicar que um operando indireto, deve-se preced-lo pela letra "@" (arrba)

    2) Comentrios no programa Os comentrios so comeados por ponto e vrgula, e podemtambm ocorrer no final das linhas de instrues.

    3) Rtulos Um rtulo um nome dado prxima posio de memria. O nome seguido por dois pontos.

    4) Pseudo Instrues:

  • 7/24/2019 DicasNeanderWin

    3/3

    ORG ender A pseudo-instruo ORG (origin) indica ao montador que a prxima instruo ser colocado na posio ender de memria.

    var EQU imed A pseudo-instruo EQU (equate) atribui um nome (rtulo) a um

    certo valor. Esse comando frequentemente usado para especificar variveis que so posicionadas em um endereo especfico de memria.

    Por exemplo para posicionar a varivel x no endereo 100 use: X EQU 100

    END ender A pseudo-instruo END indica que o programa fonte acabou. O operando ender usado para pr-carregar o PC com o endereo inicial de execuo do programa.

    DS imed A pseudo-instruo DS (define storage) reserva um nmero de palavras na memria definido pelo valor imed.

    DB imed

    A pseudo-instruo DB (define bytes) carrega esta palavra com o valor dado pelo operando imed.

    5) Exemplos de representao de nmeros

    Decimal: 30Binrio: 00110000bHexadecimal: 30h

    Nota: Nmeros hexadecimais maiores que 7fh devem ser precedidos por um zero, p. ex. 0f3h