1 Lecture 7: MARS, Computer Arithmetic Today’s topics:  MARS intro  Numerical representations  Addition and subtraction.

Slides:



Advertisements
Similar presentations
Addition and Subtraction. Outline Arithmetic Operations (Section 1.2) – Addition – Subtraction – Multiplication Complements (Section 1.5) – 1’s complement.
Advertisements

COE 202: Digital Logic Design Signed Numbers
Computer Structure - Computer Arithmetic Goal: Representing Numbers in Binary  Base 10 (decimal) - Numbers are represented using 10 numerals: 0, 1, 2,
Chap.2: Instructions: Language of the computer Jen-Chang Liu, Spring 2006 Adapted from
CS 61C L02 Number Representation (1)Harvey / Wawrzynek Fall 2003 © UCB 8/27/2003  Brian Harvey ( John Wawrzynek  (Warznek) (
Arithmetic CPSC 321 Computer Architecture Andreas Klappenecker.
COMP3221 lec06-numbers-II.1 Saeid Nooshabadi COMP 3221 Microprocessors and Embedded Systems Lecture 6: Number Systems - II
1 Representing Numbers Using Bases Numbers in base 10 are called decimal numbers, they are composed of 10 numerals ( ספרות ) = 9* * *10.
CS 61C L02 Number Representation (1) Garcia, Spring 2004 © UCB Lecturer PSOE Dan Garcia inst.eecs.berkeley.edu/~cs61c CS61C.
1 Lecture 8: Binary Multiplication & Division Today’s topics:  Addition/Subtraction  Multiplication  Division Reminder: get started early on assignment.
1 Binary Arithmetic, Subtraction The rules for binary arithmetic are: = 0, carry = = 1, carry = = 1, carry = = 0, carry =
Arithmetic I CPSC 321 Andreas Klappenecker. Administrative Issues Office hours of TA Praveen Bhojwani: M 1:00pm-3:00pm.
1 Lecture 7: Computer Arithmetic Today’s topics:  Chapter 2 wrap-up  Numerical representations  Addition and subtraction Reminder: Assignment 3 will.
Number Representation (1) Fall 2005 Lecture 12: Number Representation Integers and Computer Arithmetic.
1  1998 Morgan Kaufmann Publishers Chapter Four Arithmetic for Computers.
1 Lecture 6: Compilers, the SPIM Simulator Today’s topics:  SPIM simulator  The compilation process Additional TA hours: Liqun Cheng, legion at.
DIGITAL SYSTEMS TCE1111 Representation and Arithmetic Operations with Signed Numbers Week 6 and 7 (Lecture 1 of 2)
Chapter 3 Arithmetic for Computers. Arithmetic Where we've been: Abstractions: Instruction Set Architecture Assembly Language and Machine Language What's.
S. Barua – CPSC 240 CHAPTER 2 BITS, DATA TYPES, & OPERATIONS Topics to be covered are Number systems.
1 Binary Numbers Again Recall that N binary digits (N bits) can represent unsigned integers from 0 to 2 N bits = 0 to 15 8 bits = 0 to bits.
Lecture 12: Computer Arithmetic Today’s topic –Numerical representations –Addition / Subtraction –Multiplication / Division 1.
Arithmetic for Computers
CSCI-365 Computer Organization Lecture Note: Some slides and/or pictures in the following are adapted from: Computer Organization and Design, Patterson.
CENG 311 Machine Representation/Numbers
Simple Data Type Representation and conversion of numbers
CSCI 136 Lab 1 Outline Go through the CD attached to the textbook. Homework Hints 135 Review.
Lecture 5.
CMPE 325 Computer Architecture II Cem Ergün Eastern Mediterranean University Integer Representation and the ALU.
1 CS/COE0447 Computer Organization & Assembly Language Chapter 3.
1 Modified from  Modified from 1998 Morgan Kaufmann Publishers Chapter Three: Arithmetic for Computers citation and following credit line is included:
2-1 Chapter 2 - Data Representation Principles of Computer Architecture by M. Murdocca and V. Heuring © 1999 M. Murdocca and V. Heuring Chapter Contents.
IT253: Computer Organization
Computing Systems Basic arithmetic for computers.
Digital Logic Design Lecture 3 Complements, Number Codes and Registers.
ECE 301 – Digital Electronics Unsigned and Signed Numbers, Binary Arithmetic of Signed Numbers, and Binary Codes (Lecture #2)
BR 8/99 Binary Numbers Again Recall than N binary digits (N bits) can represent unsigned integers from 0 to 2 N bits = 0 to 15 8 bits = 0 to 255.
Lecture 11: Chapter 2 Today’s topic –Numerical representations Reminders –Homework 3 posted, due 9/29/2014 –Homework 4 posted, due 10/6/2014 –Midterm 1.
Lecture 10: MIPS Simulator Today’s topic –SPIM Simulator Readings –Appendix B 1.
Data Representation in Computer Systems. 2 Signed Integer Representation The conversions we have so far presented have involved only positive numbers.
Ch3a- 2 EE/CS/CPE Computer Organization  Seattle Pacific University Crunching Numbers Topics we need to explore Representing numbers on a computer.
Digital Logic Lecture 3 Binary Arithmetic By Zyad Dwekat The Hashemite University Computer Engineering Department.
Lecture 161 Lets examine a SPIM program in detail. io.asm This program is a simple routine which demonstrates input/output using assembly code. SPIM.
Digital Representations ME 4611 Binary Representation Only two states (0 and 1) Easy to implement electronically %0= (0) 10 %1= (1) 10 %10= (2) 10 %11=
1 Signed Arithmetic Logical Operations Ellen Spertus MCS 111 October 1, 2002.
ECE DIGITAL LOGIC LECTURE 3: DIGITAL COMPUTER AND NUMBER SYSTEMS Assistant Prof. Fareena Saqib Florida Institute of Technology Fall 2016, 01/19/2016.
In decimal we are quite familiar with placing a “-” sign in front of a number to denote that it is negative The same is true for binary numbers a computer.
09/03/20161 Information Representation Two’s Complement & Binary Arithmetic.
9/23/2004Comp 120 Fall September Chapter 4 – Arithmetic and its implementation Assignments 5,6 and 7 posted to the class web page.
EE204 L03-ALUHina Anwar Khan EE204 Computer Architecture Lecture 03- ALU.
May 2, 2001System Architecture I1 Systems Architecture I (CS ) Lecture 11: Arithmetic for Computers * Jeremy R. Johnson May 2, 2001 *This lecture.
Binary Addition The simplest arithmetic operation in binary is addition. Adding two single-digit binary numbers is relatively simple, using a form of carrying:
Representing Positive and Negative Numbers
Based on slides from D. Patterson and www-inst.eecs.berkeley.edu/~cs152/ COM 249 – Computer Organization and Assembly Language Chapter 3 Arithmetic For.
Negative Binary Numbers
Lecture 7: MARS, Computer Arithmetic
Data Representation Binary Numbers Binary Addition
Lecture 2 Topics Binary Arithmetic (Unsigned binary operands)
Negative Binary Numbers
Lecture 8: Addition, Multiplication & Division
Lecture 8: Addition, Multiplication & Division
Number Representation
The University of Adelaide, School of Computer Science
Data Representation Data Types Complements Fixed Point Representation
Lecture 7: Examples, MARS, Arithmetic
CS/COE0447 Computer Organization & Assembly Language
CS/COE0447 Computer Organization & Assembly Language
A 1-Bit Arithmetic Logic Unit
Computer Organization COMP 210
ECE 331 – Digital System Design
COMS 361 Computer Organization
Presentation transcript:

1 Lecture 7: MARS, Computer Arithmetic Today’s topics:  MARS intro  Numerical representations  Addition and subtraction

2 MARS Intro Directives, labels, global pointers, system calls

3 Example Print Routine.data str:.asciiz “the answer is ”.text li $v0, 4 # load immediate; 4 is the code for print_string la $a0, str # the print_string syscall expects the string # address as the argument; la is the instruction # to load the address of the operand (str) syscall # SPIM will now invoke syscall-4 li $v0, 1 # syscall-1 corresponds to print_int li $a0, 5 # print_int expects the integer as its argument syscall # SPIM will now invoke syscall-1

4 Example Write an assembly program to prompt the user for two numbers and print the sum of the two numbers

5 Example.text.data.globl main str1:.asciiz “Enter 2 numbers:” main: str2:.asciiz “The sum is ” li $v0, 4 la $a0, str1 syscall li $v0, 5 syscall add $t0, $v0, $zero li $v0, 5 syscall add $t1, $v0, $zero li $v0, 4 la $a0, str2 syscall li $v0, 1 add $a0, $t1, $t0 syscall

6 Binary Representation The binary number represents the quantity 0 x x x … + 1 x 2 0 A 32-bit word can represent 2 32 numbers between 0 and … this is known as the unsigned representation as we’re assuming that numbers are always positive Most significant bitLeast significant bit

7 ASCII Vs. Binary Does it make more sense to represent a decimal number in ASCII? Hardware to implement arithmetic would be difficult What are the storage needs? How many bits does it take to represent the decimal number 1,000,000,000 in ASCII and in binary?

8 ASCII Vs. Binary Does it make more sense to represent a decimal number in ASCII? Hardware to implement arithmetic would be difficult What are the storage needs? How many bits does it take to represent the decimal number 1,000,000,000 in ASCII and in binary? In binary: 30 bits (2 30 > 1 billion) In ASCII: 10 characters, 8 bits per char = 80 bits

9 Negative Numbers 32 bits can only represent 2 32 numbers – if we wish to also represent negative numbers, we can represent 2 31 positive numbers (incl zero) and 2 31 negative numbers two = 0 ten two = 1 ten … two = two = two = -(2 31 – 1) two = -(2 31 – 2) … two = two = -1

10 2’s Complement two = 0 ten two = 1 ten … two = two = two = -(2 31 – 1) two = -(2 31 – 2) … two = two = -1 Why is this representation favorable? Consider the sum of 1 and -2 …. we get -1 Consider the sum of 2 and -1 …. we get +1 This format can directly undergo addition without any conversions! Each number represents the quantity x x x … + x x 0 2 0

11 2’s Complement two = 0 ten two = 1 ten … two = two = two = -(2 31 – 1) two = -(2 31 – 2) … two = two = -1 Note that the sum of a number x and its inverted representation x’ always equals a string of 1s (-1). x + x’ = -1 x’ + 1 = -x … hence, can compute the negative of a number by -x = x’ + 1 inverting all bits and adding 1 Similarly, the sum of x and –x gives us all zeroes, with a carry of 1 In reality, x + (-x) = 2 n … hence the name 2’s complement

12 Example Compute the 32-bit 2’s complement representations for the following decimal numbers: 5, -5, -6

13 Example Compute the 32-bit 2’s complement representations for the following decimal numbers: 5, -5, -6 5: : : Given -5, verify that negating and adding 1 yields the number 5

14 Signed / Unsigned The hardware recognizes two formats: unsigned (corresponding to the C declaration unsigned int) -- all numbers are positive, a 1 in the most significant bit just means it is a really large number signed (C declaration is signed int or just int) -- numbers can be +/-, a 1 in the MSB means the number is negative This distinction enables us to represent twice as many numbers when we’re sure that we don’t need negatives

15 MIPS Instructions Consider a comparison instruction: slt $t0, $t1, $zero and $t1 contains the 32-bit number …01 What gets stored in $t0?

16 MIPS Instructions Consider a comparison instruction: slt $t0, $t1, $zero and $t1 contains the 32-bit number …01 What gets stored in $t0? The result depends on whether $t1 is a signed or unsigned number – the compiler/programmer must track this and accordingly use either slt or sltu slt $t0, $t1, $zero stores 1 in $t0 sltu $t0, $t1, $zero stores 0 in $t0

17 Sign Extension Occasionally, 16-bit signed numbers must be converted into 32-bit signed numbers – for example, when doing an add with an immediate operand The conversion is simple: take the most significant bit and use it to fill up the additional bits on the left – known as sign extension So 2 10 goes from to and goes from to

18 Alternative Representations The following two (intuitive) representations were discarded because they required additional conversion steps before arithmetic could be performed on the numbers  sign-and-magnitude: the most significant bit represents +/- and the remaining bits express the magnitude  one’s complement: -x is represented by inverting all the bits of x Both representations above suffer from two zeroes

19 Addition and Subtraction Addition is similar to decimal arithmetic For subtraction, simply add the negative number – hence, subtract A-B involves negating B’s bits, adding 1 and A Source: H&P textbook

20 Overflows For an unsigned number, overflow happens when the last carry (1) cannot be accommodated For a signed number, overflow happens when the most significant bit is not the same as every bit to its left  when the sum of two positive numbers is a negative result  when the sum of two negative numbers is a positive result  The sum of a positive and negative number will never overflow MIPS allows addu and subu instructions that work with unsigned integers and never flag an overflow – to detect the overflow, other instructions will have to be executed

21 Title Bullet