Presentation is loading. Please wait.

Presentation is loading. Please wait.

CS/COE0447 Computer Organization & Assembly Language

Similar presentations


Presentation on theme: "CS/COE0447 Computer Organization & Assembly Language"— Presentation transcript:

1 CS/COE0447 Computer Organization & Assembly Language
Pre-Chapter 2

2 “C Program” Down to “Numbers”
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 compiler assembler

3 “Numbers” in Memory

4 Stored Program Concept
program fetch data load/store program A program A disk I/O program counter 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 programs 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, are decoded and 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 was stored. Before that, people envisioned the hardware running a fixed program, and data being stored in memory.

7

8

9

10

11

12 Addresses and Contents shown in Hex

13 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., 0x in programs rather than

14 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:

15 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

16 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) = = 26ten Choice for machine implementation! 1 = on, 0 = off

17 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!

18 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)

19 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 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

20 Before moving on to chapter 2….
We’ll mention some concepts in program performance, so you have ideas in mind The text covers this in the Chapter 1 questions and in Chapter 4. We’ll wait until Chapter 4 to cover this more fully.

21 Program Performance Program performance is measured in terms of time!
Program execution time has to deals with 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)

22 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 Function block (made of circuits) clock cycle time clock

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


Download ppt "CS/COE0447 Computer Organization & Assembly Language"

Similar presentations


Ads by Google