Differences

This shows you the differences between two versions of the page.

Link to this comparison view

ac-is:teme-ie:course_project_assembly [2024/01/07 22:08]
ionut.pascal created
ac-is:teme-ie:course_project_assembly [2024/01/08 13:04] (current)
ionut.pascal
Line 10: Line 10:
  
 ===== Objectives ===== ===== Objectives =====
 +This is a different kind of assignment for students which are interested in using a CPU rather than building its architecture. The main objective of this project is to get familiar with the assembly language using a dedicated ISA, by accommodating the given examples and improving their functionality. You will: 
 +  * Develop a new program based on a given example; 
 +  * Work with low-level programming with limited hardware resources;
  
 ===== Description and requirements ===== ===== Description and requirements =====
 +Implement an assembly program which reads N elements from the keyboard and swaps the minimum value with the maximum value. The program shall have and use at least one subroutine - you can have the swap function here.
 +The implementation shall be done in 2 steps:
 +  - Build and run a C program which implements the desired functionality - better if you use pointers instead of fixed uni-dimensional arrays
 +  - Based on the C implementation,​ build the MARIE assembly program.
  
- +Beside the C program and the MAR program, you must upload a README file which contains a short comparison between the two solutions and a short description of the algorithm you've chosen.
-===== Implementation ===== +
  
 ===== Notes ===== ===== Notes =====
- +There are several examples provided to figure out how to execute diverse operations with the MARIE CPU. You can use them to understand the procedures. 
 +Assembly programming implies managing the hardware recourses properly; the closest higher-level programming that you already know is C programming with pointer use and dynamic allocation. ​
  
 ===== Additional details ===== ===== Additional details =====
Line 32: Line 36:
       * description of any complex coding parts that you consider additional explanation is needed and they are too long to be an inline comment;       * description of any complex coding parts that you consider additional explanation is needed and they are too long to be an inline comment;
   ​   ​
-<note important>​This assignment is an **individual** assignment; using any code from external sources can be considered ​as plagiarism and can lead to voiding the accumulated points! </​note>​+<note important>​This assignment is an **individual** assignment; using any code from external sources can be considered plagiarism and can lead to voiding the accumulated points! </​note>​
  
  
Line 38: Line 42:
  
   * +10.0 pts.: Correct implementation with passing stimuli from the keyboard   * +10.0 pts.: Correct implementation with passing stimuli from the keyboard
 +    * +2.0 pts.: C implementation ​
 +    * +8.0 pts.: Assembly implementation
 +    * +1.0 pts.: Bonus for C implementation if pointers are used for the array.
   * -1.0 pts.:  the absence of the README file;   * -1.0 pts.:  the absence of the README file;
   * -1.0 pts.:  bad coding style (chaotic indentation,​ irregular spacing, strange naming for variables, etc.);   * -1.0 pts.:  bad coding style (chaotic indentation,​ irregular spacing, strange naming for variables, etc.);
ac-is/teme-ie/course_project_assembly.1704658104.txt.gz · Last modified: 2024/01/07 22:08 by ionut.pascal
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0