SlideShare ist ein Scribd-Unternehmen logo
1 von 30
Chapter 2
Instructions: Language
of the Computer
Data Representation
Integers
A decimal example
  2734 = 2 * 103 + 7 * 102 + 3 * 101 + 4 * 100
A binary example
  [01011]2 = 0 * 24 + 1 * 23 + 0 * 22 + 1 * 21 + 1 * 20 = [11] 10

Unsigned
 Unsigned integers are positive
    (or to be more precise, do not have a sign)




     Using 32 bits
        0 to +4,294,967,295


                                 Chapter 2 — Instructions: Language of the Computer — 2
Data Representation
   n bits 0, (2n – 1)
   For n = 4 use hexadecimal
   So for example:
   0000 0000 0000 0000 0000 0000 0000 1011
   becomes
   0x0000000B




                             Chapter 2 — Instructions: Language of the Computer — 3
Data Representation
   Signed




• Positive numbers are like unsigned

• But how do we store negative numbers?

                  Chapter 2 — Instructions: Language of the Computer — 4
How do we store negative numbers?
   Let’s represent -23:
   Start by representing the absolute value
    which is 23 in this case
   (For now use an 8-bit number instead of
    a 32-bit number to get rid of all the
    leading zeros)




                    Chapter 2 — Instructions: Language of the Computer — 5
Negative Numbers
   Could leave leftmost bit for sign
      0 for positive, 1 for negative

      Lead to problems
      Two zeros (0 and -0) which can be a big problem

         Could create infinite loops

   Could set leftmost bit to 1 i.e. -27 = -128
      Then ADD as many 1’s so that the sum of their decimal value

       and -128 equals the negative number we are representing




      •   We can get the same result with a better algorithm
      •   Note: that -1 is represented by 1111 1111

                              Chapter 2 — Instructions: Language of the Computer — 6
2’s Complement
   Find the complement of a binary number by flipping all
    digits (replacing 0’s and 1’s)




       Signed Negation
       Example: negate +2
          +2 = 0000 0000 … 00102

          –2 = 1111 1111 … 11012 + 1              2’s Complement
                                                   Best Notation to use
              = 1111 1111 … 11102

                            Chapter 2 — Instructions: Language of the Computer — 7
2s-Complement Signed Integers
   Given an n-bit number
                      n 1                n 2             1          0
        x    x n 12         xn   2
                                     2            x12       x0 2

   Range: –2n – 1 to +2n – 1 – 1
   Example
       1111 1111 1111 1111 1111 1111 1111 11002
        = –1×231 + 1×230 + … + 1×22 +0×21 +0×20
        = –2,147,483,648 + 2,147,483,644 = –410
   Using 32 bits
       –2,147,483,648 to +2,147,483,647

                             Chapter 2 — Instructions: Language of the Computer — 8
2s-Complement Signed Integers
   Bit 31 is sign bit
       1 for negative numbers
       0 for non-negative numbers
   –(–2n – 1) can’t be represented
   Non-negative numbers have the same unsigned
    and 2s-complement representation
   Some specific numbers
        0: 0000 0000 … 0000
       –1: 1111 1111 … 1111
       Most-negative: 1000 0000 … 0000
       Most-positive: 0111 1111 … 1111


                         Chapter 2 — Instructions: Language of the Computer — 9
Sign Extension
   Representing a number using more bits
       Preserve the numeric value
   In MIPS instruction set
       addi: extend immediate value
       lb, lh: extend loaded byte/halfword
       beq, bne: extend the displacement
   Replicate the sign bit to the left
       c.f. unsigned values: extend with 0s
   Examples: 8-bit to 16-bit
       +2: 0000 0010 => 0000 0000 0000 0010
       –2: 1111 1110 => 1111 1111 1111 1110


                          Chapter 2 — Instructions: Language of the Computer — 10
Data Representation
   We need a way to map: data  binary
   Data Types  Number Integer  Signed/Unsigned
          Real
          Char
          Other (Picture, etc.)

   How .byte 11 (in MIPS) is stored in memory:
        0000 0000 0000 0000 0000 0000 0000 1011




                           Chapter 2 — Instructions: Language of the Computer — 11
“Byte Ordering” (Endianess)
    How are bytes ordered (numbered) within a word?
b y te o f f se t
                                                         little endian byte 0
           lsb                                                   of word
                                                                         msb
                             3       2        1        0
                         0       1       2         3
           msb                                                 lsb
               0   1                          2        3
    big endian byte 0                                                          b y te o f f se t
                    of word
     Little Endianaddress (item) address (least significant byte) ;
                   Intel 80x86, DEC Alpha, etc.

     Big Endian address (item) address (most significant byte) ;
                   HP PA, IBM/Motorola PowerPC, SGI (MIPS), Ultra Sparc, etc.
        Significant when binary data (int, float, double, etc.) need to be transferred from one
         machine to another.

        Internet uses the Big Endian byte order.



                                             Chapter 2 — Instructions: Language of the Computer — 12
Memory Operands
   Main memory used for composite data
       Arrays, structures, dynamic data
   To apply arithmetic operations
       Load values from memory into registers
       Store result from register to memory
   Memory is byte addressed
       Each address identifies an 8-bit byte
   Words are aligned in memory
       Address must be a multiple of 4
   MIPS is Big Endian
       Most-significant byte at least address of a word
       c.f. Little Endian: least-significant byte at least address


                           Chapter 2 — Instructions: Language of the Computer — 13
Memory Operand Example 1
   C code:
    g = h + A[8];
      g in $s1, h in $s2, base address of A in $s3

   Compiled MIPS code:
       Index 8 requires offset of 32
            4 bytes per word
    lw $t0, 32($s3)                        # load word
    add $s1, $s2, $t0
         offset                 base register



                           Chapter 2 — Instructions: Language of the Computer — 14
Memory Operand Example 2
   C code:
    A[12] = h + A[8];
      h in $s2, base address of A in $s3

   Compiled MIPS code:
     Index 8 requires offset of 32
    lw $t0, 32($s3)             # load word
    add $t0, $s2, $t0
    sw $t0, 48($s3)             # store word



                      Chapter 2 — Instructions: Language of the Computer — 15
Registers vs. Memory
   Registers are faster to access than
    memory
   Operating on memory data requires loads
    and stores
       More instructions to be executed
   Compiler must use registers for variables
    as much as possible
       Only spill to memory for less frequently used
        variables
       Register optimization is important!

                       Chapter 2 — Instructions: Language of the Computer — 16
Immediate Operands
   Constant data specified in an instruction
    addi $s3, $s3, 4
   No subtract immediate instruction
       Just use a negative constant
        addi $s2, $s1, -1
   Design Principle 3: Make the common
    case fast
       Small constants are common
       Immediate operand avoids a load instruction

                      Chapter 2 — Instructions: Language of the Computer — 17
The Constant Zero
   MIPS register 0 ($zero) is the constant 0
       Cannot be overwritten
   Useful for common operations
       E.g., move between registers
        add $t2, $s1, $zero




                      Chapter 2 — Instructions: Language of the Computer — 18
§2.5 Representing Instructions in the Computer
Representing Instructions
   Instructions are encoded in binary
       Called machine code
   MIPS instructions
       Encoded as 32-bit instruction words
       Small number of formats encoding operation code
        (opcode), register numbers, …
       Regularity!
   Register numbers
       $t0 – $t7 are reg’s 8 – 15
       $t8 – $t9 are reg’s 24 – 25
       $s0 – $s7 are reg’s 16 – 23

                         Chapter 2 — Instructions: Language of the Computer — 19
MIPS R-format Instructions
          op       rs        rt          rd       shamt         funct
         6 bits   5 bits   5 bits       5 bits      5 bits      6 bits


   Instruction fields
       op: operation code (opcode)
       rs: first source register number
       rt: second source register number
       rd: destination register number
       shamt: shift amount (00000 for now)
       funct: function code (extends opcode)

                           Chapter 2 — Instructions: Language of the Computer — 20
R-format Example
      op       rs        rt          rd       shamt         funct
     6 bits   5 bits   5 bits       5 bits      5 bits      6 bits



  add $t0, $s1, $s2
    special    $s1      $s2         $t0          0           add

       0       17       18           8           0            32

    000000    10001    10010      01000       00000        100000


000000100011001001000000001000002 = 0232402016

                       Chapter 2 — Instructions: Language of the Computer — 21
Hexadecimal
   Base 16
       Compact representation of bit strings
       4 bits per hex digit

    0     0000   4   0100       8      1000         c      1100
    1     0001   5   0101       9      1001         d      1101
    2     0010   6   0110       a      1010         e      1110
    3     0011   7   0111       b      1011         f      1111

   Example: eca8 6420
       1110 1100 1010 1000 0110 0100 0010 0000

                       Chapter 2 — Instructions: Language of the Computer — 22
MIPS I-format Instructions
          op       rs        rt            constant or address
         6 bits   5 bits   5 bits                    16 bits

   Immediate arithmetic and load/store instructions
       rt: destination or source register number
       Constant: –215 to +215 – 1
       Address: offset added to base address in rs
   Design Principle 4: Good design demands good
    compromises
       Different formats complicate decoding, but allow 32-bit
        instructions uniformly
       Keep formats as similar as possible

                           Chapter 2 — Instructions: Language of the Computer — 23
Stored Program Computers
The BIG Picture      Instructions represented in
                      binary, just like data
                     Instructions and data stored
                      in memory
                     Programs can operate on
                      programs
                         e.g., compilers, linkers, …
                     Binary compatibility allows
                      compiled programs to work
                      on different computers
                         Standardized ISAs


                  Chapter 2 — Instructions: Language of the Computer — 24
§2.6 Logical Operations
Logical Operations
   Instructions for bitwise manipulation
      Operation     C           Java                MIPS
      Shift left    <<            <<                 sll
      Shift right   >>           >>>                 srl
     Bitwise AND    &              &           and, andi
     Bitwise OR     |              |             or, ori
     Bitwise NOT    ~              ~                 nor

   Useful for extracting and inserting
    groups of bits in a word
                    Chapter 2 — Instructions: Language of the Computer — 25
Shift Operations
          op       rs         rt          rd       shamt         funct
         6 bits   5 bits    5 bits      5 bits      5 bits       6 bits

   shamt: how many positions to shift
   Shift left logical
       Shift left and fill with 0 bits
       sll by i bits multiplies by 2i
   Shift right logical
       Shift right and fill with 0 bits
       srl by i bits divides by 2i (unsigned only)

                           Chapter 2 — Instructions: Language of the Computer — 26
AND Operations
   Useful to mask bits in a word
        Select some bits, clear others to 0
    and $t0, $t1, $t2

        $t2   0000 0000 0000 0000 0000 1101 1100 0000

        $t1   0000 0000 0000 0000 0011 1100 0000 0000

        $t0   0000 0000 0000 0000 0000 1100 0000 0000




                             Chapter 2 — Instructions: Language of the Computer — 27
OR Operations
   Useful to include bits in a word
        Set some bits to 1, leave others unchanged
    or $t0, $t1, $t2

        $t2   0000 0000 0000 0000 0000 1101 1100 0000

        $t1   0000 0000 0000 0000 0011 1100 0000 0000

        $t0   0000 0000 0000 0000 0011 1101 1100 0000




                             Chapter 2 — Instructions: Language of the Computer — 28
NOT Operations
   Useful to invert bits in a word
        Change 0 to 1, and 1 to 0
   MIPS has NOR 3-operand instruction
        a NOR b == NOT ( a OR b )
    nor $t0, $t1, $zero                                        Register 0: always
                                                               read as zero


        $t1   0000 0000 0000 0000 0011 1100 0000 0000

        $t0   1111 1111 1111 1111 1100 0011 1111 1111



                              Chapter 2 — Instructions: Language of the Computer — 29
§2.7 Instructions for Making Decisions
Conditional Operations
   Branch to a labeled instruction if a
    condition is true
       Otherwise, continue sequentially
   beq rs, rt, L1
       if (rs == rt) branch to instruction labeled L1;
   bne rs, rt, L1
       if (rs != rt) branch to instruction labeled L1;
   j L1
       unconditional jump to instruction labeled L1


                        Chapter 2 — Instructions: Language of the Computer — 30

Weitere ähnliche Inhalte

Was ist angesagt?

Systemsoftwarenotes 100929171256-phpapp02 2
Systemsoftwarenotes 100929171256-phpapp02 2Systemsoftwarenotes 100929171256-phpapp02 2
Systemsoftwarenotes 100929171256-phpapp02 2
Khaja Dileef
 
Chapter 05 computer arithmetic
Chapter 05 computer arithmeticChapter 05 computer arithmetic
Chapter 05 computer arithmetic
IIUI
 
Chapter 03 number system
Chapter 03 number systemChapter 03 number system
Chapter 03 number system
IIUI
 
Computer organiztion2
Computer organiztion2Computer organiztion2
Computer organiztion2
Umang Gupta
 
Computer organiztion3
Computer organiztion3Computer organiztion3
Computer organiztion3
Umang Gupta
 

Was ist angesagt? (20)

MIPS Architecture
MIPS ArchitectureMIPS Architecture
MIPS Architecture
 
Class2
Class2Class2
Class2
 
Systemsoftwarenotes 100929171256-phpapp02 2
Systemsoftwarenotes 100929171256-phpapp02 2Systemsoftwarenotes 100929171256-phpapp02 2
Systemsoftwarenotes 100929171256-phpapp02 2
 
Chapter 05 computer arithmetic
Chapter 05 computer arithmeticChapter 05 computer arithmetic
Chapter 05 computer arithmetic
 
Chapter 03 number system
Chapter 03 number systemChapter 03 number system
Chapter 03 number system
 
Logic design and switching theory
Logic design and switching theoryLogic design and switching theory
Logic design and switching theory
 
Computer organiztion2
Computer organiztion2Computer organiztion2
Computer organiztion2
 
Program execution, straight line sequence and branching
Program execution, straight line sequence and branchingProgram execution, straight line sequence and branching
Program execution, straight line sequence and branching
 
Cmps290 classnoteschap02
Cmps290 classnoteschap02Cmps290 classnoteschap02
Cmps290 classnoteschap02
 
Gr2512211225
Gr2512211225Gr2512211225
Gr2512211225
 
Data representation computer architecture
Data representation  computer architectureData representation  computer architecture
Data representation computer architecture
 
Computer organiztion3
Computer organiztion3Computer organiztion3
Computer organiztion3
 
Vhdl introduction
Vhdl introductionVhdl introduction
Vhdl introduction
 
It322 intro 3
It322 intro 3It322 intro 3
It322 intro 3
 
Data Representation
Data RepresentationData Representation
Data Representation
 
COMPUTER ORGANIZATION NOTES Unit 6
COMPUTER ORGANIZATION NOTES Unit 6COMPUTER ORGANIZATION NOTES Unit 6
COMPUTER ORGANIZATION NOTES Unit 6
 
Computer data representation (integers, floating-point numbers, text, images,...
Computer data representation (integers, floating-point numbers, text, images,...Computer data representation (integers, floating-point numbers, text, images,...
Computer data representation (integers, floating-point numbers, text, images,...
 
Computer Arithmetic
Computer ArithmeticComputer Arithmetic
Computer Arithmetic
 
Cse115 lecture02overviewofprogramming
Cse115 lecture02overviewofprogrammingCse115 lecture02overviewofprogramming
Cse115 lecture02overviewofprogramming
 
Data representation in a computer
Data representation in a computerData representation in a computer
Data representation in a computer
 

Andere mochten auch

Chapter 2 Hw
Chapter 2 HwChapter 2 Hw
Chapter 2 Hw
ececourse
 
Chapter 2 instructions language of the computer
Chapter 2 instructions language of the computerChapter 2 instructions language of the computer
Chapter 2 instructions language of the computer
BATMUNHMUNHZAYA
 
Instruction set-of-8085
Instruction set-of-8085Instruction set-of-8085
Instruction set-of-8085
saleForce
 

Andere mochten auch (15)

Chapter 2 Hw
Chapter 2 HwChapter 2 Hw
Chapter 2 Hw
 
Chapter 5 a
Chapter 5 aChapter 5 a
Chapter 5 a
 
Chapter 4
Chapter 4Chapter 4
Chapter 4
 
Chapter 2 instructions language of the computer
Chapter 2 instructions language of the computerChapter 2 instructions language of the computer
Chapter 2 instructions language of the computer
 
Instruction Set Architecture – II
Instruction Set Architecture – IIInstruction Set Architecture – II
Instruction Set Architecture – II
 
Instruction set-of-8085
Instruction set-of-8085Instruction set-of-8085
Instruction set-of-8085
 
8086 architecture By Er. Swapnil Kaware
8086 architecture By Er. Swapnil Kaware8086 architecture By Er. Swapnil Kaware
8086 architecture By Er. Swapnil Kaware
 
Microprocessor 8085 architecture ppt. april 2013
Microprocessor 8085 architecture ppt. april 2013Microprocessor 8085 architecture ppt. april 2013
Microprocessor 8085 architecture ppt. april 2013
 
VTU 4TH SEM CSE COMPUTER ORGANIZATION SOLVED PAPERS OF JUNE-2013 JUNE-2014 & ...
VTU 4TH SEM CSE COMPUTER ORGANIZATION SOLVED PAPERS OF JUNE-2013 JUNE-2014 & ...VTU 4TH SEM CSE COMPUTER ORGANIZATION SOLVED PAPERS OF JUNE-2013 JUNE-2014 & ...
VTU 4TH SEM CSE COMPUTER ORGANIZATION SOLVED PAPERS OF JUNE-2013 JUNE-2014 & ...
 
Instruction Set Architecture
Instruction Set ArchitectureInstruction Set Architecture
Instruction Set Architecture
 
Introduction to 8086 microprocessor
Introduction to 8086 microprocessorIntroduction to 8086 microprocessor
Introduction to 8086 microprocessor
 
1326 Introduction To 8086 Microprocessor
1326 Introduction To 8086 Microprocessor1326 Introduction To 8086 Microprocessor
1326 Introduction To 8086 Microprocessor
 
Instruction set of 8085
Instruction set  of 8085Instruction set  of 8085
Instruction set of 8085
 
The Intel 8086 microprocessor
The Intel 8086 microprocessorThe Intel 8086 microprocessor
The Intel 8086 microprocessor
 
8086 microprocessor-architecture
8086 microprocessor-architecture8086 microprocessor-architecture
8086 microprocessor-architecture
 

Ähnlich wie Chapter 2 Part2 A

Topic 1 Data Representation
Topic 1 Data RepresentationTopic 1 Data Representation
Topic 1 Data Representation
ekul
 
Data Encryption standard in cryptography
Data Encryption standard in cryptographyData Encryption standard in cryptography
Data Encryption standard in cryptography
NithyasriA2
 
Chapter 02 instructions language of the computer
Chapter 02   instructions language of the computerChapter 02   instructions language of the computer
Chapter 02 instructions language of the computer
Bảo Hoang
 
LECTURE2 td 2 sue les theories de graphes
LECTURE2 td 2 sue les theories de graphesLECTURE2 td 2 sue les theories de graphes
LECTURE2 td 2 sue les theories de graphes
AhmedMahjoub15
 
Lecture 2 coal sping12
Lecture 2 coal sping12Lecture 2 coal sping12
Lecture 2 coal sping12
Rabia Khalid
 

Ähnlich wie Chapter 2 Part2 A (20)

Intro to assembly language
Intro to assembly languageIntro to assembly language
Intro to assembly language
 
Topic 1 Data Representation
Topic 1 Data RepresentationTopic 1 Data Representation
Topic 1 Data Representation
 
Topic 1 Data Representation
Topic 1 Data RepresentationTopic 1 Data Representation
Topic 1 Data Representation
 
Data Encryption standard in cryptography
Data Encryption standard in cryptographyData Encryption standard in cryptography
Data Encryption standard in cryptography
 
C programming part2
C programming part2C programming part2
C programming part2
 
C programming part2
C programming part2C programming part2
C programming part2
 
C programming part2
C programming part2C programming part2
C programming part2
 
Digital electronics
Digital electronicsDigital electronics
Digital electronics
 
Lesson4.1 u4 l1 binary representation
Lesson4.1 u4 l1 binary representationLesson4.1 u4 l1 binary representation
Lesson4.1 u4 l1 binary representation
 
Highlevel assemly
Highlevel assemlyHighlevel assemly
Highlevel assemly
 
ISA.pptx
ISA.pptxISA.pptx
ISA.pptx
 
Trible data encryption standard (3DES)
Trible data encryption standard (3DES)Trible data encryption standard (3DES)
Trible data encryption standard (3DES)
 
Chapter 02 instructions language of the computer
Chapter 02   instructions language of the computerChapter 02   instructions language of the computer
Chapter 02 instructions language of the computer
 
LECTURE2 td 2 sue les theories de graphes
LECTURE2 td 2 sue les theories de graphesLECTURE2 td 2 sue les theories de graphes
LECTURE2 td 2 sue les theories de graphes
 
COMPUTER ORGANIZATION NOTES Unit 2
COMPUTER ORGANIZATION NOTES  Unit 2COMPUTER ORGANIZATION NOTES  Unit 2
COMPUTER ORGANIZATION NOTES Unit 2
 
1.1.1 BINARY SYSTEM
1.1.1 BINARY SYSTEM1.1.1 BINARY SYSTEM
1.1.1 BINARY SYSTEM
 
Lecture 2 coal sping12
Lecture 2 coal sping12Lecture 2 coal sping12
Lecture 2 coal sping12
 
digital logic design number system
digital logic design number systemdigital logic design number system
digital logic design number system
 
Chapter02.pdf
Chapter02.pdfChapter02.pdf
Chapter02.pdf
 
dtei-180910104911-converted.pptx
dtei-180910104911-converted.pptxdtei-180910104911-converted.pptx
dtei-180910104911-converted.pptx
 

Mehr von ececourse

Mehr von ececourse (7)

Chapter 5 c
Chapter 5 cChapter 5 c
Chapter 5 c
 
Chapter 5 b
Chapter 5  bChapter 5  b
Chapter 5 b
 
Auxiliary
AuxiliaryAuxiliary
Auxiliary
 
Mem Tb
Mem TbMem Tb
Mem Tb
 
Machine Problem 2
Machine Problem 2Machine Problem 2
Machine Problem 2
 
Machine Problem 1
Machine Problem 1Machine Problem 1
Machine Problem 1
 
Chapter1
Chapter1Chapter1
Chapter1
 

Kürzlich hochgeladen

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Kürzlich hochgeladen (20)

Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Introduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMIntroduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDM
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 

Chapter 2 Part2 A

  • 2. Data Representation Integers A decimal example  2734 = 2 * 103 + 7 * 102 + 3 * 101 + 4 * 100 A binary example  [01011]2 = 0 * 24 + 1 * 23 + 0 * 22 + 1 * 21 + 1 * 20 = [11] 10 Unsigned  Unsigned integers are positive  (or to be more precise, do not have a sign)  Using 32 bits  0 to +4,294,967,295 Chapter 2 — Instructions: Language of the Computer — 2
  • 3. Data Representation  n bits 0, (2n – 1)  For n = 4 use hexadecimal  So for example:  0000 0000 0000 0000 0000 0000 0000 1011  becomes  0x0000000B Chapter 2 — Instructions: Language of the Computer — 3
  • 4. Data Representation  Signed • Positive numbers are like unsigned • But how do we store negative numbers? Chapter 2 — Instructions: Language of the Computer — 4
  • 5. How do we store negative numbers?  Let’s represent -23:  Start by representing the absolute value which is 23 in this case  (For now use an 8-bit number instead of a 32-bit number to get rid of all the leading zeros) Chapter 2 — Instructions: Language of the Computer — 5
  • 6. Negative Numbers  Could leave leftmost bit for sign  0 for positive, 1 for negative  Lead to problems  Two zeros (0 and -0) which can be a big problem  Could create infinite loops  Could set leftmost bit to 1 i.e. -27 = -128  Then ADD as many 1’s so that the sum of their decimal value and -128 equals the negative number we are representing • We can get the same result with a better algorithm • Note: that -1 is represented by 1111 1111 Chapter 2 — Instructions: Language of the Computer — 6
  • 7. 2’s Complement  Find the complement of a binary number by flipping all digits (replacing 0’s and 1’s)  Signed Negation  Example: negate +2  +2 = 0000 0000 … 00102  –2 = 1111 1111 … 11012 + 1 2’s Complement Best Notation to use = 1111 1111 … 11102 Chapter 2 — Instructions: Language of the Computer — 7
  • 8. 2s-Complement Signed Integers  Given an n-bit number n 1 n 2 1 0 x x n 12 xn 2 2  x12 x0 2  Range: –2n – 1 to +2n – 1 – 1  Example  1111 1111 1111 1111 1111 1111 1111 11002 = –1×231 + 1×230 + … + 1×22 +0×21 +0×20 = –2,147,483,648 + 2,147,483,644 = –410  Using 32 bits  –2,147,483,648 to +2,147,483,647 Chapter 2 — Instructions: Language of the Computer — 8
  • 9. 2s-Complement Signed Integers  Bit 31 is sign bit  1 for negative numbers  0 for non-negative numbers  –(–2n – 1) can’t be represented  Non-negative numbers have the same unsigned and 2s-complement representation  Some specific numbers  0: 0000 0000 … 0000  –1: 1111 1111 … 1111  Most-negative: 1000 0000 … 0000  Most-positive: 0111 1111 … 1111 Chapter 2 — Instructions: Language of the Computer — 9
  • 10. Sign Extension  Representing a number using more bits  Preserve the numeric value  In MIPS instruction set  addi: extend immediate value  lb, lh: extend loaded byte/halfword  beq, bne: extend the displacement  Replicate the sign bit to the left  c.f. unsigned values: extend with 0s  Examples: 8-bit to 16-bit  +2: 0000 0010 => 0000 0000 0000 0010  –2: 1111 1110 => 1111 1111 1111 1110 Chapter 2 — Instructions: Language of the Computer — 10
  • 11. Data Representation  We need a way to map: data  binary  Data Types  Number Integer  Signed/Unsigned  Real  Char  Other (Picture, etc.)  How .byte 11 (in MIPS) is stored in memory: 0000 0000 0000 0000 0000 0000 0000 1011 Chapter 2 — Instructions: Language of the Computer — 11
  • 12. “Byte Ordering” (Endianess)  How are bytes ordered (numbered) within a word? b y te o f f se t little endian byte 0 lsb of word msb 3 2 1 0 0 1 2 3 msb lsb 0 1 2 3 big endian byte 0 b y te o f f se t of word  Little Endianaddress (item) address (least significant byte) ;  Intel 80x86, DEC Alpha, etc.  Big Endian address (item) address (most significant byte) ;  HP PA, IBM/Motorola PowerPC, SGI (MIPS), Ultra Sparc, etc.  Significant when binary data (int, float, double, etc.) need to be transferred from one machine to another.  Internet uses the Big Endian byte order. Chapter 2 — Instructions: Language of the Computer — 12
  • 13. Memory Operands  Main memory used for composite data  Arrays, structures, dynamic data  To apply arithmetic operations  Load values from memory into registers  Store result from register to memory  Memory is byte addressed  Each address identifies an 8-bit byte  Words are aligned in memory  Address must be a multiple of 4  MIPS is Big Endian  Most-significant byte at least address of a word  c.f. Little Endian: least-significant byte at least address Chapter 2 — Instructions: Language of the Computer — 13
  • 14. Memory Operand Example 1  C code: g = h + A[8];  g in $s1, h in $s2, base address of A in $s3  Compiled MIPS code:  Index 8 requires offset of 32  4 bytes per word lw $t0, 32($s3) # load word add $s1, $s2, $t0 offset base register Chapter 2 — Instructions: Language of the Computer — 14
  • 15. Memory Operand Example 2  C code: A[12] = h + A[8];  h in $s2, base address of A in $s3  Compiled MIPS code:  Index 8 requires offset of 32 lw $t0, 32($s3) # load word add $t0, $s2, $t0 sw $t0, 48($s3) # store word Chapter 2 — Instructions: Language of the Computer — 15
  • 16. Registers vs. Memory  Registers are faster to access than memory  Operating on memory data requires loads and stores  More instructions to be executed  Compiler must use registers for variables as much as possible  Only spill to memory for less frequently used variables  Register optimization is important! Chapter 2 — Instructions: Language of the Computer — 16
  • 17. Immediate Operands  Constant data specified in an instruction addi $s3, $s3, 4  No subtract immediate instruction  Just use a negative constant addi $s2, $s1, -1  Design Principle 3: Make the common case fast  Small constants are common  Immediate operand avoids a load instruction Chapter 2 — Instructions: Language of the Computer — 17
  • 18. The Constant Zero  MIPS register 0 ($zero) is the constant 0  Cannot be overwritten  Useful for common operations  E.g., move between registers add $t2, $s1, $zero Chapter 2 — Instructions: Language of the Computer — 18
  • 19. §2.5 Representing Instructions in the Computer Representing Instructions  Instructions are encoded in binary  Called machine code  MIPS instructions  Encoded as 32-bit instruction words  Small number of formats encoding operation code (opcode), register numbers, …  Regularity!  Register numbers  $t0 – $t7 are reg’s 8 – 15  $t8 – $t9 are reg’s 24 – 25  $s0 – $s7 are reg’s 16 – 23 Chapter 2 — Instructions: Language of the Computer — 19
  • 20. MIPS R-format Instructions op rs rt rd shamt funct 6 bits 5 bits 5 bits 5 bits 5 bits 6 bits  Instruction fields  op: operation code (opcode)  rs: first source register number  rt: second source register number  rd: destination register number  shamt: shift amount (00000 for now)  funct: function code (extends opcode) Chapter 2 — Instructions: Language of the Computer — 20
  • 21. R-format Example op rs rt rd shamt funct 6 bits 5 bits 5 bits 5 bits 5 bits 6 bits add $t0, $s1, $s2 special $s1 $s2 $t0 0 add 0 17 18 8 0 32 000000 10001 10010 01000 00000 100000 000000100011001001000000001000002 = 0232402016 Chapter 2 — Instructions: Language of the Computer — 21
  • 22. Hexadecimal  Base 16  Compact representation of bit strings  4 bits per hex digit 0 0000 4 0100 8 1000 c 1100 1 0001 5 0101 9 1001 d 1101 2 0010 6 0110 a 1010 e 1110 3 0011 7 0111 b 1011 f 1111  Example: eca8 6420  1110 1100 1010 1000 0110 0100 0010 0000 Chapter 2 — Instructions: Language of the Computer — 22
  • 23. MIPS I-format Instructions op rs rt constant or address 6 bits 5 bits 5 bits 16 bits  Immediate arithmetic and load/store instructions  rt: destination or source register number  Constant: –215 to +215 – 1  Address: offset added to base address in rs  Design Principle 4: Good design demands good compromises  Different formats complicate decoding, but allow 32-bit instructions uniformly  Keep formats as similar as possible Chapter 2 — Instructions: Language of the Computer — 23
  • 24. Stored Program Computers The BIG Picture  Instructions represented in binary, just like data  Instructions and data stored in memory  Programs can operate on programs  e.g., compilers, linkers, …  Binary compatibility allows compiled programs to work on different computers  Standardized ISAs Chapter 2 — Instructions: Language of the Computer — 24
  • 25. §2.6 Logical Operations Logical Operations  Instructions for bitwise manipulation Operation C Java MIPS Shift left << << sll Shift right >> >>> srl Bitwise AND & & and, andi Bitwise OR | | or, ori Bitwise NOT ~ ~ nor  Useful for extracting and inserting groups of bits in a word Chapter 2 — Instructions: Language of the Computer — 25
  • 26. Shift Operations op rs rt rd shamt funct 6 bits 5 bits 5 bits 5 bits 5 bits 6 bits  shamt: how many positions to shift  Shift left logical  Shift left and fill with 0 bits  sll by i bits multiplies by 2i  Shift right logical  Shift right and fill with 0 bits  srl by i bits divides by 2i (unsigned only) Chapter 2 — Instructions: Language of the Computer — 26
  • 27. AND Operations  Useful to mask bits in a word  Select some bits, clear others to 0 and $t0, $t1, $t2 $t2 0000 0000 0000 0000 0000 1101 1100 0000 $t1 0000 0000 0000 0000 0011 1100 0000 0000 $t0 0000 0000 0000 0000 0000 1100 0000 0000 Chapter 2 — Instructions: Language of the Computer — 27
  • 28. OR Operations  Useful to include bits in a word  Set some bits to 1, leave others unchanged or $t0, $t1, $t2 $t2 0000 0000 0000 0000 0000 1101 1100 0000 $t1 0000 0000 0000 0000 0011 1100 0000 0000 $t0 0000 0000 0000 0000 0011 1101 1100 0000 Chapter 2 — Instructions: Language of the Computer — 28
  • 29. NOT Operations  Useful to invert bits in a word  Change 0 to 1, and 1 to 0  MIPS has NOR 3-operand instruction  a NOR b == NOT ( a OR b ) nor $t0, $t1, $zero Register 0: always read as zero $t1 0000 0000 0000 0000 0011 1100 0000 0000 $t0 1111 1111 1111 1111 1100 0011 1111 1111 Chapter 2 — Instructions: Language of the Computer — 29
  • 30. §2.7 Instructions for Making Decisions Conditional Operations  Branch to a labeled instruction if a condition is true  Otherwise, continue sequentially  beq rs, rt, L1  if (rs == rt) branch to instruction labeled L1;  bne rs, rt, L1  if (rs != rt) branch to instruction labeled L1;  j L1  unconditional jump to instruction labeled L1 Chapter 2 — Instructions: Language of the Computer — 30