Skip to content

A simple project in C and Assembly (AT&T and Intel) for operating with Matrices.

Notifications You must be signed in to change notification settings

UNESP-RC/MatrixAssembly

 
 

Repository files navigation

MatrixAssembly

A simple project in C and Assembly (AT&T and Intel) for operating with Matrices.
This is a final project in an Assembly Language course in University of Sao Paulo (UNESP - Brazil)

Authors

Bruno Vedoveto - @bleandro
Dalton Lima - @daltonbr
Lucas Pinheiro - @lucaspin
Wesley Utsonomya - @ottozinho

English Version

Objectives:
  • Implement applications in Assembly and high level languages interfaces (C).
  • Compare execution time in C and Assembly, looking for code optimization in Assembly.
Description:

Consider three matrices of integers A, B, C and L x L size, defined in C language (these matrices could be randomly generated). Implement three equivalent functions (all functions must run in C language application):
The matrices must be static instantiates in C, at compiling-time.
These matrix must be ramdonly POPULATED, not randonly sized. In relation to L, its good that the size could vary in fixed intervals (5x5, 10x10, 50x50, 100x100, etc).

  1. in C language
  2. Assembly (AT&T/GAS)
  3. Assembly (Intel/NASM)
  • Group 1: (A x 2B); returning the greater value in the main diagonal.

Make experiments measuring the execution time between codes. Consider the average of the several executions and report the results.

What need to be presented:
  1. C language code
  2. Assembly code
  3. Documented reports from codes, describing the experiment's results of timed trial execution tests between two codes.
Project Evaluation:
  • Brief code explanation to the professor.
  • The report organization and fullness will be assessed, as well the code organization and operation.

Portuguese Version

Objetivos:
  • Realização de atividade prática englobando os vários conceitos abordados durante o curso.
  • Criar aplicações com interfaces entre linguagens de montagem e linguagens de alto nível (Assembly e Linguagem C)
  • Comparar tempo de execução do código em C e Assembly, visando otimização do código Assembly.
Descrição:

Considere três matrizes de inteiros A,B,C de tamanho L x L definidas em Linguagem C (as matrizes podem ser geradas de forma aleatória). Implemente três funções equivalentes (que devem ser executadas por um programa em Linguagem C): As matrizes podem ser instanciadas em C e podem ser definidas de forma estática (em tempo de compilação). O preenchimento aleatório refere-se ao conteúdo e não tamanho. Em relação ao tamanho L, é interessante que seja variado, mas pode ser variado em intervalos fixos (5x5, 10x10, 50x50, 100x100, etc).

  1. em Linguagem C
  2. em Assembly sintaxe AT&T/GAS
  3. em Assembly sintaxe Intel/NASM
  • Grupo 1: (A x 2B); retornando o maior valor da diagonal principal.

Faça experimentos para mensurar o tempo de execução de ambos os códigos. Considere a média de várias execuções e reporte os resultados.

O que deve ser entregue:
  1. Código Linguagem C
  2. Código Assembly
  3. Relatório documentando os códigos entregues e descrevendo os resultados dos experimentos de comparação de tempo de execução entre os dois códigos.
Como será a avaliação do trabalho:
  • Será realizada uma apresentação breve do código em execução para o professor.
    • É importante que todos os integrantes do grupo estejam cientes de todas as etapas do trabalho.
  • A organização e completude do relatório será avaliada, assim como a organização e funcionamento do código.

About

A simple project in C and Assembly (AT&T and Intel) for operating with Matrices.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 72.0%
  • Assembly 28.0%