Example: biology

ECE 2730 Computer Organization Laboratory Assembly ...

ECE 2730 Computer Organization LaboratoryAssembly Language ProgrammingByDr. Apoorva Kapadia(Undergraduate Laboratory Coordinator)&Matthew MurdockUpdated on July 4, 2019 The Holcombe Department of Electrical & Computer EngineeringClemson UniversityClemson, SC - Lab 1 Compiling and Testing Assembly Background .. Assignment ..72 Lab 2 Simple Assignments and Background .. Data Storage and Variables .. Moving Data, Addition, Subtraction, and Constants .. Data Sizes, Register References, and Opcode Suffixes.

Jul 04, 2019 · Addressing Modes: Arrays and Pointers 50 ... so a good understanding of it will provide valuable insight into the fundamentals of CPU design, the operation of the datapath, and program execution. ... All of your assignments will consist of two program source les. One is a C program that sets up the

Tags:

  Fundamentals, Addressing, The fundamentals

Information

Domain:

Source:

Link to this page:

Please notify us if you found a problem with this document:

Other abuse

Advertisement

Transcription of ECE 2730 Computer Organization Laboratory Assembly ...

1 ECE 2730 Computer Organization LaboratoryAssembly Language ProgrammingByDr. Apoorva Kapadia(Undergraduate Laboratory Coordinator)&Matthew MurdockUpdated on July 4, 2019 The Holcombe Department of Electrical & Computer EngineeringClemson UniversityClemson, SC - Lab 1 Compiling and Testing Assembly Background .. Assignment ..72 Lab 2 Simple Assignments and Background .. Data Storage and Variables .. Moving Data, Addition, Subtraction, and Constants .. Data Sizes, Register References, and Opcode Suffixes.

2 Multiplication and Division .. Assignment .. 223 Lab 3 Control Jumps, Labels, and Flags .. Complex and Compound Conditional Expressions .. if then else Conditional Expressions .. Special Looping Instructions .. Long Distance Jumps .. Assignment .. 464 Lab 41 addressing Modes: Arrays and addressing Data in the CPU .. Simple addressing Register, Immediate, and Direct .. Declaring and Initializing Arrays.

3 Working with Arrays An Application of Direct addressing .. Working with Arrays Direct Indexed and Based Indexed addressing .. Working with Pointers Register Indirect addressing .. Putting it all Together An Example using Pointers, Arrays, and Structures .. Summary of addressing Modes .. Assignment .. 665 Lab 5 Subroutines and the Why Use Subroutines? .. Calling and Returning from Subroutines .. An Introduction to the Stack.

4 Pushing To and Popping From the Stack .. Stack Frames: Caller and Callee Responsibilities .. Stack Frames: The Prolog, Epilog, and Local Variables .. Putting it all Together .. A Note about Recursion .. Assignment .. 1126 Subroutine Parameters and Introduction to Parameters .. Parameters in Registers .. Subroutine Returns .. Subroutine Assembler Directives .. Assignment .. 12527 Appendix ACode Comments1298 Appendix BUseful Terminal Commands1319 Appendix CWorking Remotely13310 Appendix DASCII Code1363 IntroductionThe purpose of ECE 273 is to teach you the basics of Intel 80x86 Assembly language.

5 You will learn inECE 272 lecture that Assembly language (or simply Assembly ) is important because it is the principallink between the software world of high-level languages like C and Java and the hardware world ofCPU design. Assembly language is the lowest-level, human-readable programming medium we can useto express complete application programs. Assembly language gives full access to the programmablefeatures of the hardware, so a good understanding of it will provide valuable insight into the fundamentalsof CPU design, the operation of the datapath, and program the creation of compilers and assemblers, Assembly language programming as an art has virtuallydisappeared from the face of the Earth, so of what use is it to you?

6 There are several major advan-tages to understanding Assembly language. First, compilers translate high-level languages into assemblylanguage, so compiler writers must understand Assembly . Operating systems also include critical com-ponents written in Assembly . Furthermore, embedded and mobile device programming often requireknowledge of Assembly language. As these technologies become more and more important to the overallperformance and flexibility of Computer systems, knowledge of the Computer at the Assembly -languagelevel will prove to be a valuable asset.

7 Even if you spend your entire career programming in high-levellanguages, a basic understanding of Assembly language concepts will give you an insight into your workthat will in turn make you more valuable as an electrical or Computer these considerations in mind, ECE 273 will not strive to make you a proficient Assembly languageprogrammer. However, like most programming languages, you simply cannot grasp the key concepts bymere discussion. Therefore, you will, for a semester, become an Assembly language programmer just likethe hackers of old.

8 ECE 273 is a Laboratory class, meaning we will provide an environment for you togain hands-on experience with the tools and concepts used in the course. This approach also means thatyou will only get from it what you put into it. The more time you spend working on your program, themore you will learn from it, and the more you will understand about how and why Assembly languagesworks the way it whole Laboratory class provides a study of Assembly language from the point of view of a high-level language, namely C.

9 For example, C provides a control structure called the for loop, and we will(eventually) discuss how to implement a for loop in Assembly language. As such, a good knowledgeof C is necessary to fully understand and succeed in the Laboratory assignments. The goal of thefirst lab is to introduce you to the tools you will need throughout this course. Most of what you willneed to know to be successful in ECE 273 will come from a collection of documents available on theweb at This site includes:background material on the Intel 80386, which outlines the features of the CPU and its respectiveassembly language; the GNU Debugger (GDB), although it is not required (but still encouraged) forthis course; and information on navigating your way around the UNIX terminal.

10 The Appendix of thismanual also provides resources for successfully completing each development and testing, any flavor of Linux should suffice, as they are all based on UNIX. If youare new to UNIX, you may need to seek out a more complete reference at the library or online andspend some time familiarizing yourself with the fundamentals . For each lab, you must be able to logonto a campus UNIX machine and edit files with any of the standard text editors (vi, gedit, nano, pico,etc).


Related search queries