CDA4205L Lab 4

pdf

School

University of Notre Dame *

*We aren’t endorsed by this school

Course

CDA4205

Subject

Computer Science

Date

Feb 20, 2024

Type

pdf

Pages

4

Uploaded by CaptainBee1404

Report
University of South Florida CDA 4205L Computer Architecture Lab Lab Report Semester: Spring 2023 Experiment Number: 4 Date: 2/1/2024 Lab Section: 006 Lab TA: Dr. Onur Bilgin Report Due Date: 2/8/2024 Submission Date: 2/1/2024 Team Member #1 name: Shokhrukh Ibragimov Member #2 name: Dayne Guy RUBRIC SUMMARY [2%] For attendance [8%] For showing/demo most of the in-lab work completed [90%] Report
ABSTRACT: [10%] State the purpose and objective of the lab. Give a brief introduction and summary of what you did, what you learned and your conclusion (1 paragraph). We worked on turning assembly code that had already been turned into machine code in Lab #4. Building on what we learned in Part 1, this lab taught us how to turn assembly language into binary code that a computer's processor can understand. This was done by doing things like removing comments and formatting. Using JupyterLab and specific resources like "example1_out1.txt" and "rv32im_isa.csv," we got hands-on experience in this important part of the programming toolchain. This helped us learn more about the complicated process that connects high-level programming with direct hardware interaction. INTRODUCTION: [5%] Write an introduction making sure to explain the lab/experiment (1-2 paragraphs). In Lab 4 of the ISA Assembler Design series, we use assembly code to learn more about how an assembler works at its heart. The main goal of this lab is to learn the basic steps that need to be taken before assembly code can be turned into machine code. As part of this preprocessing, the code is cleaned up by getting rid of comments and blank lines, and the style of the instructions is standardized. These steps are very important for getting the code ready to be turned into machine code, which is what the next part of the lab is all about. This lab gives you a hands-on look at how complicated assembly language is and how it is converted. It sets the stage for the next part, which is a more in-depth look at machine code generation. METHOD: Software Tools Used: [5%] List all the software tools you need to implement the lab. Jupyter Notebook Files: [5%] List all files included in your submission. Include a brief description (1 sentence) of each script. Only include files you/your group wrote or modified. Example1_out2.bin - output from test input Example1_out2.bin - output for assembler Lab4_assembler_design.ipynb - assembler code RESULTS: [40%] Describe your observations of your completed experiment. Include screenshots, plots, tables, or answers to questions, as required, for each lab task (T). Describe any issues experienced in the implementation. If your measured results differ from the expected results,
mention how far off you were and provide an explanation. This should be 1 paragraph per task (T). Your answers must be concise, coherent, complete, and correct. T1: < insert task 1 prompt > The following functions were implemented to convert assembly code to binary. See code below: get_inst_format() get_inst_opcode() get_inst_funct3() get_inst_funct7() get_2c_binary() Task 2: Bin file attached DISCUSSION: [15%] Discuss the implications of your work and results. Propose potential future work and any shortcomings of your design (2 paragraphs). The work done in Lab #4 of the ISA Assembler Design series has huge effects on how we think about making software, especially when it comes to low-level code. The process of turning assembly code that had already been turned into machine code showed us how careful and exact programming is at the hardware level. Each step in the lab exercise made me realize how important each part of the assembler is, and how small changes in how code is translated can affect how well and how quickly the software works. Our hands-on approach to this conversion process showed us how important it is to find the right mix between code that people can read and binary language that computers can understand.
Your preview ends here
Eager to read complete document? Join bartleby learn and gain access to the full version
  • Access to all documents
  • Unlimited textbook solutions
  • 24/7 expert homework help
This idea is especially useful in areas where software speed needs to be optimized, like in embedded systems and applications that have strict processing limits. Looking ahead, this lab experience shows me a few things I need to work on and get better in the future. The process of converting things by hand was very educational, but it also showed how robotics could be used in bigger situations. Making automatic tools for converting assembly to machine code could make things much more efficient and lower the chance of mistakes, especially in assembly programs that are very complicated. The lab also showed how important it is to have flexible assembly methods that can change to new processor architectures and instruction sets. In the future, we might work on making flexible, adaptable assembly tools that can handle a wide range of computing situations. This would help us use what we've learned in more situations and keep up with the fast pace of computer technology progress. CONCLUSION: [10%] Conclude the lab report, stating what the lab was about. Mention any major implementation issues and summarize your observations and discussion (1 paragraph). In conclusion, Lab #4 of the ISA Assembler Design series was a big step forward in how well we understood assembly language and how to turn it into machine code. In this lab, we not only used the preparation skills we learned in the last lab, but we also learned how to turn clean and formatted assembly code into machine code that can be run. This experience made us realize how important each part of the programming toolchain is, from high-level code to the binary language that a computer's processor can understand and run. It also made us more aware of how complicated software development and computer design are.