Binghamton University. CS-120 Summer Stacking Up. Text: Introduction to Computer Systems : Chapter 10
|
|
- Ralf Dean
- 5 years ago
- Views:
Transcription
1 Stacking Up Text: Introduction to Computer Systems : Chapter 10
2 Data Structures Conceptual Models Organize how we think about data Imply extra rules on how we can interact with data Reduce freedom of interaction with data Enables clearer (implied) understanding, more power Challenge apply the right data structure to the right problem
3 Vector Data Structure List of data n items Each data item contains a single word We can read or write any data item using an index Index starts at zero, and ends at n-1 Hard to insert or delete individual data elements at arbitrary indexes
4 Vectors in LC3 lea r1,vec ld r2,i add r3,r1,r2 ; r1->vec ; r2=i ; r3->vec[i] ldr r4,r3,#0 ; r4=vec[i] Read VEC[I] str r5,r3,#0 ; VEC[I]=r5 Write VEC[I] VEC.blkw 23 ; VEC vector with n=23
5 Data Structure Type Data structures: Organized collection of lower level data Vector: List of numbers Vector: List of LC3 instructions Vector: List of LC3 words Vector: List of LC3 pairs of words
6 Example: Vector of (x,y) coordinates ; Subroutines getx ; put r6[r0].x in r1 add r2,r0,r0 add r2,r2,r6 ldr r1,r2,#0 ret gety ; put r6[r0].y in r1 add r2,r0,r0 add r2,r2,r6 ldr r1,r2,#1 ret negr3 ; negate the value in r3 not r3,r3 add r3,r3,#1 ret ; find lowest x coord ld r3,nmax ld r0,count lea r6,vec minl add r0,r0,#-1 brn done jsr getx add r4,r3,r1 brzp minl add r3,r1,#0 jsr negr3 br minl done jsr negr3 st r3,minx HALT ; data NMAX.fill x8001 COUNT.fill #23 MINX.fill #0 VEC.blkw 46
7 The Stack
8 Stack Terminology (Stack of Books) Empty Stack : space on the floor for a stack of books Push : put a new book on the top of the stack of books Pop : take a book from the top of the stack of books Full Stack : the top of the stack of books hits the ceiling Stack Size : the number of books that can fit between the floor and the ceiling Stack Underflow : Trying to take a book from an empty stack Stack Overflow : Trying to add a book to a full stack
9 Other Pipe-Like Data Structures Stack Last-in / First-out List (LIFO) Supports PUSH and POP Que - First-in / First out List (FIFO) Supports QUE and POP DeQue (pronounced deck ) Combo Stack/Que Supports PUSH/QUE to add Supports POP/DEQUE to remove
10 Pipe Data Structures QUE PUSH DEQUE POP
11 Stack Direction Push/Pop from the top of the stack Stack grows up Push on top of stack, Pop from top of stack Obvious and Intuitive (like a stack of books) Push/Pop from the bottom of the stack Stack grows down Push on bottom of stack, Pop from bottom of stack Counter intuitive!!!! Useful when two stacks grow towards the middle Implemented this way in text
12 Implementing a Stack in LC3 Each element in the stack is a 16 bit word Need a pointer to the base of the stack (BASE) Negate for quick compare (STKMIN) Need a pointer to the current top of the stack (R6) Need a pointer to the maximum stack entry (STKMAX) Negated for quick compare
13 Creating an Empty Stack INITSTK ; Initialize a stack st r5,inr5 ld r6,base ; not r5,r6 add r5,r5,#1 st r5,stkmin ld r5,stksize add r5,r5,r6 not r5,r5 add r5,r5,#1 st r5,stkmax ld r5,inr5 ret BASE.fill 0x6000 STKSIZE.fill 0x1000 STKMIN.fill #0 STKMAX.fill #0 INR5.fill #0 OVERFLOW.fill #0 UNDERFLOW.fill #0
14 Pushing on the stack PUSH ; push the value in r0 on the stack st r5,psr5 ld r5,stkmax add r5,r5,r6 brnz PUSHOK ld r7,overflow br PUSHEX PUSHOK str r0,r6,#0 add r6,r6,#1 PUSHEX ld r5,psr5 ret PSR5.fill #0
15 Popping from this stack POP ; Pop value from the stack into r0 st r5,por5 add r6,r6,#-1 ld r5,stkmin add r5,r5,r6 brzp POPOK add r6,r6,#1 ld r7,underflow br POPEX POPOK ldr r0,r6,#0 POPEX ld r5,por5 ret POR5.fill #0
16 Using the Stack Example Specification Given VEC, a numeric vector with N entries, sort the vector from lowest to highest
17 Stack Sort init stack; ordered=0 do { push vec[0] on stack j=0; ordered=1 for (i=1, i<n; i++) { if (vec[i]>=stack) { while(x=pop()) { vec[j]=x, j=j+1 } } else ordered=0 push vec[i] on stack; } while(x=pop()) { vec[j]=x, j=j+1 } } until (ordered=1)
18 New Routine: SCOMP SCOMP ; Compare value in R0 with head of stack. set CC ; CC=N R0<Stk ; CC=Z R0=Stk ; CC=P R0>Stk ; WARNING: Assumes stack is not empty! ; WARNING: Modifies R5 ldr r5,r6,#-1 not r5,r5 add r5,r5,#1 add r5,r0,r5 ret
19 StackSort Register Usage REG R0 R1 R2 R3 R4 R5 R6 R7 Usage Current Value (usually VEC[i] or VEC[j]) ORDERED flag (0=not ordered, 1=ordered) VEC[i] VEC[j] Negative N Temp Values (Used in SCOMP) Current Stack Pointer Subroutine Return Address
20 StackSort LC3 jsr INITSTK and r1,r1,#0 ld r4,n lea r5,vec add r4,r4,r5 not r4,r4 add r4,r4,#1 oloop: lea r2,vec add r3,r2,#0 ldr r0,r2,#0 jsr PUSH add r1,r1,#1 lea r7,iempty st r7,underflow iloop add r2,r2,#1 add r5,r4,r2 brp eiloop ldr r0,r2,#0 jsr SCOMP brnz norder ipl jsr POP str r0,r3,#0 add r3,r3,#1 br ipl norder and r1,r1,#0 iempty ldr r0,r2,#0 jsr PUSH br iloop eiloop lea r7,oempty st r7,underflow opl jsr POP str r0,r3,#0 add r3,r3,#1 br opl oempty add r1,r1,#0 brz oloop HALT
21 Stack Application 2 - Calculator Reverse Polish Notation If you get a number, push it If you get an operator: pop arguments Calculate push the result For example, instead of 3 + 4, we write For example, instead of (3 + 4) x 5 we write x For example, instead of x 5 we write x +
22 Example Calculator ADD function ADD ; pop 2 values, add, and push the result jsr pop add r1,r0,#0 jsr pop add r0,r1,r0 jsr push ret
23 Subroutine Calling Itself (Recursion) For example: Factorial fact(n)=fact(n-1) x n for n>1 fact(1)=1 Q: How where do I save/restore R7? Q: Can I assume FACT does not change R1????? FACT ; arg in r1 result in r2 (uses r3) ; Save R7 add r2,r1,#0 ; add r1r1,#-1 brnz fend jsr FACT add r3,r2,#0 fml add r2,r2,r3 add r1,r1,#-1 brp fml fend ; Restore R7 ret
24 Subroutine Calling Itself (Recursion) For example: Factorial fact(n)=fact(n-1) x n for n>1 fact(1)=1 Need to save R7 before calling save Need to restore R7 after calling restore FACT ; arg in r1 result in r2 (uses r3) st r7,factr7 jsr FACTSAVE add r2,r1,#0 add r1,r1,#-1 brnz fend jsr FACT add r3,r2,#0 fml add r2,r2,r3 add r1,r1,#-1 brp fml fend jsr FACTREST ld r7,factr7 ret FACTR7.fill #0
25 Stack Usage Manage Recursion FACTSAVE ; Save FACTR7 and R1 in stack st r7,fsr7 st r0,fsr0 ld r0,factr7 jsr PUSH add r0,r1,#0 jsr PUSH ld r0,fsr0 ld r7,fsr7 ret FSR0.fill #0 FSR7.fill #0 FACTREST ; Restore FACTR7 and R1 from stack st r7,frr7 st r0,frr0 jsr POP add r1,r0,#0 jsr POP st r0,factr7 ld r0,frr0 ld r7,frr7 ret FRR0.fill #0 FRR7.fill #0
26 Invoking FACT jsr INITSTK ld r1,qfact jsr FACT st r2,ans HALT QFACT.fill #5 ANS.fill #0
1/30/2018. Conventions Provide Implicit Information. ECE 220: Computer Systems & Programming. Arithmetic with Trees is Unambiguous
University of Illinois at Urbana-Champaign Dept. of Electrical and Computer Engineering ECE 220: Computer Systems & Programming The Stack Abstraction Conventions Provide Implicit Information What does
More informationChapter 10 And, Finally... The Stack. ACKNOWLEDGEMENT: This lecture uses slides prepared by Gregory T. Byrd, North Carolina State University
Chapter 10 And, Finally... The Stack ACKNOWLEDGEMENT: This lecture uses slides prepared by Gregory T. Byrd, North Carolina State University 2 Stack: An Abstract Data Type An important abstraction that
More informationChapter 9 TRAP Routines and Subroutines
Chapter 9 TRAP Routines and Subroutines System Calls Certain operations require specialized knowledge and protection: specific knowledge of I/O device registers and the sequence of operations needed to
More informationMemory Usage in Programs
Memory Usage in Programs ECE2893 Lecture 4a ECE2893 Memory Usage in Programs Spring 2011 1 / 17 The Little Computer 3 (LC3) ECE2893 Memory Usage in Programs Spring 2011 2 / 17 The LC3 Instruction Set,
More informationSystem Calls. Chapter 9 TRAP Routines and Subroutines
System Calls Chapter 9 TRAP Routines and Subroutines Original slides from Gregory Byrd, North Carolina State University Modified slides by Chris Wilcox, Colorado State University Certain operations require
More informationSubroutines & Traps. Announcements. New due date for assignment 2 5pm Wednesday, 5May
Computer Science 210 s1c Computer Systems 1 2010 Semester 1 Lecture Notes Lecture 19, 26Apr10: Subroutines & Traps James Goodman! Announcements New due date for assignment 2 5pm Wednesday, 5May Test is
More informationChapter 9 TRAP Routines and Subroutines
Chapter 9 TRAP Routines and Subroutines ACKNOWLEDGEMENT: This lecture uses slides prepared by Gregory T. Byrd, North Carolina State University 5-2 System Calls Certain operations require specialized knowledge
More informationappendix a The LC-3 ISA A.1 Overview
A.1 Overview The Instruction Set Architecture (ISA) of the LC-3 is defined as follows: Memory address space 16 bits, corresponding to 2 16 locations, each containing one word (16 bits). Addresses are numbered
More informationTRAPs and Subroutines. University of Texas at Austin CS310H - Computer Organization Spring 2010 Don Fussell
TRAPs and Subroutines University of Texas at Austin CS310H - Computer Organization Spring 2010 Don Fussell System Calls Certain operations require specialized knowledge and protection: specific knowledge
More informationUniversity of Illinois at Urbana-Champaign First Midterm Exam, ECE 220 Honors Section
University of Illinois at Urbana-Champaign First Midterm Exam, ECE 220 Honors Section Name: SOLUTION IS IN RED Thursday 15 February 2018 Net ID: Be sure that your exam booklet has ELEVEN pages. Write your
More informationTrap Vector Table. Interrupt Vector Table. Operating System and Supervisor Stack. Available for User Programs. Device Register Addresses
Chapter 1 The LC-3b ISA 1.1 Overview The Instruction Set Architecture (ISA) of the LC-3b is defined as follows: Memory address space 16 bits, corresponding to 2 16 locations, each containing one byte (8
More informationChapter 9 TRAP Routines and Subroutines
Chapter 9 TRAP Routines and Subroutines System Calls Certain operations require specialized knowledge and protection: specific knowledge of I/O device registers and the sequence of operations needed to
More informationHomework 06. Push Z Push Y Pop Y Push X Pop X Push W Push V Pop V Push U Pop U Pop W Pop Z Push T Push S
Homework 06 1. How many TRAP service routines can be implemented in the LC-3? Why? Since the trap vector is 8 bits wide, 256 trap routines can be implemented in the LC-3. Why must a instruction be used
More informationTextbook chapter 10. Abstract data structures are. In this section, we will talk about. The array The stack Arithmetic using a stack
LC-3 Data Structures Textbook chapter 0 CMPE2 Summer 2008 Abstract data structures are LC-3 data structures Defined by the rules for inserting and extracting data In this section, we will talk about The
More informationLC-3 Subroutines and Traps. (Textbook Chapter 9)"
LC-3 Subroutines and Traps (Textbook Chapter 9)" Subroutines" Blocks can be encoded as subroutines" A subroutine is a program fragment that:" lives in user space" performs a well-defined task" is invoked
More informationImplementing Functions at the Machine Level
Subroutines/Functions Implementing Functions at the Machine Level A subroutine is a program fragment that... Resides in user space (i.e, not in OS) Performs a well-defined task Is invoked (called) by a
More informationMidterm 2 Review Chapters 4-16 LC-3
Midterm 2 Review Chapters 4-16 LC-3 ISA You will be allowed to use the one page summary. 8-2 LC-3 Overview: Instruction Set Opcodes 15 opcodes Operate instructions: ADD, AND, NOT Data movement instructions:
More information! What do we care about? n Fast program execution. n Efficient memory usage. n Avoid memory fragmentation. n Maintain data locality
Problem Chapter 10 Memory Model for Program Execution Original slides by Chris Wilcox, Colorado State University How do we allocate memory during the execution of a program written in C?! Programs need
More informationPart 7. Stacks. Stack. Stack. Examples of Stacks. Stack Operation: Push. Piles of Data. The Stack
Part 7 Stacks The Stack Piles of Data Stack Stack A stack is an abstract data structure that stores objects Based on the concept of a stack of items like a stack of dishes Data can only be added to or
More informationCS/ECE 252: INTRODUCTION TO COMPUTER ENGINEERING UNIVERSITY OF WISCONSIN MADISON
CS/ECE 252: INTRODUCTION TO COMPUTER ENGINEERING UNIVERSITY OF WISCONSIN MADISON Professor Guri Sohi TAs: Newsha Ardalani and Rebecca Lam Examination 4 In Class (50 minutes) Wednesday, Dec 14, 2011 Weight:
More informationChapter 10 Memory Model for Program Execution. Problem
Chapter 10 Memory Model for Program Execution Original slides by Chris Wilcox, Colorado State University Problem How do we allocate memory during the execution of a program written in C?! Programs need
More informationIntroduction to Computer Engineering. CS/ECE 252, Fall 2016 Prof. Guri Sohi Computer Sciences Department University of Wisconsin Madison
Introduction to Computer Engineering CS/ECE 252, Fall 2016 Prof. Guri Sohi Computer Sciences Department University of Wisconsin Madison Chapter 7 & 9.2 Assembly Language and Subroutines Human-Readable
More information2/6/2018. Let s Act Like Compilers! ECE 220: Computer Systems & Programming. Decompose Finding Absolute Value
University of Illinois at Urbana-Champaign Dept. of Electrical and Computer Engineering ECE 220: Computer Systems & Programming Let s Act Like Compilers! Let s have some fun! Let s pretend to be a C compiler!
More information11/10/2016. Review the Problem to Be Solved. ECE 120: Introduction to Computing. What Shall We Keep in the Registers? Where Are the Pieces in Memory?
University of Illinois at Urbana-Champaign Dept. of Electrical and Computer Engineering ECE 120: Introduction to Computing Letter Frequency Coding Review the Problem to Be Solved The task: given an ASCII
More informationChapter 14 Functions. Function. Example of High-Level Structure. Functions in C
Chapter 4 Functions Based on slides McGraw-Hill Additional material 4/5 Lewis/Martin Function Smaller, simpler, subcomponent of program Provides abstraction Hide low-level details Give high-level structure
More informationCopyright The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Review Topics
Second Midterm Review Slides Original slides from Gregory Byrd, North Carolina State University Modified slides by Chris Wilcox, Colorado State University Review Topics LC-3 Programming /Stack Execution
More informationChapter 10 And, Finally... The Stack
Chapter 10 And, Finally... The Stack Memory Usage Instructions are stored in code segment Global data is stored in data segment Local variables, including arryas, uses stack Dynamically allocated memory
More informationUNIVERSITY OF WISCONSIN MADISON
CS/ECE 252: INTRODUCTION TO COMPUTER ENGINEERING UNIVERSITY OF WISCONSIN MADISON Prof. Gurindar Sohi TAs: Sujith Surendran, Lisa Ossian, Minsub Shin Midterm Examination 4 In Class (50 minutes) Wednesday,
More informationInput & Output. Lecture 16. James Goodman (revised by Robert Sheehan) Computer Science 210 s1c Computer Systems 1 Lecture Notes
Computer Science 210 s1c Computer Systems 1 Lecture Notes Lecture 16 Input & Output James Goodman (revised by Robert Sheehan) Credits: Slides prepared by Gregory T. Byrd, North Carolina State University
More informationECE 109 Sections 602 to 605 Final exam Fall December, 2007
ECE 109 Sections 602 to 605 Final exam Fall 2007 13 December, 2007 This is a closed book and closed notes exam. Calculators, PDA's, cell phones, and any other electronic or communication devices may not
More informationModule 8: Atmega32 Stack & Subroutine. Stack Pointer Subroutine Call function
Module 8: Atmega32 Stack & Subroutine Stack Pointer Subroutine Call function Stack Stack o Stack is a section of RAM used by the CPU to store information temporarily (i.e. data or address). o The CPU needs
More informationComputer Systems Lecture 9
Computer Systems Lecture 9 CPU Registers in x86 CPU status flags EFLAG: The Flag register holds the CPU status flags The status flags are separate bits in EFLAG where information on important conditions
More informationLC-3 TRAP Routines. Textbook Chapter 9
LC-3 TRAP Routines Textbook Chapter 9 System Calls Certain operations require specialized knowledge and protection: specific knowledge of I/O device registers and the sequence of operations needed to use
More informationSubroutines and Stack Usage on the MicroBlaze. ECE 3534 Microprocessor System Design
Subroutines and Stack Usage on the MicroBlaze ECE 3534 Microprocessor System Design 1 MicroBlaze Subroutines Same idea as a C/C++ function There s no call instruction Instead, branch and link Example:
More informationChapter 17 Recursion
Chapter 17 Recursion What is Recursion? A recursive function is one that solves its task by calling itself on smaller pieces of data. Similar to recurrence function in mathematics. Like iteration -- can
More informationSubprograms, Subroutines, and Functions
Subprograms, Subroutines, and Functions Subprograms are also called subroutines, functions, procedures and methods. A function is just a subprogram that returns a value; say Y = SIN(X). In general, the
More information3-ADDRESS CODE SIMULATOR DOCUMENTATION
3-ADDRESS CODE SIMULATOR DOCUMENTATION A) SIMULATOR OVERVIEW 1) The 3-address code simulator is a two-pass simulator. The first scans and interprets the instruction and the arguments. The second pass executes
More informationLC-3 Instruction Set Architecture
CMPE12 Notes LC-3 Instruction Set Architecture (Textbookʼs Chapter 5 and 6)# Instruction Set Architecture# ISA is all of the programmer-visible components and operations of the computer.# memory organization#
More informationLC-2 Programmer s Reference and User Guide
LC-2 Programmer s Reference and User Guide University of Michigan EECS 100 Matt Postiff Copyright (C) Matt Postiff 1995-1999. All rights reserved. Written permission of the author is required for duplication
More informationAnd. Fin a l l i... The Slack
chapter 10 And. Fin a l l i... The Slack We have finished our treatment of the LC-3 ISA. Before moving up another level of abstraction in Chapter 11 to programming in C, there is a particularly important
More informationProblem Solving in C. Stepwise Refinement. ...but can stop refining at a higher level of abstraction. Same basic constructs. as covered in Chapter 6
Problem Solving in C Stepwise Refinement as covered in Chapter 6...but can stop refining at a higher level of abstraction. Same basic constructs Sequential -- C statements Conditional -- if-else, switch
More informationOur Simulation Equivalent: -- readmemb( "os.bin" ) -- PC <== x0200
LC3 OS basics LC3 System Start-Up Assumptions We will write an OS for the LC3. What would a real LC3 do at start up? 1. BIOS execution --- PC points to BIOS (Basic IO System). --- POST: Test and initialize
More informationCS 135: Computer Architecture I
What next? : Computer Architecture I Instructor: Prof. Bhagi Narahari Dept. of Computer Science Course URL: www.seas.gwu.edu/~bhagiweb/cs135/ Low level/machine-level Programming Assembly Language programming
More informationCS/ECE 252: INTRODUCTION TO COMPUTER ENGINEERING UNIVERSITY OF WISCONSIN MADISON
CS/ECE 252: INTRODUCTION TO COMPUTER ENGINEERING UNIVERSITY OF WISCONSIN MADISON Prof. Mikko Lipasti & Prof. Gurinder S. Sohi TAs: Daniel Chang, Felix Loh, Philip Garcia, Sean Franey, Vignyan Kothinti
More informationMCA SEM-II Data Structure
MCA SEM-II Data Structure Timings: 30 Minutes] Objective Questions Keys [ Marks - 40 1. The memory address of the first element of an array is called a. Floor address b. Foundation address c. First address
More informationCS/ECE 252: INTRODUCTION TO COMPUTER ENGINEERING COMPUTER SCIENCES DEPARTMENT UNIVERSITY OF WISCONSIN-MADISON
CS/ECE 252: INTRODUCTION TO COMPUTER ENGINEERING COMPUTER SCIENCES DEPARTMENT UNIVERSITY OF WISCONSIN-MADISON Prof. Mark D. Hill & Prof. Parmesh Ramanathan TAs Kasturi Bidarkar, Ryan Johnson, Jie Liu,
More informationIntroduction to Computer Engineering. CS/ECE 252, Spring 2017 Rahul Nayar Computer Sciences Department University of Wisconsin Madison
Introduction to Computer Engineering CS/ECE 252, Spring 2017 Rahul Nayar Computer Sciences Department University of Wisconsin Madison Chapter 7 & 9.2 Assembly Language and Subroutines Human-Readable Machine
More informationCS/ECE 252: INTRODUCTION TO COMPUTER ENGINEERING COMPUTER SCIENCES DEPARTMENT UNIVERSITY OF WISCONSIN-MADISON
CS/ECE 252: INTRODUCTION TO COMPUTER ENGINEERING COMPUTER SCIENCES DEPARTMENT UNIVERSITY OF WISCONSIN-MADISON Prof. Mark D. Hill & Prof. Parmesh Ramanathan TAs Kasturi Bidarkar, Ryan Johnson, Jie Liu,
More informationCS W3134: Data Structures in Java
CS W3134: Data Structures in Java Lecture #10: Stacks, queues, linked lists 10/7/04 Janak J Parekh HW#2 questions? Administrivia Finish queues Stack/queue example Agenda 1 Circular queue: miscellany Having
More informationLC-3 Instruction Set Architecture. Textbook Chapter 5
LC-3 Instruction Set Architecture Textbook Chapter 5 Instruction set architecture What is an instruction set architecture (ISA)? It is all of the programmer-visible components and operations of the computer
More information컴퓨터개념및실습. 기말고사 review
컴퓨터개념및실습 기말고사 review Sorting results Sort Size Compare count Insert O(n 2 ) Select O(n 2 ) Bubble O(n 2 ) Merge O(n log n) Quick O(n log n) 5 4 (lucky data set) 9 24 5 10 9 36 5 15 9 40 14 39 15 45 (unlucky
More informationECE 190 Midterm Exam 3 Spring 2011
ECE 190 Midterm Exam 3 Spring 2011 Practice Exam Notes: This exam will consist entirely of five programming problems. Each problem will be graded separately. We will provide skeleton codes for each problem.
More informationCSIS1120A. 10. Instruction Set & Addressing Mode. CSIS1120A 10. Instruction Set & Addressing Mode 1
CSIS1120A 10. Instruction Set & Addressing Mode CSIS1120A 10. Instruction Set & Addressing Mode 1 Elements of a Machine Instruction Operation Code specifies the operation to be performed, e.g. ADD, SUB
More informationCS 206 Introduction to Computer Science II
CS 206 Introduction to Computer Science II 07 / 26 / 2016 Instructor: Michael Eckmann Today s Topics Comments/Questions? Stacks and Queues Applications of both Priority Queues Michael Eckmann - Skidmore
More information1 P age DS & OOPS / UNIT II
UNIT II Stacks: Definition operations - applications of stack. Queues: Definition - operations Priority queues - De que Applications of queue. Linked List: Singly Linked List, Doubly Linked List, Circular
More informationRegister Files. Single Bus Architecture. Register Files. Single Bus Processor. Term Project: using VHDL. Accumulator based architecture
Register Files DR 3 SelS Design and simulate the LC-3 processor using VHDL Term Project: Single Processor Decoder... R R3 R6...... mux mux S S SelDR 3 DRin Clock 3 SelS LC-3 Architecture 3 Register File
More informationCS/ECE 252: INTRODUCTION TO COMPUTER ENGINEERING UNIVERSITY OF WISCONSIN MADISON
CS/ECE 252: INTRODUCTION TO COMPUTER ENGINEERING UNIVERSITY OF WISCONSIN MADISON Prof Mark D. Hill and Prof. Gurindar Sohi TAs: Rebecca Lam, Mona Jalal, Preeti Agarwal, Pradip Vallathol Midterm Examination
More informationStack Frames. September 2, Indiana University. Geoffrey Brown, Bryce Himebaugh 2015 September 2, / 15
Stack Frames Geoffrey Brown Bryce Himebaugh Indiana University September 2, 2016 Geoffrey Brown, Bryce Himebaugh 2015 September 2, 2016 1 / 15 Outline Preserving Registers Saving and Restoring Registers
More informationDEEPIKA KAMBOJ UNIT 2. What is Stack?
What is Stack? UNIT 2 Stack is an important data structure which stores its elements in an ordered manner. You must have seen a pile of plates where one plate is placed on top of another. Now, when you
More informationECE 411 Exam 1. This exam has 5 problems. Make sure you have a complete exam before you begin.
This exam has 5 problems. Make sure you have a complete exam before you begin. Write your name on every page in case pages become separated during grading. You will have three hours to complete this exam.
More informationA block of memory (FlashROM) starts at address 0x and it is 256 KB long. What is the last address in the block?
A block of memory (FlashROM) starts at address 0x00000000 and it is 256 KB long. What is the last address in the block? 1 A block of memory (FlashROM) starts at address 0x00000000 and it is 256 KB long.
More informationChapter 7 Assembly Language
Chapter 7 Assembly Language Computing Layers Problems Algorithms Language Instruction Set Architecture Microarchitecture Circuits Devices 2 Human-Readable Machine Language Computers like ones and zeros
More informationChapter 6 Programming the LC-3
Chapter 6 Programming the LC-3 Based on slides McGraw-Hill Additional material 4/5 Lewis/Martin Aside: Booting the Computer How does it all begin? We have LC-3 hardware and a program, but what next? Initial
More informationChapter 17 Recursion
Chapter 17 Recursion What is Recursion? A recursive function is one that solves its task by calling itself on smaller pieces of data. Similar to recurrence relation in mathematics. Sometimes recursion
More informationIntro. to Computer Architecture Homework 4 CSE 240 Autumn 2005 DUE: Mon. 10 October 2005
Name: 1 Intro. to Computer Architecture Homework 4 CSE 24 Autumn 25 DUE: Mon. 1 October 25 Write your answers on these pages. Additional pages may be attached (with staple) if necessary. Please ensure
More informationSystems Architecture The Stack and Subroutines
Systems Architecture The Stack and Subroutines The Stack p. 1/9 The Subroutine Allow re-use of code Write (and debug) code once, use it many times A subroutine is called Subroutine will return on completion
More informationADD R3, R4, #5 LDR R3, R4, #5
ECE 109 Sections 602 to 605 Exam 2 Fall 2007 Solution 6 November, 2007 Problem 1 (15 points) Data Path In the table below, the columns correspond to two LC/3 instructions and the rows to the six phases
More informationIntroduction to Computer Engineering. CS/ECE 252, Spring 2017 Rahul Nayar Computer Sciences Department University of Wisconsin Madison
Introduction to Computer Engineering CS/ECE 252, Spring 2017 Rahul Nayar Computer Sciences Department University of Wisconsin Madison Chapter 8 & 9.1 I/O and Traps Aside Off-Topic: Memory Hierarchy 8-3
More informationCS/ECE 252: INTRODUCTION TO COMPUTER ENGINEERING UNIVERSITY OF WISCONSIN MADISON
CS/ECE 252: INTRODUCTION TO COMPUTER ENGINEERING UNIVERSITY OF WISCONSIN MADISON Prof. Gurindar Sohi TAs: Pradip Vallathol and Junaid Khalid Examination 4 In Class (50 minutes) Wednesday, December 12,
More informationChapter 7 Subroutines. Richard P. Paul, SPARC Architecture, Assembly Language Programming, and C
Chapter 7 Subroutines Richard P. Paul, SPARC Architecture, Assembly Language Programming, and C 2 Subroutines Subroutines allow us to either to repeat a computation or to repeat the computation with different
More informationSupport for high-level languages
Outline: Support for high-level languages memory organization ARM data types conditional statements & loop structures the ARM Procedure Call Standard hands-on: writing & debugging C programs 2005 PEVE
More informationChapter 14 Functions
Chapter 14 Functions Function Smaller, simpler, subcomponent of program Provides abstraction hide low-level details give high-level structure to program, easier to understand overall program flow enables
More informationCIT 593: Intro to Computer Systems Homework #4: Assembly Language Due October 18, 2012, 4:30pm. Name
CIT 593: Intro to Computer Systems Homework #4: Assembly Language Due October 18, 2012, 4:30pm Instructions You may print this document and write your answers here, or submit solutions on a separate piece
More informationThat is, we branch to JUMP_HERE, do whatever we need to do, and then branch to JUMP_BACK, which is where we started.
CIT 593 Intro to Computer Systems Lecture #11 (10/11/12) Previously we saw the JMP and BR instructions. Both are one-way jumps : there is no way back to the code from where you jumped, so you just go in
More informationSubroutines. int main() { int i, j; i = 5; j = celtokel(i); i = j; return 0;}
Subroutines Also called procedures or functions Example C code: int main() { int i, j; i = 5; j = celtokel(i); i = j; return 0;} // subroutine converts Celsius to kelvin int celtokel(int i) { return (i
More informationThe LC-3 Instruction Set Architecture. ISA Overview Operate instructions Data Movement instructions Control Instructions LC-3 data path
Chapter 5 The LC-3 Instruction Set Architecture ISA Overview Operate instructions Data Movement instructions Control Instructions LC-3 data path A specific ISA: The LC-3 We have: Reviewed data encoding
More informationIntroduction to Computer Engineering. CS/ECE 252, Fall 2012 Prof. Guri Sohi Computer Sciences Department University of Wisconsin Madison
Introduction to Computer Engineering CS/ECE 252, Fall 2012 Prof. Guri Sohi Computer Sciences Department University of Wisconsin Madison Chapter 8 & 9.1 I/O and Traps I/O: Connecting to Outside World So
More informationPart 5,Assembly Language Questions
Part,Assembly Language Questions This study guide is provided as an aid in helping you to study for the ECE Department s 18-4, Fundamentals of Computer Engineering. The guide is a collection of previous
More informationCS/ECE 252: INTRODUCTION TO COMPUTER ENGINEERING UNIVERSITY OF WISCONSIN MADISON
CS/ECE 252: INTRODUCTION TO COMPUTER ENGINEERING UNIVERSITY OF WISCONSIN MADISON Prof. Gurindar Sohi, Kai Zhao TAs: Yuzhe Ma, Annie Lin, Mohit Verma, Neha Mittal, Daniel Griffin, Examination 4 In Class
More informationECE 206, Fall 2001: Lab 3
ECE 206, : Lab 3 Data Movement Instructions Learning Objectives This lab will give you practice with a number of LC-2 programming constructs. In particular you will cover the following topics: - Load/store
More informationCopyright The McGraw-Hill Companies, Inc. Persion required for reproduction or display. What is Recursion?
Chapter 17 Recursion Original slides from Gregory Byrd, North Carolina State University Modified slides by Chris Wilcox, Colorado State University! A recursive function is one that solves its task by calling
More informationMachine code. Nils Jansen December 12, 2017
Machine code Nils Jansen December 12, 2017 Overview So far Circuits Memory ALU Data Path Fetch-Decode-Execute Cycle Fetch-decode-execute cycle Today Machine code Stack 2 Recap: Execute-phase: Computation
More informationWhat is SaM? SaM is a simple stack machine designed to introduce you to compilers in a few lectures SaM I: written by Dr. Keshav Pingali around 2000
SaM I Am What is SaM? SaM is a simple stack machine designed to introduce you to compilers in a few lectures SaM I: written by Dr. Keshav Pingali around 2000 modeled vaguely after JVM SaM II: complete
More informationCMPSCI 201 Fall 2005 Midterm #2 Solution
CMPSCI 201 Fall 2005 Midterm #2 Solution Professor William T. Verts 10 Points Convert the decimal number -47.375 into (a) binary scientific notation (i.e., ±1.xxxx 2 Y ), and (b) the equivalent binary
More informationLoad -- read data from memory to register. Store -- write data from register to memory. Load effective address -- compute address, save in register
Data Movement Instructions Load -- read data from memory to register LD: PC-relative mode LDR: base+offset mode LDI: indirect mode Store -- write data from register to memory ST: PC-relative mode STR:
More informationProcess Context & Interrupts. New process can mess up information in old process. (i.e. what if they both use the same register?)
1 Process Context 1.1 What is context? A process is sometimes called a task, subroutine or program. Process context is all the information that the process needs to keep track of its state. Registers Temporary
More informationProgramming Model 2 A. Introduction
Programming Model 2 A. Introduction Objectives At the end of this lab you should be able to: Use direct and indirect addressing modes of accessing data in memory Create an iterative loop of instructions
More informationFun facts about recursion
Outline examples of recursion principles of recursion review: recursive linked list methods binary search more examples of recursion problem solving using recursion 1 Fun facts about recursion every loop
More informationCprE 288 Introduction to Embedded Systems Course Review for Exam 3. Instructors: Dr. Phillip Jones
CprE 288 Introduction to Embedded Systems Course Review for Exam 3 Instructors: Dr. Phillip Jones 1 Announcements Exam 3: See course website for day/time. Exam 3 location: Our regular classroom Allowed
More informationCOMP 303 Computer Architecture Lecture 3. Comp 303 Computer Architecture
COMP 303 Computer Architecture Lecture 3 Comp 303 Computer Architecture 1 Supporting procedures in computer hardware The execution of a procedure Place parameters in a place where the procedure can access
More informationLab 1. Warm-up : discovering the target machine, LC-3
Lab 1 Warm-up : discovering the target machine, LC-3 Credits This sequence of compilation labs has been inspired by those designed by C. Alias and G. Iooss in 2013/14. In 2016/17 we changed the support
More informationChapter 7 Assembly Language. ACKNOWLEDGEMENT: This lecture uses slides prepared by Gregory T. Byrd, North Carolina State University
Chapter 7 Assembly Language ACKNOWLEDGEMENT: This lecture uses slides prepared by Gregory T. Byrd, North Carolina State University 2 Human-Readable Machine Language Computers like ones and zeros 0001110010000110
More informationBinghamton University. CS-120 Summer Introduction to C. Text: Introduction to Computer Systems : Chapters 11, 12, 14, 13
Introduction to C Text: Introduction to Computer Systems : Chapters 11, 12, 14, 13 Problem: Too Many Details For example: Lab 7 Bubble Sort Needed to keep track of too many details! Outer Loop When do
More informationAssembly Language. University of Texas at Austin CS310H - Computer Organization Spring 2010 Don Fussell
Assembly Language University of Texas at Austin CS310H - Computer Organization Spring 2010 Don Fussell Human-Readable Machine Language Computers like ones and zeros 0001110010000110 Humans like symbols
More informationTutorial 1: Programming Model 1
Tutorial 1: Programming Model 1 Introduction Objectives At the end of this lab you should be able to: Use the CPU simulator to create basic CPU instructions Use the simulator to execute the basic CPU instructions
More informationFrom last time. What is the effect on R0 (in terms of an equivalent multiplication) of each of the following ARM instructions? ADD R0, R0, R0,LSL #3
OMP15111 Lecture 9 1/26 From last time What is the effect on R0 (in terms of an equivalent multiplication) of each of the following ARM instructions? ADD R0, R0, R0,LSL #3 RSB R0, R0, R0,LSL #2 Write down
More informationECE/CS 252: INTRODUCTION TO COMPUTER ENGINEERING UNIVERSITY OF WISCONSIN MADISON
ECE/CS 252: INTRODUCTION TO COMPUTER ENGINEERING UNIVERSITY OF WISCONSIN MADISON Prof. Mikko Lipasti & Prof. Gurindar S. Sohi TAs: Felix Loh, Daniel Chang, Philip Garcia, Sean Franey, Vignyan Kothinti
More informationARM Cortex-M4 Architecture and Instruction Set 4: The Stack and subroutines
ARM Cortex-M4 Architecture and Instruction Set 4: The Stack and subroutines M J Brockway February 13, 2016 The Cortex-M4 Stack SP The subroutine stack is full, descending It grows downwards from higher
More informationCprE 288 Introduction to Embedded Systems ARM Assembly Programming: Translating C Control Statements and Function Calls
CprE 288 Introduction to Embedded Systems ARM Assembly Programming: Translating C Control Statements and Function Calls Instructors: Dr. Phillip Jones 1 Announcements Final Projects Projects: Mandatory
More informationARM Assembly Language. Programming
Outline: ARM Assembly Language the ARM instruction set writing simple programs examples Programming hands-on: writing simple ARM assembly programs 2005 PEVE IT Unit ARM System Design ARM assembly language
More information