1 / 23

CS/COE0447 Computer Organization & Assembly Language

Introduction to computer organization and assembly language concepts. Includes concepts of program execution, number representation, and program performance.

keffie
Download Presentation

CS/COE0447 Computer Organization & 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/COE0447Computer Organization & Assembly Language Pre-Chapter 2

  2. void swap(int v[], int k) { int temp; temp = v[k]; v[k] = v[k+1]; v[k+1] = temp; } swap: muli $2, $5, 4 add $2, $4, $2 lw $15, 0($2) lw $16, 4($2) sw $16, 0($2) sw $15, 4($2) jr $31 00000000101000010… 00000000000110000… 10001100011000100… 10001100111100100… 10101100111100100… 10101100011000100… 00000011111000000… assembler compiler “C Program” Down to “Numbers”

  3. 00000000101000010… 00000000000110000… 10001100011000100… 10001100111100100… 10101100111100100… 10101100011000100… 00000011111000000… “Numbers” in Memory

  4. program counter Stored Program Concept program fetch data load/store program A program A disk I/O data A program C program B program B data B processor hard disk main memory

  5. Stored Program Concept • Programs (instructions) are stored in memory as a stream of bits (numbers) • Indistinguishable from data • More than one program can reside in memory at the same time • Programs can be modified by the processor or I/O just as data can be modified • Instructions are fetched by the processor and decoded; they determine processor actions • Program Counter determines which instruction is fetched next

  6. Stored Program Concept • In fact, one of the great ideas in computer science is the idea that programs could be stored just as data is stored. • Before that, people envisioned the hardware running a fixed program, and data being stored in memory.

  7. Addresses and Contents shown in Hex

  8. Number Systems • Actual machine code is in binary • O, 1 are high and low signals to hardware • Hex (base 16) is often used by humans (code, simulator, manuals, …) because: • 16 is a power of 2 (while 10 is not); mapping between hex and binary is easy • It’s more compact than binary • We can write, e.g., 0x90000008 in programs rather than 10010000000000000000000000001000

  9. Base 10 (Decimal) • Digits: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 (10 of them) • Example: • 3217 = (3103) + (2102) + (1101) + (7100) • A shorthand form we’ll also use: 103 102 101 100 3 2 1 7

  10. Numbers and Bases in General • Number Base B  B unique values per digit • Base 10: {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} • Base 2: {0, 1} • Base 16: {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F} • (Unsigned) number representation • d31d30…d1d0 is a 32-digit non-negative number • Value = d31B31 + d30B30 + … + d1B1 + d0B0 • N-digit base B  BN unique values in N digits of base B

  11. Example: Base 2 (Binary) • Digits: 0, 1 (2 of them) • “Binary digit” = “Bit” • Example: • 11010two = (124) + (123) + (022) + (121) + (020) = 16 + 8 + 0 + 2 + 0 = 26ten • Choice for machine implementation! • 1 = on, 0 = off

  12. Base Conversion • Let’s do decimal-to-binary conversion: • Aten = dn-1dn-2…d1d0two • Given a base-10 number A, come up with n-digit binary number that has the same value! • X = the number • Let N be the largest power of 2 that fits into X • Put a 1 in that position • X = X – 2^N • Repeat until you are done!

  13. Base Conversion, cont’d • From binary to decimal • From decimal to binary • From binary to hexadecimal • From hexadecimal to binary • From decimal to hexadecimal? (more complicated; later)

  14. Base Conversion, cont’d • Binary to hex (base 16), or hex to binary base conversion: • Take 4 bits in binary and convert them into one hex digit and vice versa • For binary  hex: 4-bit groups, starting from the right • For hex  binary: translate each hex digit into 4 bits, starting from the right • Since binary notation tends to be long, hex notation is frequently used in assembly language (and in C programs). • More on binary number representation will be discussed when we study arithmetic

  15. Before moving on to chapter 2…. • We’ll mention some concepts in program performance, so you have ideas in mind • We’ll return to this material later in the course.

  16. Program Performance • Program performance is measured in terms of time! • Program execution time depends on: • Number of instructions executed to complete a job • How many clock cycles are needed to execute a single instruction • The length of the clock cycle (clock cycle time)

  17. Function block (made of circuits) Clock, Clock Cycle Time • Circuits in computers are “clocked” • At each clock rising (or falling) edge, some specified actions are done, usually within the next rising (or falling) edge • Instructions typically require more than one cycle to execute clock cycle time clock

  18. Program Performance • time = (# of clock cycles)  (clock cycle time) • # of clock cycles = (# of instructions executed)  (average cycles per instruction) • We’ll do specific calculations later • But now, let’s move on to Chapter 2

More Related