Cao201 computer architecture operating systems assessment


Computer Architecture & Operating Systems Assessment - Computer Architecture Assignment

Learning Outcomes -

a) Understand how to evaluate the performance of a computer system.

b) Understand the five classic components of a computer system.

The aim of this assignment is to give students the opportunity to learn more about assembly code, which maps very closely to the machine language itself. The machine language represents the lowest level interface between software and the underlying hardware, which makes assembly code the most direct way to interact with the hardware.

Instructions: This assignment is broken into three tasks, with each successive task building on the last.

In Task 1, students investigate how compilers translate code written in the high-level computer languages C to assembly code, how assemblers translate assembly to machine code, how linkers combine this machine code with library code, and finishing how the loader brings everything into memory for execution.

In Task 2, students learn how to disassemble C code in Visual Studio to its underlying assembly code.

This knowledge is then used to inspect the assembly instructions produced by a variety of C code snippet.

Finally in Task 3, students are asked to implement a number of short assembly procedures.

Task 1: Translation & Start Up of C Programs

1523_figure.png

The above diagram shows the standard four steps to translate a program written in the high-level C language to assembly, then to the machine code, linked with other library machine code, and finally loaded into memory for execution the underlying hardware.

Briefly describe both the processes (ovals) and files/data (rectangles) in the above diagram. The total length of the description should be limited to 800 words. You do not need to go into exhaustive detail on any one topic. Try to highlight the primary goals as well as the key operations / structures.

Task 2: Disassembling C Code in Visual Studio

In the accompanying Task 2 project you will find a number of small C code snippets. You are asked to give the disassembled result for each of these code snippets, with your own inline commenting explaining what the assembly instructions are doing.

You will be marked on your commenting, not on the disassembly you provide. If you do not annotate the disassembly you will not receive any marks.

We will go through the process of disassembling the first code snippet in a lab session.

Task 3: Complete assembly procedures

In the accompanying Task 3 project you will find a number of incomplete assembly procedures. Complete each of these assembly procedures so that the test harness completes without errors. Note that each procedure to be completed has a significant amount of context information about what has been provided and what needs to be done, as well as a discussion of several potential instructions / approaches that may be applicable.

Note that it is essential to provide comments for each line of assembly to make it clear that you understand not only what each line of assembly is doing, but also the structure of the function as a whole. Lack of comments will be heavily penalised.

Task 3 - Problem 1: Write an assembly procedure that returns the sum of two integers.

Task 3 - Problem 2: Write an assembly procedure that returns the minimum of two integers.

Task 3 - Problem 3: Write an assembly procedure that returns the Greatest Common Divisor (GCD) of two integers.

Attachment:- Assignment File.rar

Request for Solution File

Ask an Expert for Answer!!
Computer Engineering: Cao201 computer architecture operating systems assessment
Reference No:- TGS02941498

Expected delivery within 24 Hours