1 / 15

CS 230: Computer Organization and Assembly Language

CS 230: Computer Organization and Assembly Language. Aviral Shrivastava. Department of Computer Science and Engineering School of Computing and Informatics Arizona State University. Slides courtesy: Prof. Yann Hang Lee, ASU, Prof. Mary Jane Irwin, PSU, Ande Carle, UCB. Announcements. Quiz 2

eunice
Download Presentation

CS 230: Computer Organization and Assembly Language

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CS 230: Computer Organization and Assembly Language Aviral Shrivastava Department of Computer Science and Engineering School of Computing and Informatics Arizona State University Slides courtesy: Prof. Yann Hang Lee, ASU, Prof. Mary Jane Irwin, PSU, Ande Carle, UCB

  2. Announcements • Quiz 2 • Complete Chapter 2 • MIPS Assembly Language Programming, including function calls • Thursday, Sept 24, 2009 • Project 2 • MIPS Assembly Language Programming, including function calls • Will take a day or two to program • Due tomorrow

  3. CSE 230 Road map • So far • Write any program in MIPS assembly language • Convert into binary instructions • Today • How are numbers represented • How are they added, subtracted, multiplied divided

  4. Numbers • Bits are just bits (no inherent meaning) • conventions define relationship between bits and numbers • Unsigned Numbers • 0 - 231 • Large Numbers • Avogadro's number • 6.0221415 × 1023 ~ 64 bits • Signed Numbers • How to represent –ve numbers • Fractions • How to represent

  5. Unsigned Numbers • Representation (d31 d30 … d2 d1 d0)2 = d31*231 + d30*230 + … d2*22 + d1 * 21 + d0*20 0000 0000 0000 0000 0000 0000 0000 0000 = 010 0000 0000 0000 0000 0000 0000 0000 0001 = 110 0000 0000 0000 0000 0000 0000 0000 0010 = 210 . . . . . . . . . . 1111 1111 1111 1111 1111 1111 1111 1111 = 4,294,967,29510 • Minimum Number = 0 = (0000….0000)2 • Maximum Number = (1111….1111)2 = (1 0000….0000)2 – 1 = 232-1 32

  6. Addition of Unsigned Numbers • Addition 0 0 1 1 3 + 0 0 1 0 +2 --------------------- 0 1 0 1 5 • What happens when • Addition results in a number that does not fit in 32-bits • 232-1 + 232-1 = 2*232 – 2 = 233 -2 -- needs 33 bits • Overflow

  7. Subtraction of Unsigned Numbers • Subtraction 0 0 1 1 3 - 0 0 1 0 -2 --------------------- 0 0 0 1 1 • What happens when • You subtract greater number from smaller number • Need –ve numbers

  8. Signed Numbers • One simple strategy • Sign Magnitude Representation • Leftmost bit is sign bit • Rest 31-bits are unsigned • Representation • (d31 d30 … d2 d1 d0)2 = (-1)*d31 + d30*230 + … d2*22 + d1 * 21 + d0*20 • Number Range = -(231-1), …,-1,-0, +0,+1, …, +(231-1) • 2 zero’s • How to find –ve of a number • Just change the sign-bit • Addition & Subtraction • Add/Sub the 31-bits, and change the sign bit logically • Need a seamless way to perform these very frequent operations 1-bit sign 31-bit magnitude

  9. 2s Complement Representation • Representation • (d31 d30 … d2 d1 d0)2 = d31*(-2)31 + d30*230 + … d2*22 + d1 * 21 + d0*20 • Examples 0000 0000 0000 0000 0000 0000 0000 0000two = 0ten0000 0000 0000 0000 0000 0000 0000 0001two = + 1ten0000 0000 0000 0000 0000 0000 0000 0010two = + 2ten... 0111 1111 1111 1111 1111 1111 1111 1110two = + 2,147,483,646ten0111 1111 1111 1111 1111 1111 1111 1111two = + 2,147,483,647ten 1000 0000 0000 0000 0000 0000 0000 0000two = – 2,147,483,648ten 1000 0000 0000 0000 0000 0000 0000 0001two = – 2,147,483,647ten1000 0000 0000 0000 0000 0000 0000 0010two = – 2,147,483,646ten... 1111 1111 1111 1111 1111 1111 1111 1101two = – 3ten1111 1111 1111 1111 1111 1111 1111 1110two = – 2ten1111 1111 1111 1111 1111 1111 1111 1111two = – 1ten

  10. Negate 2's Complement Number • Negating a two's complement number: invert all bits and add 1 • remember: “negate” and “invert” are quite different! • 0000 0000 0000 0000 0000 0000 0000 0010two = + 2ten • 1111 1111 1111 1111 1111 1111 1111 1110two = – 2ten • Converting n bit numbers into numbers with more than n bits: • MIPS 16 bit immediate gets converted to 32 bits for arithmetic • "sign extension" • copy the most significant bit (the sign bit) into the other bits 0010 -> 0000 0010 1010 -> 1111 1010

  11. Add 2’s Complement Numbers 1 1 0 1 1 1 + 0 1 1 0 1 1 0 1 • Just like unsigned numbers 7 + 6 = 13 -4 + -5 = -9 0 0 0 1 1 1 1 0 0 1 1 + 0 1 1 1 0 1 1 1

  12. Subtract 2’s Complement Numbers 0 0 1 1 1 1 0 0 - + 0 1 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 - + 0 1 0 1 0 1 1 1 1 1 0 0 0 0 0 0 • A – B = A + (-B) = A + (!B + 1) • Just like unsigned numbers 6 – 7 = 6 + (~7 + 1) = -1 -3 – 5 = -3 + (~(5)+1) = -8 0 0 0 1 1 1 1 1 0 1 1 1

  13. Overflow 0 0 1 1 1 1 1 1 + - 1 0 0 1 0 1 1 1 0 1 0 0 • When result of operation too large to fit in 32-bits 7 – (-13) = 20 • Detect Overflows • Positive + Positive -> Negative • Negative + Negative -> Positive • Positive – Negative -> Negative • Negative – Positive -> Positive • Consider the operations A + B, and A – B • Can overflow occur if B is 0 ? • Can overflow occur if A is 0 ? 0 0 1 0 1

  14. Effects of Overflow • An exception (interrupt) occurs • Control jumps to predefined address for exception • Interrupted address is saved for possible resumption • Details based on software system / language • example: flight control vs. homework assignment • Don't always want to detect overflow • new MIPS instructions: addu, addiu, subunote: addiu still sign-extends!note: sltu, sltiu for unsigned comparisons

  15. Yoda says… • Luke: I can’t believe it. • Yoda: That is why you fail

More Related