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

laboratorio-06's People

Contributors

guissalustiano avatar joao-pedro-cabral avatar tomaz-suller avatar

Watchers

Ricardo avatar

laboratorio-06's Issues

Loader test overwrites `0x704` and `0x706` when it shouldn't

f"0704 {base_addres:04X}\n", # endereço inicial
f"0706 {n_words:04X}\n", # qtd. de palavras

As per the instructions, memory addresses 0x704 and 0x706 should only be employed in the dumper. Overwriting them leads to failure in the automated test suite but not in local execution of the program if the submission employs (albeit wrongly) these addresses.

It also introduces the possibility of incorrect implementations using the values in these addresses to pass.

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.