CS61C : Machine Structures •Remember: “Load from Memory”

Total Page:16

File Type:pdf, Size:1020Kb

CS61C : Machine Structures •Remember: “Load from Memory” inst.eecs.berkeley.edu/~cs61c CS61C : Machine Structures Review Lecture 9 – Introduction to MIPS • In MIPS Assembly Language: Data Transfer & Decisions I • Registers replace C variables • One Instruction (simple operation) per line • Simpler is Better, Smaller is Faster Lecturer PSOE Dan Garcia • New Instructions: www.cs.berkeley.edu/~ddgarcia add, addi, sub Future HVD 1 TB disks! ⇒ The future of digital storage • New Registers: (past the DVD, Blu-Ray and HD DVD) C Variables: $s0 - $s7 may be the Holographic Versatile Disc. Temporary Variables: $t0 - $t7 A massive 1 TB on each (200 DVDs)! 1TB www.zdnet.com.au/news/hardware/0,2000061702,39180148,00.htm Zero: $zero CS61C L09 Introduction to MIPS: Data Transfer & Decisions I (1) Garcia © UCB CS61C L09 Introduction to MIPS: Data Transfer & Decisions I (2) Garcia © UCB Assembly Operands: Memory Anatomy: 5 components of any Computer Registers are in the datapath of the • C variables map onto registers; what processor; if operands are in memory, about large data structures like arrays? Personal Computer we must transfer them to the processor to operate on them, and • 1 of 5 components of a computer: then transfer back to memory when done. memory contains such data structures Computer Processor Memory Devices • But MIPS arithmetic instructions only operate on registers, never directly on Control Input (“brain”) memory. Store (to) Datapath • Data transfer instructions transfer data Registers Output between registers and memory: Load (from) • Memory to register • Register to memory These are “data transfer” instructions… CS61C L09 Introduction to MIPS: Data Transfer & Decisions I (3) Garcia © UCB CS61C L09 Introduction to MIPS: Data Transfer & Decisions I (4) Garcia © UCB Data Transfer: Memory to Reg (1/4) Data Transfer: Memory to Reg (2/4) • To transfer a word of data, we need to • To specify a memory address to copy specify two things: from, specify two things: • Register: specify this by # ($0 - $31) or • A register containing a pointer to memory symbolic name ($s0,…, $t0, …) • A numerical offset (in bytes) • Memory address: more difficult - Think of memory as a single one- • The desired memory address is the dimensional array, so we can address sum of these two values. it simply by supplying a pointer to a Example: memory address. • 8($t0) • specifies the memory address pointed to - Other times, we want to be able to by the value in $t0, plus 8 bytes offset from this pointer. •Remember: “Load FROM memory” CS61C L09 Introduction to MIPS: Data Transfer & Decisions I (5) Garcia © UCB CS61C L09 Introduction to MIPS: Data Transfer & Decisions I (6) Garcia © UCB Data Transfer: Memory to Reg (3/4) Data Transfer: Memory to Reg (4/4) • Load Instruction Syntax: Data flow 1 2,3(4) Example:lw $t0,12($s0) • where This instruction will take the pointer in $s0, add 1) operation name 12 bytes to it, and then load the value from the memory pointed to by this calculated sum into 2) register that will receive value register $t0 3) numerical offset in bytes • Notes: 4) register containing pointer to memory •$s0 is called the base register • MIPS Instruction Name: • 12 is called the offset • offset is generally used in accessing elements •lw (meaning Load Word, so 32 bits of array or structure: base reg points to or one word are loaded at a time) beginning of array or structure CS61C L09 Introduction to MIPS: Data Transfer & Decisions I (7) Garcia © UCB CS61C L09 Introduction to MIPS: Data Transfer & Decisions I (8) Garcia © UCB Data Transfer: Reg to Memory Pointers v. Values • Also want to store from register into memory • Key Concept: A register can hold any • Store instruction syntax is identical to Load’s 32-bit value. That value can be a (signed) int, an unsigned int, a • MIPS Instruction Name: pointer (memory address), and so on sw (meaning Store Word, so 32 bits or one word are loaded at a time) • If you write add $t2,$t1,$t0 then $t0 and $t1 Data flow better contain values • Example:sw $t0,12($s0) • If you write lw $t2,0($t0) This instruction will take the pointer in $s0, add then $t0 better contain a pointer 12 bytes to it, and then store the value from register $t0 into that memory address • Don’t mix these up! • Remember: “Store INTO memory” CS61C L09 Introduction to MIPS: Data Transfer & Decisions I (9) Garcia © UCB CS61C L09 Introduction to MIPS: Data Transfer & Decisions I (10) Garcia © UCB Addressing: Byte vs. word Compilation with Memory • What offset in lw to select A[5] in C? • Every word in memory has an address, similar to an index in an array • 4x5=20 to select A[5]: byte v. word • Early computers numbered words like • Compile by hand using registers: C numbers elements of an array: g = h + A[5]; •Memory[0], Memory[1], Memory[2], … • g: $s1, h: $s2, $s3:base address of A Called the “address” of a word • Computers needed to access 8-bit • 1st transfer from memory to register: bytes as well as words (4 bytes/word) lw $t0,20($s3) # $t0 gets A[5] • Today machines address memory as • Add 20 to $s3 to select A[5], put into $t0 bytes, (i.e.,“Byte Addressed”) hence 32- bit (4 byte) word addresses differ by 4 • Next add it to h and place in g •Memory[0], Memory[4], Memory[8], … add $s1,$s2,$t0 # $s1 = h+A[5] CS61C L09 Introduction to MIPS: Data Transfer & Decisions I (11) Garcia © UCB CS61C L09 Introduction to MIPS: Data Transfer & Decisions I (12) Garcia © UCB Notes about Memory More Notes about Memory: Alignment • Pitfall: Forgetting that sequential • MIPS requires that all words start at byte word addresses in machines with addresses that are multiples of 4 bytes byte addressing do not differ by 1. Last hex digit 0 1 2 3 • Many an assembly language of address is: programmer has toiled over errors made Aligned 0, 4, 8, or C by assuming that the address of the next hex word can be found by incrementing the Not 1, 5, 9, or Dhex address in a register by 1 instead of by Aligned 2, 6, A, or Ehex the word size in bytes. 3, 7, B, or Fhex • So remember that for both lw and sw, the sum of the base address and the offset must be a multiple of 4 (to be word • Called Alignment: objects must fall on aligned) address that is multiple of their size. CS61C L09 Introduction to MIPS: Data Transfer & Decisions I (13) Garcia © UCB CS61C L09 Introduction to MIPS: Data Transfer & Decisions I (14) Garcia © UCB Role of Registers vs. Memory Administrivia • What if more variables than registers? • HW3 due Wed @ 23:59 • Compiler tries to keep most frequently used variable in registers • Project 1 up soon, due in 10 days • Less common in memory: spilling • Hope you remember your Scheme! • Why not keep all variables in memory? • gcc -o foo foo.c • Smaller is faster: • We shouldn’t see any a.out files registers are faster than memory anymore now that you’ve learned this! • Registers more versatile: - MIPS arithmetic instructions can read 2, operate on them, and write 1 per instruction - MIPS data transfer only read or write 1 operand per instruction, and no operation CS61C L09 Introduction to MIPS: Data Transfer & Decisions I (15) Garcia © UCB CS61C L09 Introduction to MIPS: Data Transfer & Decisions I (16) Garcia © UCB So Far... C Decisions: if Statements • All instructions so far only manipulate • 2 kinds of if statements in C data…we’ve built a calculator. •if (condition) clause • In order to build a computer, we need •if (condition) clause1 else clause2 ability to make decisions… • Rearrange 2nd if into following: • C (and MIPS) provide labels to if (condition) goto L1; support “goto” jumps to places in clause2; code. goto L2; • C: Horrible style; MIPS: Necessary! L1: clause1; L2: • Heads up: pull out some papers and pens, you’ll do an in-class exercise! • Not as elegant as if-else, but same meaning CS61C L09 Introduction to MIPS: Data Transfer & Decisions I (17) Garcia © UCB CS61C L09 Introduction to MIPS: Data Transfer & Decisions I (18) Garcia © UCB MIPS Decision Instructions MIPS Goto Instruction • Decision instruction in MIPS: • In addition to conditional branches, MIPS has an unconditional branch: •beq register1, register2, L1 •beq is “Branch if (registers are) equal” j label Same meaning as (using C): • Called a Jump Instruction: jump (or if (register1==register2) goto L1 branch) directly to the given label • Complementary MIPS decision instruction without needing to satisfy any condition •bne register1, register2, L1 • Same meaning as (using C): •bne is “Branch if (registers are) not equal” goto label Same meaning as (using C): • Technically, it’s the same as: if (register1!=register2) goto L1 beq $0,$0,label • Called conditional branches since it always satisfies the condition. CS61C L09 Introduction to MIPS: Data Transfer & Decisions I (19) Garcia © UCB CS61C L09 Introduction to MIPS: Data Transfer & Decisions I (20) Garcia © UCB Compiling C if into MIPS (1/2) Compiling C if into MIPS (2/2) •Compile by hand (true) (false) •Compile by hand (true) (false) i == j? i == j? if (i == j) f=g+h; i == j i != j if (i == j) f=g+h; i == j i != j else f=g-h; else f=g-h; f=g+h f=g-h f=g+h f=g-h •Final compiled MIPS code: •Use this mapping: Exit Exit beq $s3,$s4,True # branch i==j f: $s0 sub $s0,$s1,$s2 # f=g-h(false) j Fin # goto Fin g: $s1 True: add $s0,$s1,$s2 # f=g+h (true) h: $s2 Fin: i: $s3 j: $s4 Note: Compiler automatically creates labels to handle decisions (branches).
Recommended publications
  • Pdp11-40.Pdf
    processor handbook digital equipment corporation Copyright© 1972, by Digital Equipment Corporation DEC, PDP, UNIBUS are registered trademarks of Digital Equipment Corporation. ii TABLE OF CONTENTS CHAPTER 1 INTRODUCTION 1·1 1.1 GENERAL ............................................. 1·1 1.2 GENERAL CHARACTERISTICS . 1·2 1.2.1 The UNIBUS ..... 1·2 1.2.2 Central Processor 1·3 1.2.3 Memories ........... 1·5 1.2.4 Floating Point ... 1·5 1.2.5 Memory Management .............................. .. 1·5 1.3 PERIPHERALS/OPTIONS ......................................... 1·5 1.3.1 1/0 Devices .......... .................................. 1·6 1.3.2 Storage Devices ...................................... .. 1·6 1.3.3 Bus Options .............................................. 1·6 1.4 SOFTWARE ..... .... ........................................... ............. 1·6 1.4.1 Paper Tape Software .......................................... 1·7 1.4.2 Disk Operating System Software ........................ 1·7 1.4.3 Higher Level Languages ................................... .. 1·7 1.5 NUMBER SYSTEMS ..................................... 1-7 CHAPTER 2 SYSTEM ARCHITECTURE. 2-1 2.1 SYSTEM DEFINITION .............. 2·1 2.2 UNIBUS ......................................... 2-1 2.2.1 Bidirectional Lines ...... 2-1 2.2.2 Master-Slave Relation .. 2-2 2.2.3 Interlocked Communication 2-2 2.3 CENTRAL PROCESSOR .......... 2-2 2.3.1 General Registers ... 2-3 2.3.2 Processor Status Word ....... 2-4 2.3.3 Stack Limit Register 2-5 2.4 EXTENDED INSTRUCTION SET & FLOATING POINT .. 2-5 2.5 CORE MEMORY . .... 2-6 2.6 AUTOMATIC PRIORITY INTERRUPTS .... 2-7 2.6.1 Using the Interrupts . 2-9 2.6.2 Interrupt Procedure 2-9 2.6.3 Interrupt Servicing ............ .. 2-10 2.7 PROCESSOR TRAPS ............ 2-10 2.7.1 Power Failure ..............
    [Show full text]
  • Computer Architectures an Overview
    Computer Architectures An Overview PDF generated using the open source mwlib toolkit. See http://code.pediapress.com/ for more information. PDF generated at: Sat, 25 Feb 2012 22:35:32 UTC Contents Articles Microarchitecture 1 x86 7 PowerPC 23 IBM POWER 33 MIPS architecture 39 SPARC 57 ARM architecture 65 DEC Alpha 80 AlphaStation 92 AlphaServer 95 Very long instruction word 103 Instruction-level parallelism 107 Explicitly parallel instruction computing 108 References Article Sources and Contributors 111 Image Sources, Licenses and Contributors 113 Article Licenses License 114 Microarchitecture 1 Microarchitecture In computer engineering, microarchitecture (sometimes abbreviated to µarch or uarch), also called computer organization, is the way a given instruction set architecture (ISA) is implemented on a processor. A given ISA may be implemented with different microarchitectures.[1] Implementations might vary due to different goals of a given design or due to shifts in technology.[2] Computer architecture is the combination of microarchitecture and instruction set design. Relation to instruction set architecture The ISA is roughly the same as the programming model of a processor as seen by an assembly language programmer or compiler writer. The ISA includes the execution model, processor registers, address and data formats among other things. The Intel Core microarchitecture microarchitecture includes the constituent parts of the processor and how these interconnect and interoperate to implement the ISA. The microarchitecture of a machine is usually represented as (more or less detailed) diagrams that describe the interconnections of the various microarchitectural elements of the machine, which may be everything from single gates and registers, to complete arithmetic logic units (ALU)s and even larger elements.
    [Show full text]
  • PA-RISC 1.1 Architecture and Instruction Set Reference Manual
    PA-RISC 1.1 Architecture and Instruction Set Reference Manual HP Part Number: 09740-90039 Printed in U.S.A. February 1994 Third Edition Notice The information contained in this document is subject to change without notice. HEWLETT-PACKARD MAKES NO WARRANTY OF ANY KIND WITH REGARD TO THIS MATERIAL, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. Hewlett-Packard shall not be liable for errors contained herein or for incidental or consequential damages in connection with furnishing, performance, or use of this material. Hewlett-Packard assumes no responsibility for the use or reliability of its software on equipment that is not furnished by Hewlett-Packard. This document contains proprietary information which is protected by copyright. All rights are reserved. No part of this document may be photocopied, reproduced, or translated to another language without the prior written consent of Hewlett-Packard Company. Copyright © 1986 – 1994 by HEWLETT-PACKARD COMPANY Printing History The printing date will change when a new edition is printed. The manual part number will change when extensive changes are made. First Edition . November 1990 Second Edition. September 1992 Third Edition . February 1994 Contents Contents . iii Preface. ix 1 Overview . 1-1 Introduction. 1-1 System Features . 1-2 PA-RISC 1.1 Enhancements . 1-2 System Organization . 1-4 2 System Organization . 2-1 Introduction. 2-1 Memory and I/O Addressing . 2-2 Byte Ordering (Big Endian/Little Endian) . 2-3 Levels of PA-RISC. 2-5 Data Types . 2-5 Processing Resources. 2-7 3 Addressing and Access Control.
    [Show full text]
  • Instruction Set Architecture
    Instruction Set Architecture EE3376 1 –Adapted from notes from BYU ECE124 Topics to Cover… l MSP430 ISA l MSP430 Registers, ALU, Memory l Instruction Formats l Addressing Modes l Double Operand Instructions l Single Operand Instructions l Jump Instructions l Emulated Instructions – http://en.wikipedia.org/wiki/TI_MSP430 2 –Adapted from notes from BYU ECE124 Levels of Transformation –Problems –Algorithms – C Instructions –Language (Program) –Programmable –Assembly Language – MSP 430 ISA –Machine (ISA) Architecture –Computer Specific –Microarchitecture –Manufacturer Specific –Circuits –Devices 3 –Adapted from notes from BYU ECE124 Instruction Set Architecture l The computer ISA defines all of the programmer-visible components and operations of the computer – memory organization l address space -- how may locations can be addressed? l addressibility -- how many bits per location? – register set (a place to store a collection of bits) l how many? what size? how are they used? – instruction set l Opcodes (operation selection codes) l data types (data types: byte or word) l addressing modes (coding schemes to access data) l ISA provides all information needed for someone that wants to write a program in machine language (or translate 4 from a high-level language to machine language). –Adapted from notes from BYU ECE124 MSP430 Instruction Set Architecture l MSP430 CPU specifically designed to allow the use of modern programming techniques, such as: – the computation of jump addresses – data processing in tables – use of high-level languages such as C. l 64KB memory space with 16 16-bit registers that reduce fetches to memory. l Implements RISC architecture with 27 instructions and 7 addressing modes.
    [Show full text]
  • Intel Architecture Software Developer's Manual
    Intel Architecture Software Developer’s Manual Volume 2: Instruction Set Reference NOTE: The Intel Architecture Software Developer’s Manual consists of three volumes: Basic Architecture, Order Number 243190; Instruction Set Reference, Order Number 243191; and the System Programming Guide, Order Number 243192. Please refer to all three volumes when evaluating your design needs. 1999 Information in this document is provided in connection with Intel products. No license, express or implied, by estoppel or otherwise, to any intellectual property rights is granted by this document. Except as provided in Intel's Terms and Conditions of Sale for such products, Intel assumes no liability whatsoever, and Intel disclaims any express or implied warranty, relating to sale and/or use of Intel products including liability or warranties relating to fitness for a particular purpose, merchantability, or infringement of any patent, copyright or other intellectual property right. Intel products are not intended for use in medical, life saving, or life sustaining applications. Intel may make changes to specifications and product descriptions at any time, without notice. Designers must not rely on the absence or characteristics of any features or instructions marked “reserved” or “undefined.” Intel reserves these for future definition and shall have no responsibility whatsoever for conflicts or incompatibilities arising from future changes to them. Intel’s Intel Architecture processors (e.g., Pentium®, Pentium® II, Pentium® III, and Pentium® Pro processors) may contain design defects or errors known as errata which may cause the product to deviate from published specifications. Current characterized errata are available on request. Contact your local Intel sales office or your distributor to obtain the latest specifications and before placing your product order.
    [Show full text]
  • Assembly Operands: Memory • Scalar Variables Map Onto Registers; What About Large Data Structures Like Arrays?
    • So far, we have learnt – R-type and I-type arithmetic instructions add addi sub mul div – Some conditional and unconditional jumps for decisions • bne, beq •b, jal • loops • Conditional jumps • What we are going to learn – Memory-register transfers 31 Assembly Operands: Memory • Scalar variables map onto registers; what about large data structures like arrays? • Memory contains such data structures • But MIPS arithmetic instructions only operate on registers, never directly on memory. ° Data transfer instructions transfer data between registers and memory: – Memory to register – Register to memory 32 1 Data Transfer: Memory to Reg (1/4) • To transfer a word of data, we need to specify two things: – Register: specify this by number (0 - 31) – Memory address: more difficult - Think of memory as a single one-dimensional array, so we can address it simply by supplying a pointer to a memory address. - Other times, we want to be able to offset from this pointer. 33 Data Transfer: Memory to Reg (2/4) • To specify a memory address to copy from, specify two things: – A register which contains a pointer to memory – A numerical offset (in bytes) • The desired memory address is the sum of these two values. • Example: 8(t0) – specifies the memory address pointed to by the value in $t0, plus 8 bytes 34 2 Data Transfer: Memory to Reg (3/4) • Load Instruction Syntax: 1 2, 3(4) – where 1) operation (instruction) name 2) register that will receive value 3) numerical offset in bytes 4) register containing pointer to memory • Instruction Name: –lw (meaning
    [Show full text]
  • CS/COE1541: Introduction to Computer Architecture
    CS/COE1541: Introduction to Computer Architecture Dept. of Computer Science University of Pittsburgh http://www.cs.pitt.edu/~melhem/courses/1541p/index.html 1 Computer Architecture? Other Compiler Operating applications, systems e.g., games “Application pull” Software layers Instruction Set Architecture architect Processor Organization VLSI Implementations “Physical hardware” “Technology push” Semiconductor technologies 2 High level system architecture Input/output CPU(s) control Interconnection cache ALU memory registers Memory stores: • Program code Important registers: • Data (static or dynamic) • Program counter (PC) • Execution stack • Instruction register (IR) • General purpose registers 3 Chapter 1 Review: Computer Performance • Response Time (latency) — How long does it take for “a task” to be done? • Throughput — Rate of completing the “tasks” • CPU execution time (our focus) – doesn't count I/O or time spent running other programs • Performance = 1 / Execution time • Important architecture evaluation metrics • Traditional metrics: TIME and COST • More recent metrics: POWER and TEMPERATURE • In this course, we will mainly talk about time 4 Clock Cycles (from Section 1.6) • Instead of using execution time in seconds, we can use number of cycles – Clock “ticks” separate different activities: time • cycle time = time between ticks = seconds per cycle • clock rate (frequency) = cycles per second (1 Hz. = 1 cycle/sec) 1 EX: A 2 GHz. clock has a cycle time of 0.5 10 9 seconds. 2 109 • Time per program = cycles per program x time per
    [Show full text]
  • MARIE: an Introduction to a Simple Computer
    00068_CH04_Null.qxd 10/18/10 12:03 PM Page 195 “When you wish to produce a result by means of an instrument, do not allow yourself to complicate it.” —Leonardo da Vinci CHAPTER MARIE: An Introduction 4 to a Simple Computer 4.1 INTRODUCTION esigning a computer nowadays is a job for a computer engineer with plenty of Dtraining. It is impossible in an introductory textbook such as this (and in an introductory course in computer organization and architecture) to present every- thing necessary to design and build a working computer such as those we can buy today. However, in this chapter, we first look at a very simple computer called MARIE: a Machine Architecture that is Really Intuitive and Easy. We then pro- vide brief overviews of Intel and MIPs machines, two popular architectures reflecting the CISC and RISC design philosophies. The objective of this chapter is to give you an understanding of how a computer functions. We have, therefore, kept the architecture as uncomplicated as possible, following the advice in the opening quote by Leonardo da Vinci. 4.2 CPU BASICS AND ORGANIZATION From our studies in Chapter 2 (data representation) we know that a computer must manipulate binary-coded data. We also know from Chapter 3 that memory is used to store both data and program instructions (also in binary). Somehow, the program must be executed and the data must be processed correctly. The central processing unit (CPU) is responsible for fetching program instructions, decod- ing each instruction that is fetched, and performing the indicated sequence of operations on the correct data.
    [Show full text]
  • Instruction Set Architecture (I)
    Instruction Set Architecture (I) 1 Today’s Menu: ISA & Assembly Language Instruction Set Definition Registers and Memory Arithmetic Instructions Load/store Instructions Control Instructions Instruction Formats Example ISA: MIPS Summary 2 Instruction Set Architecture (ISA) Application Operating System Assembly Language ||| Compiler Instruction Set Architecture Microarchitecture I/O System ||| Digital Logic Design Machine Language Circuit Design 3 The Big Picture assembly language program Assembly Language Interface the architecture presents to user, compiler, & operating system Register File Program Counter “Low-level” instructions that use the datapath & memory to perform basic types of operations Instruction register arithmetic: add, sub, mul, div logical: and, or, shift data transfer: load, store ALU Contr ol Lo gic (un)conditional branch: jump, branch on condition Memory Address Register from memory 4 Software Layers High-level languages such as C, C++, FORTRAN, JAVA are translated into assembly code by a compiler Assembly language translated to machine language by assembler Executable for (j = 1; j < 10; j++){ (binary) a = a + b Compiler Register File Program Counter } Instruction register ADD R1, R2, R3 SUB R3, R2, R1 0010100101 ALU Contr ol Lo gic Assembler 0101010101 Memory Address Register Memory Data Register 5 Basic ISA Classes Memory to Memory Machines Can access memory directly in instructions: e.g., Mem[0] = Mem[1] + 1 But we need storage for temporaries Memory is slow (hard to optimize code) Memory
    [Show full text]
  • Topic 8: Data Transfer Instructions
    Topic 8: Data Transfer Instructions CSE 30: Computer Organization and Systems Programming Summer Session II Dr. Ali Irturk Dept. of Computer Science and Engineering University of California, San Diego Assembly Operands: Memory C variables map onto registers; what about large data structures like arrays? 1 of 5 components of a computer: memory contains such data structures But ARM arithmetic instructions only operate on registers, never directly on memory. Data transfer instructions transfer data between registers and memory: Memory to register Register to memory Load/Store Instructions The ARM is a Load/Store Architecture: Does not support memory to memory data processing operations. Must move data values into registers before using them. This might sound inefficient, but in practice isn’t: Load data values from memory into registers. Process data in registers using a number of data processing instructions which are not slowed down by memory access. Store results from registers out to memory. Load/Store Instructions The ARM has three sets of instructions which interact with main memory. These are: Single register data transfer (LDR/STR) Block data transfer (LDM/STM) Single Data Swap (SWP) The basic load and store instructions are: Load and Store Word or Byte or Halfword LDR / STR / LDRB / STRB / LDRH / STRH Syntax: <LDR|STR>{<cond>}{<size>} Rd, <address> Single register data transfer LDR STR Word LDRB STRB Byte LDRH STRH Halfword LDRSB Signed byte load LDRSH Signed halfword load Memory system must support all access sizes Syntax: LDR{<cond>}{<size>} Rd, <address> STR{<cond>}{<size>} Rd, <address> e.g. LDREQB Anatomy: 5 components of any Computer Registers are in the datapath of the processor; if operands are in memory, we must transfer them to the processor to operate on them, and then transfer back to memory when done.
    [Show full text]
  • Pentium ® Pro Family Developer's Manual
    Pentium Pro Family Developer’s Manual Volume 3: Operating System Writer’s Guide NOTE: The Pentium Pro Family Developer’s Manual consists of three books: Pentium Pro Family Developer’s Manual, Volume 1: Specifications (Order Number 242690); Pentium Pro Family Developer’s Manual, Volume 2: Programmer’s Reference Manual (Order Number 242691); and the Pentium Pro Family Developer’s Manual, Volume 3: Operating System Writer’s Guide (Order Number 242692). Please refer to all three volumes when evaluating your design needs. December 1995 Information in this document is provided in connection with Intel products. No license, express or implied, by estoppel or otherwise, to any intellectual property rights is granted by this document. Except as provided in Intel’s Terms and Conditions of Sale for such products, Intel assumes no liability whatsoever, and Intel disclaims any express or implied warranty, relating to sale and/or use of Intel products including liability or warranties relating to fitness for a particular purpose, merchantability, or infringement of any patent, copyright or other intellectual property right. Intel products are not intended for use in medical, life saving, or life sustaining applications. Intel may make changes to specifications and product descriptions at any time, without notice. The Pentium® Pro processor may contain design defects or errors known as errata. Current characterized errata are available on request. *Third-party brands and names are the property of their respective owners. Contact your local Intel sales office or your distributor to obtain the latest specifications and before placing your product order. Copies of documents which have an ordering number and are referenced in this document, or other Intel literature, may be obtained from: Intel Corporation P.O.
    [Show full text]
  • Pentium® Processor Family Developer's Manual
    D Pentium® Processor Family Developer’s Manual Volume 3: Architecture and Programming Manual NOTE: The Pentium® Processor Family Developer’s Manual consists of three books: Pentium® Processor Order Number 241428; the 82496/82497/82498 Cache Controller and 82491/82492/82493 Cache SRAM, Order Number 241429; and the Architecture and Programming Manual, Order Number 241430. Please refer to all three volumes when evaluating your design needs. 1995 Information in this document is provided in connection with Intel products. No license, express or implied, by estoppel or otherwise, to any intellectual property rights is granted by this document. Except as provided in Intel’s Terms and Conditions of Sale for such products, Intel assumes no liability whatsoever, and Intel disclaims any express or implied warranty, relating to sale and/or use of Intel products including liability or warranties relating to fitness for a particular purpose, merchantability, or infringement of any patent, copyright or other intellectual property right. Intel products are not intended for use in medical, life saving, or life sustaining applications. Intel may make changes to specifications and product descriptions at any time, without notice. The Pentium® processor may contain design defects or errors known as errata. Current characterized errata are available on request. *Third-party brands and names are the property of their respective owners. Contact your local Intel sales office or your distributor to obtain the latest specifications and before placing your product order. Copies of documents which have an ordering number and are referenced in this document, or other Intel literature, may be obtained from: Intel Corporation P.O.
    [Show full text]