DOC PREVIEW
Berkeley COMPSCI 61C - Lecture Notes

This preview shows page 1-2-22-23 out of 23 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 23 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 23 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 23 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 23 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 23 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

CS61C L08 Introduction to MIPS Assembly Language: Arithmetic (1)Garcia © UCBLecturer PSOE Dan Garciawww.cs.berkeley.edu/~ddgarciainst.eecs.berkeley.edu/~cs61cCS61C : Machine Structures Lecture 8 – Introduction to MIPS Assembly language: ArithmeticSushi on a printer?!Chef Homaro Cantu printsimages of fish onto ediblepaper (nothing new) but thenadds powdered soy andseaweed with a normal meal.www.nytimes.com/2005/02/03/technology/circuits/03chef.htmlCS61C L08 Introduction to MIPS Assembly Language: Arithmetic (2)Garcia © UCBReview• Several techniques for managing heap w/malloc/free: best-, first-, next-fit, slab,buddy• 2 types of memory fragmentation: internal &external; all suffer from some kind of frag.• Each technique has strengths andweaknesses, none is definitively best• Automatic memory management relievesprogrammer from managing memory.• All require help from language and compiler• Reference Count: not for circular structures• Mark and Sweep: complicated and slow, works• Copying: move active objects back and forthCS61C L08 Introduction to MIPS Assembly Language: Arithmetic (3)Garcia © UCBAssembly Language• Basic job of a CPU: execute lots ofinstructions.• Instructions are the primitiveoperations that the CPU may execute.• Different CPUs implement differentsets of instructions. The set ofinstructions a particular CPUimplements is an Instruction SetArchitecture (ISA).• Examples: Intel 80x86 (Pentium 4),IBM/Motorola PowerPC (Macintosh),MIPS, Intel IA64, ...CS61C L08 Introduction to MIPS Assembly Language: Arithmetic (4)Garcia © UCBBook: Programming From the Ground Up“A new book was just released which isbased on a new concept - teachingcomputer science through assemblylanguage (Linux x86 assembly language,to be exact). This book teaches how themachine itself operates, rather than justthe language. I've found that the keydifference between mediocre and excellentprogrammers is whether or not they know assemblylanguage. Those that do tend to understandcomputers themselves at a much deeper level.Although [almost!] unheard of today, this concept isn'treally all that new -- there used to not be much choicein years past. Apple computers came with only BASICand assembly language, and there were booksavailable on assembly language for kids. This is whythe old-timers are often viewed as 'wizards': they hadto know assembly language programming.” -- slashdot.org comment, 2004-02-05CS61C L08 Introduction to MIPS Assembly Language: Arithmetic (5)Garcia © UCBInstruction Set Architectures• Early trend was to add more and moreinstructions to new CPUs to doelaborate operations• VAX architecture had an instruction tomultiply polynomials!• RISC philosophy (Cocke IBM,Patterson, Hennessy, 1980s) –Reduced Instruction Set Computing• Keep the instruction set small and simple,makes it easier to build fast hardware.• Let software do complicated operationsby composing simpler ones.CS61C L08 Introduction to MIPS Assembly Language: Arithmetic (6)Garcia © UCBMIPS Architecture• MIPS – semiconductor companythat built one of the firstcommercial RISC architectures• We will study the MIPSarchitecture in some detail in thisclass (also used in upper divisioncourses CS 152, 162, 164)• Why MIPS instead of Intel 80x86?• MIPS is simple, elegant. Don’t wantto get bogged down in gritty details.• MIPS widely used in embedded apps,x86 little used in embedded, and moreembedded computers than PCsCS61C L08 Introduction to MIPS Assembly Language: Arithmetic (7)Garcia © UCBAssembly Variables: Registers (1/4)• Unlike HLL like C or Java, assemblycannot use variables• Why not? Keep Hardware Simple• Assembly Operands are registers• limited number of special locations builtdirectly into the hardware• operations can only be performed onthese!• Benefit: Since registers are directly inhardware, they are very fast(faster than 1 billionth of a second)CS61C L08 Introduction to MIPS Assembly Language: Arithmetic (8)Garcia © UCBAssembly Variables: Registers (2/4)• Drawback: Since registers are inhardware, there are a predeterminednumber of them• Solution: MIPS code must be verycarefully put together to efficiently useregisters• 32 registers in MIPS• Why 32? Smaller is faster• Each MIPS register is 32 bits wide• Groups of 32 bits called a word in MIPSCS61C L08 Introduction to MIPS Assembly Language: Arithmetic (9)Garcia © UCBAssembly Variables: Registers (3/4)• Registers are numbered from 0 to 31• Each register can be referred to bynumber or name• Number references:$0, $1, $2, … $30, $31CS61C L08 Introduction to MIPS Assembly Language: Arithmetic (10)Garcia © UCBAssembly Variables: Registers (4/4)• By convention, each register also hasa name to make it easier to code• For now:$16 - $23  $s0 - $s7(correspond to C variables)$8 - $15  $t0 - $t7(correspond to temporary variables)Later will explain other 16 register names• In general, use names to make yourcode more readableCS61C L08 Introduction to MIPS Assembly Language: Arithmetic (11)Garcia © UCBC, Java variables vs. registers• In C (and most High Level Languages)variables declared first and given a type• Example:int fahr, celsius;char a, b, c, d, e;• Each variable can ONLY represent avalue of the type it was declared as(cannot mix and match int and charvariables).• In Assembly Language, the registershave no type; operation determineshow register contents are treatedCS61C L08 Introduction to MIPS Assembly Language: Arithmetic (12)Garcia © UCBAdministrivia• We will strive to give grades back quickly• You will have one week to ask for regrade• After that one week, the grade will be frozen• Regrading projects/exams: possible to goup or down; we’ll regrade whole thing• Beware: no complaints if grade goes downCS61C L08 Introduction to MIPS Assembly Language: Arithmetic (13)Garcia © UCBComments in Assembly• Another way to make your code morereadable: comments!• Hash (#) is used for MIPS comments• anything from hash mark to end of lineis a comment and will be ignored• Note: Different from C.• C comments have format/* comment */so they can span many linesCS61C L08 Introduction to MIPS Assembly Language: Arithmetic (14)Garcia © UCBAssembly Instructions• In assembly language, eachstatement (called an Instruction),executes exactly one of a short list ofsimple commands• Unlike in C (and most other HighLevel Languages), each line


View Full Document

Berkeley COMPSCI 61C - Lecture Notes

Documents in this Course
SIMD II

SIMD II

8 pages

Midterm

Midterm

7 pages

Lecture 7

Lecture 7

31 pages

Caches

Caches

7 pages

Lecture 9

Lecture 9

24 pages

Lecture 1

Lecture 1

28 pages

Lecture 2

Lecture 2

25 pages

VM II

VM II

4 pages

Midterm

Midterm

10 pages

Load more
Download Lecture Notes
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Lecture Notes and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Lecture Notes 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?