Lecture VIII: Branching and Control Statements. Xuan Guo. CSC 3210 Computer Organization and Programming Georgia State University.
|
|
- Dorothy Woods
- 5 years ago
- Views:
Transcription
1 Lecture VIII: Branching and Control Statements CSC 3210 Computer Organization and Programming Georgia State University February 5, 2015
2 This lecture Plan for the lecture: Recap: Filling delay slot Branching Examples Control Statements While Annulled conditional branch Do For If Then If Else
3 Instruction Cycle von Neumann cycle broken into 4 machine cycles: Instruction fetch Execute Memory access Store results F E M W Fetch & decode instruction Execute arithmetic instruction Access memory for a load or store instruction Write instruction results back to register file obtain any operands compute branch target address fetch instruction at target of branch instruction compute memory address
4 Data Dependencies Load Delay Problem load [%o0], %o1 add %o1, %o2, %o
5 Branch Delay Problem call.mul add %o0, 2, %l0 Insert branch delay slot instruction (Ex: ) does nothing to change the state of the machine
6 pc & npc
7 Branching Testing store state of execution: conditional codes Z: whether the result was zero N: whether the result was negative V: whether execution resulted in a number too large to store in the register C: whether execution resulted in a number that generated a carry out of register addcc subcc cmp reg, reg_or_imm, reg reg, reg_or_imm, reg reg, reg_or_imm subcc reg, reg_or_imm, %g0 Special add and sub instructions: cc is appended to the mnemonic, and the instruction sets condition codes Z, N, V, and C to save the state of execution.
8 Branching also delayed control transfer instructions Branch instructions are similar to call instructions They will specify the label of the destination instruction. delayed instruction will be executed before branch takes place test the condition codes b icc label b icc stands for one of the branches testing the integer condition codes
9 Branching Assembler Mnemonic ba bn Unconditional Branches Branch always, goto Branch never Assembler Mnemonic Unconditional Branches Complement bl Branch on less than zero bge ble Branch on less or equal to zero bg be Branch on equal to zero bne bne Branch on not equal to zero be bge Branch on greater or equal to zero bl bg Branch on greater than zero ble
10 Example y = (x 1)/(x 10) for 0 <= x <= 9 C program: int x; int y; for(x = 0; x<=9; x++){ y = (x-1)/(x-10); } x = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 y = 0, 0, 0, 0, 0, 0, -1, -2, -3, -8
11 Example y = (x 1)/(x 10) for 0 <= x <= 9.global main main: mov 0, %x_r ba test sub %x_r, 1, %o0 sub %x_r, 10, %o1 call.div mov %o0, %y_r add %x_r, 1, %x_r test: cmp %x_r, 10 bl loop C program: for(x = 0; x<=9; x++){ } y = (x-1)/(x-10); x = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 y = 0, 0, 0, 0, 0, 0, -1, -2, -3, -8
12 .file "ex3.c".global.div.section ".text".align 4.global main.type main, #function.proc 04 main:!#prologue# 0 save %sp, -120, %sp!#prologue# 1 mov 2, %g1 st %g1, [%fp-20].ll2: ld [%fp-20], %g1 cmp %g1, 9 bg.ll3 ld [%fp-20], %g1 add %g1, -1, %o5 ld [%fp-20], %g1 add %g1, -10, %g1 mov %o5, %o0 mov %g1, %o1 call.div, 0 mov %o0, %g1 st %g1, [%fp-24] ld [%fp-20], %g1 add %g1, 1, %g1 st %g1, [%fp-20] b.ll2.ll3: mov %g1, %i0 ret restore.size main,.-main.ident "GCC: (GNU) 3.4.6"
13 Example y = (x 1)/(x 10) for 0 <= x <= 9.global main main: mov 0, %x_r ba test sub %x_r, 1, %o0 call.div sub %x_r, 10, %o1 mov %o0, %y_r add %x_r, 1, %x_r test: cmp %x_r, 10 bl loop y = (x 1)/(x 10) for 0 <= x <= 9.global main main: mov 0, %x_r ba test sub %x_r, 1, %o0 sub %x_r, 10, %o1 call.div mov %o0, %y_r add %x_r, 1, %x_r test: cmp %x_r, 10 bl loop
14 Example y = (x 1)/(x 10) for 0 <= x <= 9.global main main: mov 0, %x_r ba test call.div sub %x_r, 10, %o1 mov %o0, %y_r add %x_r, 1, %x_r test: cmp %x_r, 10 bl loop sub %x_r, 1, %o0 y = (x 1)/(x 10) for 0 <= x <= 9.global main main: mov 0, %x_r ba test sub %x_r, 1, %o0 call.div sub %x_r, 10, %o1 mov %o0, %y_r add %x_r, 1, %x_r test: cmp %x_r, 10 bl loop
15 While While ( a <= 17) { } a = a + b; c++;
16 While While ( a <= 17) { } a = a + b; c++; test: cmp %ar, 17 bg done add %ar, %br, %ar add %cr, 1, %cr ba test done:
17 While While ( a <= 17) { } a = a + b; c++; test: cmp %ar, 17 bg done add %ar, %br, %ar add %cr, 1, %cr ba test done: if a = 0, b = 1, the program wastes 2*17 machine cycles
18 While test: done: Put the testing at end of the loop and use a branch always at the begin ba test cmp %ar, 17 bg done add %ar, %br, %ar add add %cr, 1, %cr %ar, %br, %ar add %cr, 1, %cr test: ba test cmp %ar, 17 ble loop
19 While ba test add %cr, 1, %cr add %ar, %br, %ar test: cmp %ar, 17 ble loop ba test add %cr, 1, %cr test: cmp %ar, 17 ble loop add %ar, %br, %ar
20 While ba test add %cr, 1, %cr add %ar, %br, %ar test: cmp %ar, 17 ble loop ba test add %cr, 1, %cr test: cmp %ar, 17 ble loop add %ar, %br, %ar the addition is executed even when the condition is false
21 Annulled Conditional Branches All conditional branches may be annulled b icc, a ble, a bg, a ba, a If a conditional branch is annulled, the delay instruction is executed when the branch is taken but not if the branch is not taken
22 Annulled Conditional Branches
23 ba test add %cr, 1, %cr test: cmp %ar, 17 ble loop add %ar, %br, %ar ba test add %cr, 1, %cr test: cmp %ar, 17 ble, a loop add %ar, %br, %ar After all the iterations, only waste two machine cycles
24 Do y = (x 1)*(x 7)/(x 11) for 0 <= x <= 10 C program: main() { } int x, y; x = 0; do{ y = (x 1)*(x 7)/(x 11); x++; }while(x < 11);
25 Do y = (x 1)*(x 7)/(x 11) for 0 <= x <= 10 C program: main() { int x, y; x = 0; do{ y = (x 1)*(x 7)/(x 11); x++; }while(x < 11); } mov 0, %xr sub %xr, 1, %o0 call.mul sub %xr, 7, %o1 call.div sub %xr, 11, %o1 mov %o0, %yr add %xr, 1, %xr cmp %xr, 11 bl loop
26 Do mov 0, %xr sub %xr, 1, %o0 call.mul sub %xr, 7, %o1 call.div sub %xr, 11, %o1 mov %o0, %yr add %xr, 1, %xr cmp %xr, 11 bl loop find an instruction that does not change the condition codes mov 0, %xr sub %xr, 1, %o0 call.mul sub %xr, 7, %o1 call.div sub %xr, 11, %o1 add %xr, 1, %xr cmp %xr, 11 bl loop mov %o0, %yr No machine cycle is wasted.
27 Do mov0, %xr sub %xr, 1, %o0 call.mul sub %xr, 7, %o1 call.div sub %xr, 11, %o1 mov %o0, %yr add %xr, 1, %xr cmp %xr, 11 bl loop (repeat the first instruction in the loop to minimize the #instructions) Waste one machine cycle when the execution of the delay slot instruction is annulled. mov0, %xr sub %xr, 1, %o0 call.mul sub %xr, 7, %o1 call.div sub %xr, 11, %o1 add %xr, 1, %xr cmp %xr, 11 bl, a loop sub %xr, 1, %o0
28 For for (ex1, ex2, ex3) { statements } reform using while ex1; while(ex2){ } statements; ex3;
Lecture VII: The debugger gdb and Branching. Xuan Guo. CSC 3210 Computer Organization and Programming Georgia State University.
Lecture VII: The debugger gdb and Branching CSC 3210 Computer Organization and Programming Georgia State University February 3, 2015 This lecture Plan for the lecture: Recap: Pipelining Filling delay slot
More informationChapter 2 SPARC Architecture Chinua Umoja
Chapter 2 SPARC Architecture Chinua Umoja 1 SPARC is a load/store architecture Registers used for all arithmetic and logical operations 32 registers available at a time Uses only load and store instructions
More informationXuan Guo. Lecture XIV: Review of Chapter 3 & 4. CSC 3210 Computer Organization and Programming Georgia State University. March 5, 2015.
CSC 3210 Computer Organization and Programming Georgia State University March 5, 2015 This lecture Plan for the lecture: Binary Hardware Device Converting from Decimal to other number system Converting
More informationLecture V: Register and SPARC Assembly Language Programming. Xuan Guo. CSC 3210 Computer Organization and Programming Georgia State University
Lecture V: Register and SPARC Assembly Language Programming CSC 3210 Computer Organization and Programming Georgia State University January 27, 2015 This lecture Plan for the lecture: Introduction Registers
More informationThe Assembly Language of the Boz 5
The Assembly Language of the Boz 5 The Boz 5 uses bits 31 27 of the IR as a five bit opcode. Of the possible 32 opcodes, only 26 are implemented. Op-Code Mnemonic Description 00000 HLT Halt the Computer
More informationReconfigurable Computing Systems ( L) Fall 2012 Tiny Register Machine (TRM)
Reconfigurable Computing Systems (252-2210-00L) Fall 2012 Tiny Register Machine (TRM) L. Liu Department of Computer Science, ETH Zürich Fall semester, 2012 1 Introduction Jumping up a few levels of abstraction.
More information10-1 C D Pearson Education, Inc. M. Morris Mano & Charles R. Kime LOGIC AND COMPUTER DESIGN FUNDAMENTALS, 4e
10-1 C D E A B 10-2 A B A B C (A B) C D A A B (A B) C E D (A B) C D E (A B) C + D E (A B) C 10-3 Opcode Mode Address or operand 10-4 Memory 250 Opcode Mode PC = 250 251 ADRS 252 Next instruction ACC Opcode:
More informationChapter 4 Simple Calculations
Chapter 4 Simple Calculations Arthur B. Maccabe Department of Computer Science The University of New Mexico Copyright 1993 2000, Arthur B. Maccabe and McGraw-Hill, Inc. Overview Preliminaries RISC/CISC
More informationXuan Guo. Lecture XIX: Subroutines (2) CSC 3210 Computer Organization and Programming Georgia State University. March 31, 2015.
CSC 3210 Computer Organization and Programming Georgia State University March 31, 2015 This lecture Plan for the lecture: Recap: Register Saving Subroutine Linkage call instruction jmpl instruction ret
More informationChapter 04: Instruction Sets and the Processor organizations. Lesson 08: Processor Instructions - Part 1
Chapter 04: Instruction Sets and the Processor organizations Lesson 08: Processor Instructions - Part 1 1 Objective Understand the load, store instructions and register transfer instructions Understand
More informationPrinciples of Computer Architecture. Chapter 10: Trends in Computer. Principles of Computer Architecture by M. Murdocca and V.
10-1 Principles of Computer Architecture Miles Murdocca and Vincent Heuring Chapter 10: Trends in Computer Architecture 10-2 Chapter Contents 10.1 Quantitative Analyses of Program Execution 10.2 From CISC
More informationXuan Guo. CSC 3210 Computer Organization and Programming Georgia State University. March 12, Xuan Guo
CSC 3210 Computer Organization and Programming Georgia State University March 12, 2015 This lecture Plan for the lecture: Recap: Memory, The stack, The frame pointer Defining stack Variable Offsets Example
More informationARM Assembly Programming
ARM Assembly Programming Computer Organization and Assembly Languages g Yung-Yu Chuang 2007/12/1 with slides by Peng-Sheng Chen GNU compiler and binutils HAM uses GNU compiler and binutils gcc: GNU C compiler
More informationARM Assembly Programming
ARM Assembly Programming Computer Organization and Assembly Languages g Yung-Yu Chuang with slides by Peng-Sheng Chen GNU compiler and binutils HAM uses GNU compiler and binutils gcc: GNU C compiler as:
More informationTABLE 9-1. Symbolic Convention for Addressing Modes. Register indirect LDA (R1) ACC M[ R1] Refers to Figure 9-4. Addressing mode. Symbolic convention
T-236 Symbolic Convention for Addressing Modes TABLE 9-1 Symbolic Convention for Addressing Modes Refers to Figure 9-4 Addressing mode Symbolic convention Register transfer Effective address Contents of
More informationEE 3170 Microcontroller Applications
Lecture Overview EE 3170 Microcontroller Applications Lecture 7 : Instruction Subset & Machine Language: Conditions & Branches in Motorola 68HC11 - Miller 2.2 & 2.3 & 2.4 Based on slides for ECE3170 by
More informationELEC / Computer Architecture and Design Fall 2013 Instruction Set Architecture (Chapter 2)
ELEC 5200-001/6200-001 Computer Architecture and Design Fall 2013 Instruction Set Architecture (Chapter 2) Victor P. Nelson, Professor & Asst. Chair Vishwani D. Agrawal, James J. Danaher Professor Department
More informationAssembly level Programming. 198:211 Computer Architecture. (recall) Von Neumann Architecture. Simplified hardware view. Lecture 10 Fall 2012
19:211 Computer Architecture Lecture 10 Fall 20 Topics:Chapter 3 Assembly Language 3.2 Register Transfer 3. ALU 3.5 Assembly level Programming We are now familiar with high level programming languages
More informationFlow Control In Assembly
Chapters 6 Flow Control In Assembly Embedded Systems with ARM Cortext-M Updated: Monday, February 19, 2018 Overview: Flow Control Basics of Flowcharting If-then-else While loop For loop 2 Flowcharting
More informationCourse Administration
Fall 2017 EE 3613: Computer Organization Chapter 2: Instruction Set Architecture 2/4 Avinash Kodi Department of Electrical Engineering & Computer Science Ohio University, Athens, Ohio 45701 E-mail: kodi@ohio.edu
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 informationComputer Organization MIPS Architecture. Department of Computer Science Missouri University of Science & Technology
Computer Organization MIPS Architecture Department of Computer Science Missouri University of Science & Technology hurson@mst.edu Computer Organization Note, this unit will be covered in three lectures.
More informationCS241 Computer Organization Spring 2015 IA
CS241 Computer Organization Spring 2015 IA-32 2-10 2015 Outline! Review HW#3 and Quiz#1! More on Assembly (IA32) move instruction (mov) memory address computation arithmetic & logic instructions (add,
More informationChapter 2. Instructions:
Chapter 2 1 Instructions: Language of the Machine More primitive than higher level languages e.g., no sophisticated control flow Very restrictive e.g., MIPS Arithmetic Instructions We ll be working with
More informationARM Assembly Programming II
ARM Assembly Programming II Computer Organization and Assembly Languages Yung-Yu Chuang 2007/11/26 with slides by Peng-Sheng Chen GNU compiler and binutils HAM uses GNU compiler and binutils gcc: GNU C
More informationPrinciples of Compiler Design
Principles of Compiler Design Code Generation Compiler Lexical Analysis Syntax Analysis Semantic Analysis Source Program Token stream Abstract Syntax tree Intermediate Code Code Generation Target Program
More informationRaspberry Pi / ARM Assembly. OrgArch / Fall 2018
Raspberry Pi / ARM Assembly OrgArch / Fall 2018 The Raspberry Pi uses a Broadcom System on a Chip (SoC), which is based on an ARM CPU. https://en.wikipedia.org/wiki/arm_architecture The 64-bit ARM processor
More informationCSE 30 Fall 2006 Final Exam
cs30x_ Student ID Name _ Signature CSE 30 Fall 2006 Final Exam 1. Number Systems _ (15 points) 2. Binary Addition/Condition Code Bits/Overflow Detection _ (12 points) 3. Branching _ (20 points) 4. Bit
More informationInstruction-set Design Issues: what is the ML instruction format(s) ML instruction Opcode Dest. Operand Source Operand 1...
Instruction-set Design Issues: what is the format(s) Opcode Dest. Operand Source Operand 1... 1) Which instructions to include: How many? Complexity - simple ADD R1, R2, R3 complex e.g., VAX MATCHC substrlength,
More informationControl Hazards - branching causes problems since the pipeline can be filled with the wrong instructions.
Control Hazards - branching causes problems since the pipeline can be filled with the wrong instructions Stage Instruction Fetch Instruction Decode Execution / Effective addr Memory access Write-back Abbreviation
More informationAssembly language Simple, regular instructions building blocks of C, Java & other languages Typically one-to-one mapping to machine language
Assembly Language Readings: 2.1-2.7, 2.9-2.10, 2.14 Green reference card Assembly language Simple, regular instructions building blocks of C, Java & other languages Typically one-to-one mapping to machine
More informationThe von Neumann Architecture. IT 3123 Hardware and Software Concepts. The Instruction Cycle. Registers. LMC Executes a Store.
IT 3123 Hardware and Software Concepts February 11 and Memory II Copyright 2005 by Bob Brown The von Neumann Architecture 00 01 02 03 PC IR Control Unit Command Memory ALU 96 97 98 99 Notice: This session
More informationAssembly language Simple, regular instructions building blocks of C, Java & other languages Typically one-to-one mapping to machine language
Assembly Language Readings: 2.1-2.7, 2.9-2.10, 2.14 Green reference card Assembly language Simple, regular instructions building blocks of C, Java & other languages Typically one-to-one mapping to machine
More informationCENG3420 Lecture 03 Review
CENG3420 Lecture 03 Review Bei Yu byu@cse.cuhk.edu.hk 2017 Spring 1 / 38 CISC vs. RISC Complex Instruction Set Computer (CISC) Lots of instructions of variable size, very memory optimal, typically less
More informationHomework 2. Lecture 6: Machine Code. Instruction Formats for HW2. Two parts: How to do Homework 2!!!!
Lecture 6: Machine How to do Homework 2!!!! Homework 2 Two parts: Part 1: Use Debug to enter and run a simple machine code program convert input data into 2 s complement hex enter data at the correct address
More informationCISC 662 Graduate Computer Architecture. Lecture 4 - ISA MIPS ISA. In a CPU. (vonneumann) Processor Organization
CISC 662 Graduate Computer Architecture Lecture 4 - ISA MIPS ISA Michela Taufer http://www.cis.udel.edu/~taufer/courses Powerpoint Lecture Notes from John Hennessy and David Patterson s: Computer Architecture,
More informationOverview of the SPARC Architecture
Overview of the SPARC Architecture Harry Porter Computer Science Department Portland State University Abstract This document provides an overview of the SPARC architecture and instruction set. Only a portion
More informationProgrammable Machines
Programmable Machines Silvina Hanono Wachman Computer Science & Artificial Intelligence Lab M.I.T. Quiz 1: next week Covers L1-L8 Oct 11, 7:30-9:30PM Walker memorial 50-340 L09-1 6.004 So Far Using Combinational
More informationProgrammable Machines
Programmable Machines Silvina Hanono Wachman Computer Science & Artificial Intelligence Lab M.I.T. Quiz 1: next week Covers L1-L8 Oct 11, 7:30-9:30PM Walker memorial 50-340 L09-1 6.004 So Far Using Combinational
More informationCISC 662 Graduate Computer Architecture. Lecture 4 - ISA
CISC 662 Graduate Computer Architecture Lecture 4 - ISA Michela Taufer http://www.cis.udel.edu/~taufer/courses Powerpoint Lecture Notes from John Hennessy and David Patterson s: Computer Architecture,
More informationCOMP MIPS instructions 2 Feb. 8, f = g + h i;
Register names (save, temporary, zero) From what I have said up to now, you will have the impression that you are free to use any of the 32 registers ($0,..., $31) in any instruction. This is not so, however.
More informationHigh Performance Computing Lecture 6. Matthew Jacob Indian Institute of Science
High Performance Computing Lecture 6 Matthew Jacob Indian Institute of Science MULT Instruction Example: MULT R1, R2 32 bits 32 bits R1 R2 The product could be twice as large (i.e., 64b) It may not fit
More informationInstruction-set Design Issues: what is the ML instruction format(s) ML instruction Opcode Dest. Operand Source Operand 1...
Instruction-set Design Issues: what is the format(s) Opcode Dest. Operand Source Operand 1... 1) Which instructions to include: How many? Complexity - simple ADD R1, R2, R3 complex e.g., VAX MATCHC substrlength,
More informationInstructions: MIPS ISA. Chapter 2 Instructions: Language of the Computer 1
Instructions: MIPS ISA Chapter 2 Instructions: Language of the Computer 1 PH Chapter 2 Pt A Instructions: MIPS ISA Based on Text: Patterson Henessey Publisher: Morgan Kaufmann Edited by Y.K. Malaiya for
More informationUnsigned and signed integer numbers
Unsigned and signed integer numbers Binary Unsigned Signed 0000 0 0 0001 1 1 0010 2 2 0011 3 3 0100 4 4 Subtraction sets C flag opposite of carry (ARM specialty)! - if (carry = 0) then C=1 - if (carry
More informationProcessor design - MIPS
EASY Processor design - MIPS Q.1 What happens when a register is loaded? 1. The bits of the register are set to all ones. 2. The bit pattern in the register is copied to a location in memory. 3. A bit
More informationChapter 3. Instructions:
Chapter 3 1 Instructions: Language of the Machine More primitive than higher level languages e.g., no sophisticated control flow Very restrictive e.g., MIPS Arithmetic Instructions We ll be working with
More informationCSC 2400: Computer Systems. Towards the Hardware: Machine-Level Representation of Programs
CSC 2400: Computer Systems Towards the Hardware: Machine-Level Representation of Programs Towards the Hardware High-level language (Java) High-level language (C) assembly language machine language (IA-32)
More informationChapter 3. Z80 Instructions & Assembly Language. Von Neumann Architecture. Memory. instructions. program. data
Von Neumann Architecture The von Neumann architecture is a computer design model that uses a processing unit and a separate storage to hold both instructions and data To run a machine, program and data
More informationArchitecture. Digital Computer Design
Architecture Digital Computer Design Architecture The architecture is the programmer s view of a computer. It is defined by the instruction set (language) and operand locations (registers and memory).
More informationvon Neumann Architecture Basic Computer System Early Computers Microprocessor Reading Assignment An Introduction to Computer Architecture
Reading Assignment EEL 4744C: Microprocessor Applications Lecture 1 Part 1 An Introduction to Computer Architecture Microcontrollers and Microcomputers: Chapter 1, Appendix A, Chapter 2 Software and Hardware
More informationBasic Computer System. von Neumann Architecture. Reading Assignment. An Introduction to Computer Architecture. EEL 4744C: Microprocessor Applications
Reading Assignment EEL 4744C: Microprocessor Applications Lecture 1 Part 1 An Introduction to Computer Architecture Microcontrollers and Microcomputers: Chapter 1, Appendix A, Chapter 2 Software and Hardware
More informationCSE 30 Spring 2007 Final Exam
Login: cs30x Student ID Name Signature CSE 30 Spring 2007 Final Exam 1. Number Systems (25 points) 2. Binary Addition/Condition Code Bits/Overflow Detection (12 points) 3. Branching (19 points) 4. Bit
More informationControl Flow. September 2, Indiana University. Geoffrey Brown, Bryce Himebaugh 2015 September 2, / 21
Control Flow Geoffrey Brown Bryce Himebaugh Indiana University September 2, 2016 Geoffrey Brown, Bryce Himebaugh 2015 September 2, 2016 1 / 21 Outline Condition Codes C Relational Operations C Logical
More informationCSC 8400: Computer Systems. Machine-Level Representation of Programs
CSC 8400: Computer Systems Machine-Level Representation of Programs Towards the Hardware High-level language (Java) High-level language (C) assembly language machine language (IA-32) 1 Compilation Stages
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 informationIntel x86 Jump Instructions. Part 5. JMP address. Operations: Program Flow Control. Operations: Program Flow Control.
Part 5 Intel x86 Jump Instructions Control Logic Fly over code Operations: Program Flow Control Operations: Program Flow Control Unlike high-level languages, processors don't have fancy expressions or
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 informationAssembly Language Programming of 8085
Assembly Language Programming of 8085 Topics 1. Introduction 2. Programming model of 8085 3. Instruction set of 8085 4. Example Programs 5. Addressing modes of 8085 6. Instruction & Data Formats of 8085
More informationIntel x86 Jump Instructions. Part 5. JMP address. Operations: Program Flow Control. Operations: Program Flow Control.
Part 5 Intel x86 Jump Instructions Control Logic Fly over code Operations: Program Flow Control Operations: Program Flow Control Unlike high-level languages, processors don't have fancy expressions or
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 informationEx : Write an ALP to evaluate x(y + z) where x = 10H, y = 20H and z = 30H and store the result in a memory location 54000H.
Ex : Write an ALP to evaluate x(y + z) where x = 10H, y = 20H and z = 30H and store the result in a memory location 54000H. MOV AX, 5000H MOV DS, AX MOV AL, 20H MOV CL, 30H ADD AL, CL MOV CL, 10H MUL CL
More informationTopic Notes: MIPS Instruction Set Architecture
Computer Science 220 Assembly Language & Comp. Architecture Siena College Fall 2011 Topic Notes: MIPS Instruction Set Architecture vonneumann Architecture Modern computers use the vonneumann architecture.
More informationComputer System. Hiroaki Kobayashi 7/25/2011. Agenda. Von Neumann Model Stored-program instructions and data are stored on memory
Computer System Hiroaki Kobayashi 7/25/2011 7/25/2011 Computer Engineering 1 Agenda Basic model of modern computer systems Von Neumann Model Stored-program instructions and data are stored on memory Fundamental
More informationProcessors. Young W. Lim. May 9, 2016
Processors Young W. Lim May 9, 2016 Copyright (c) 2016 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version
More informationCopyright 2000 N. AYDIN. All rights reserved. 1
Computer Architecture Prof. Dr. Nizamettin AYDIN naydin@yildiz.edu.tr http://www.yildiz.edu.tr/~naydin A virtual processor for understanding instruction cycle The Visible Virtual Machine (VVM) 1 2 The
More informationCS412/CS413. Introduction to Compilers Tim Teitelbaum. Lecture 21: Generating Pentium Code 10 March 08
CS412/CS413 Introduction to Compilers Tim Teitelbaum Lecture 21: Generating Pentium Code 10 March 08 CS 412/413 Spring 2008 Introduction to Compilers 1 Simple Code Generation Three-address code makes it
More informationCSE 410. Operating Systems
CSE 410 Operating Systems Handout: syllabus 1 Today s Lecture Course organization Computing environment Overview of course topics 2 Course Organization Course website http://www.cse.msu.edu/~cse410/ Syllabus
More informationCOMPUTER HARDWARE. Instruction Set Architecture
COMPUTER HARDWARE Instruction Set Architecture Overview Computer architecture Operand addressing Addressing architecture Addressing modes Elementary instructions Data transfer instructions Data manipulation
More informationLC-3 Architecture. (Ch4 ish material)
LC-3 Architecture (Ch4 ish material) 1 CISC vs. RISC CISC : Complex Instruction Set Computer Lots of instructions of variable size, very memory optimal, typically less registers. RISC : Reduced Instruction
More informationCS 265. Computer Architecture. Wei Lu, Ph.D., P.Eng.
CS 265 Computer Architecture Wei Lu, Ph.D., P.Eng. Part 3: von Neumann Architecture von Neumann Architecture Our goal: understand the basics of von Neumann architecture, including memory, control unit
More informationCPSC 213. Introduction to Computer Systems. Reading. Control Flow. Loops (S5-loop) Static Control Flow. Unit 1d. Companion.
Reading Companion CPSC 213 2.7.1-2.7.3, 2.7.5-2.7.6 Textbook 3.6.1-3.6.5 Introduction to Computer Systems Unit 1d Static Control Flow Control Flow 1 Loops (S5-loop) 2 The flow of control is the sequence
More informationCPSC 213. Introduction to Computer Systems. Static Control Flow. Unit 1d
CPSC 213 Introduction to Computer Systems Unit 1d Static Control Flow 1 Reading Companion 2.7.1-2.7.3, 2.7.5-2.7.6 Textbook 3.6.1-3.6.5 2 Control Flow The flow of control is the sequence of instruction
More informationCPSC 213. Introduction to Computer Systems. Readings for Next 2 Lectures. Loops (S5-loop) Control Flow. Static Control Flow. Unit 1d.
Readings for Next 2 Lectures Textbook CPSC 213 Condition Codes - Loops 3.6.1-3.6.5 Introduction to Computer Systems Unit 1d Static Control Flow Control Flow 1 Loops (S5-loop) 2 The flow of control is the
More informationOverview COMP Microprocessors and Embedded Systems. Lectures 14: Making Decisions in C/Assembly Language II
OMP 3221 Microprocessors and Embedded Systems Lectures 14: Making Decisions in /Assembly Language II Overview ompare instruction mechanism Flag setting Instructions onditional Instructions onclusion http://www.cse.unsw.edu.au/~cs3221
More informationARM Shift Operations. Shift Type 00 - logical left 01 - logical right 10 - arithmetic right 11 - rotate right. Shift Amount 0-31 bits
ARM Shift Operations A novel feature of ARM is that all data-processing instructions can include an optional shift, whereas most other architectures have separate shift instructions. This is actually very
More informationXuan Guo. CSC 3210 Computer Organization and Programming Georgia State University. March 31, Lecture XX: Subroutines (3) Xuan Guo
CSC 3210 Computer Organization and Programming Georgia State University March 31, 2015 This lecture Plan for the lecture: Recap: Subroutine Linkage Arguments to subroutines More arguments to subroutines
More informationBranch Instructions. R type: Cond
Branch Instructions Standard branch instructions, B and BL, change the PC based on the PCR. The next instruction s address is found by adding a 24-bit signed 2 s complement immediate value
More informationCSE 30 Winter 2009 Final Exam
Login: cs30x Student ID Name Signature CSE 30 Winter 2009 Final Exam 1. Number Systems / C Compiling Sequence (15 points) 2. Binary Addition/Condition Code Bits/Overflow Detection (12 points) 3. Branching
More informationConcocting an Instruction Set
Concocting an Instruction Set Nerd Chef at work. move flour,bowl add milk,bowl add egg,bowl move bowl,mixer rotate mixer... Read: Chapter 2.1-2.7 L03 Instruction Set 1 A General-Purpose Computer The von
More informationLecture 4: MIPS Instruction Set
Lecture 4: MIPS Instruction Set No class on Tuesday Today s topic: MIPS instructions Code examples 1 Instruction Set Understanding the language of the hardware is key to understanding the hardware/software
More informationLecture 6 Assembly Programming: Branch & Iteration
CPE 390: Microprocessor Systems Spring 2018 Lecture 6 Assembly Programming: Branch & Iteration Bryan Ackland Department of Electrical and Computer Engineering Stevens Institute of Technology Hoboken, NJ
More informationMicrocontroller Systems
µcontroller systems 1 / 43 Microcontroller Systems Engineering Science 2nd year A2 Lectures Prof David Murray david.murray@eng.ox.ac.uk www.robots.ox.ac.uk/ dwm/courses/2co Michaelmas 2014 µcontroller
More informationadministrivia today start assembly probably won t finish all these slides Assignment 4 due tomorrow any questions?
administrivia today start assembly probably won t finish all these slides Assignment 4 due tomorrow any questions? exam on Wednesday today s material not on the exam 1 Assembly Assembly is programming
More informationSecond Part of the Course
CSC 2400: Computer Systems Towards the Hardware 1 Second Part of the Course Toward the hardware High-level language (C) assembly language machine language (IA-32) 2 High-Level Language g Make programming
More informationEN164: Design of Computing Systems Topic 03: Instruction Set Architecture Design
EN164: Design of Computing Systems Topic 03: Instruction Set Architecture Design Professor Sherief Reda http://scale.engin.brown.edu Electrical Sciences and Computer Engineering School of Engineering Brown
More informationCOSC121: Computer Systems: Review
COSC121: Computer Systems: Review Jeremy Bolton, PhD Assistant Teaching Professor Constructed using materials: - Patt and Patel Introduction to Computing Systems (2nd) - Patterson and Hennessy Computer
More informationAn Introduction to Assembly Programming with the ARM 32-bit Processor Family
An Introduction to Assembly Programming with the ARM 32-bit Processor Family G. Agosta Politecnico di Milano December 3, 2011 Contents 1 Introduction 1 1.1 Prerequisites............................. 2
More informationComputer Organization & Assembly Language Programming. CSE 2312 Lecture 15 Addressing and Subroutine
Computer Organization & Assembly Language Programming CSE 2312 Lecture 15 Addressing and Subroutine 1 Sections in 8088 Code TEXT section, for the processor instructions. DATA section for the initialization
More information... Executing conditional instructions
1 2 Executing conditional instructions Our design to this point has been the SISD (single instruction single data) architecture This is fine if we wish to execute in a purely sequential mode We now wish
More informationA Bit of History. Program Mem Data Memory. CPU (Central Processing Unit) I/O (Input/Output) Von Neumann Architecture. CPU (Central Processing Unit)
Memory COncepts Address Contents Memory is divided into addressable units, each with an address (like an array with indices) Addressable units are usually larger than a bit, typically 8, 16, 32, or 64
More informationChapter 4 The Von Neumann Model
Chapter 4 The Von Neumann Model The Stored Program Computer 1943: ENIAC Presper Eckert and John Mauchly -- first general electronic computer. (or was it John V. Atanasoff in 1939?) Hard-wired program --
More informationARM Cortex-M4 Programming Model Flow Control Instructions
ARM Cortex-M4 Programming Model Flow Control Instructions Textbook: Chapter 4, Section 4.9 (CMP, TEQ,TST) Chapter 6 ARM Cortex-M Users Manual, Chapter 3 1 CPU instruction types Data movement operations
More informationComparison InstruCtions
Status Flags Now it is time to discuss what status flags are available. These five status flags are kept in a special register called the Program Status Register (PSR). The PSR also contains other important
More informationECE 571 Advanced Microprocessor-Based Design Lecture 7
ECE 571 Advanced Microprocessor-Based Design Lecture 7 Vince Weaver http://www.eece.maine.edu/~vweaver vincent.weaver@maine.edu 9 February 2016 HW2 Grades Ready Announcements HW3 Posted be careful when
More informationIntroduction to Computer. Chapter 5 The LC-3. Instruction Set Architecture
Introduction to Computer Engineering ECE/CS 252, Fall 2010 Prof. Mikko Lipasti Department of Electrical and Computer Engineering University of Wisconsin Madison Chapter 5 The LC-3 Instruction Set Architecture
More informationMulti-cycle Instructions in the Pipeline (Floating Point)
Lecture 6 Multi-cycle Instructions in the Pipeline (Floating Point) Introduction to instruction level parallelism Recap: Support of multi-cycle instructions in a pipeline (App A.5) Recap: Superpipelining
More informationUnsigned Binary Integers
Unsigned Binary Integers Given an n-bit number x x n 1 n 2 1 0 n 12 xn 22 x12 x02 Range: 0 to +2 n 1 Example 2.4 Signed and Unsigned Numbers 0000 0000 0000 0000 0000 0000 0000 1011 2 = 0 + + 1 2 3 + 0
More informationUnsigned Binary Integers
Unsigned Binary Integers Given an n-bit number x x n 1 n 2 1 0 n 12 xn 22 x12 x02 Range: 0 to +2 n 1 Example 2.4 Signed and Unsigned Numbers 0000 0000 0000 0000 0000 0000 0000 1011 2 = 0 + + 1 2 3 + 0
More informationAssembly Language: Overview!
Assembly Language: Overview! 1 Goals of this Lecture! Help you learn:" The basics of computer architecture" The relationship between C and assembly language" IA-32 assembly language, through an example"
More information