Coder Social home page Coder Social logo

laboratorio-06's Introduction

PCS3616 - Laboratório 6 - MVN 4

Hoje é a última aula com linguagem de máquina, portanto vai ser a mais interessante delas, vamos implementar um dumper e/ou um loader.

Nesta aula, você deverá trabalhar em dupla para desenvolver um dos seguintes programas: dumper ou loader (basta fazer um apenas).

O corretor automático do github sempre testará o dumper e o loader, com isso caso a dupla faça apenas um dos programas, o github indicará que algum teste falhou. Mas não se preocupe, caso a sua dupla resolva um deles de forma completa, a nota da dupla será 10.

Ferramentas recomendadas

Um editor de texto normal (como vim) não foi desenvolvido para a edição de arquivos não-texto. Assim, é recomendado utilizar outro editor, como o bless, que pode ser instalado executando

sudo apt-get update
sudo apt-get install -y bless

O bless é um programa com interface gráfica, então pode não funcionar em versões antigas do WSL ou em outros ambientes sem interface gráfica. Caso não consiga executar, é possível codificar textos em hexadecimal com 2 bytes por linha usando a seguinte função em Python 3

def string_to_two_byte_hex(string: str):
    string_bytes = string.encode('ascii')
    string_hex = string_bytes.hex('\n', 2)  # \n every 2 bytes
    print(string_hex)

e é possível visualizar um arquivo em binário usando o utilirário do Linux hexdump, executando

hexdump -C ARQUIVO

Um exemplo de arquivo binário .dat - seguindo os padrões de dump da MVN - foi disponibilizado nesse repositório com o nome ex.dat. Este arquivo serve tanto como exemplo de output do dumper, como de input para o loader.

Instruções

  • Vamos usar a seguinte convenção: os dois programas (dumper e loader) devem ler/escrever do dispositivo 300. Ou seja, no seu arquivo disp.lst, use a seguinte linha:

    • 3 0 dump.dat e/l (e para escrita e l para leitura)
  • É obrigatório iniciar o loader no endereço 0xB00 (endereço máximo: 0xCFF).

  • É obrigatório iniciar o dumper no endereço 0x700 (endereço máximo: 0xAFF).

    • 0x704: Parâmetro "endereço inicial"

    • 0x706: Parâmetro "qtd. de palavras"

  • Quantidade máxima de bytes de dados por bloco: 256 (128 palavras).

  • Ambas as funções devem ser codificadas como subrotinas.

Entrega

  • Arquivo dumper.mvn com o dumper
  • Arquivo loader.mvn com o loader

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.