Unformatted text preview:

inst eecs berkeley edu cs61c CS61C Machine Structures Lecture 17 Introduction to MIPS Instruction Representation III 2004 10 08 Lecturer PSOE Dan Garcia www cs berkeley edu ddgarcia World Cyber Games 5 day competition held in SF to determine the top video game players in the world Halo Warcraft III FIFA Soccer Counter Strike etc www worldcybergames com CS 61C L17 Introduction to MIPS Instruction Representation III 1 Garcia Fall 2004 UCB Outline Disassembly Pseudoinstructions and True Assembly Language TAL v MIPS Assembly Language MAL CS 61C L17 Introduction to MIPS Instruction Representation III 2 Garcia Fall 2004 UCB Decoding Machine Language How do we convert 1s and 0s to C code Machine language C For each 32 bits Look at opcode 0 means R Format 2 or 3 mean J Format otherwise I Format Use instruction type to determine which fields exist Write out MIPS assembly code converting each field to name register number name or decimal hex number Logically convert this MIPS code into valid C code Always possible Unique CS 61C L17 Introduction to MIPS Instruction Representation III 3 Garcia Fall 2004 UCB Decoding Example 1 7 Here are six machine language instructions in hexadecimal 00001025hex 0005402Ahex 11000003hex 00441020hex 20A5FFFFhex 08100001hex Let the first instruction be at address 4 194 304ten 0x00400000hex Next step convert hex to binary CS 61C L17 Introduction to MIPS Instruction Representation III 4 Garcia Fall 2004 UCB Decoding Example 2 7 The six machine language instructions in binary 00000000000000000001000000100101 00000000000001010100000000101010 00010001000000000000000000000011 00000000010001000001000000100000 00100000101001011111111111111111 00001000000100000000000000000001 Next step identify opcode and format R 0 I 1 4 31 J 2 or 3 rs rs rt rd shamt funct rt immediate target address CS 61C L17 Introduction to MIPS Instruction Representation III 5 Garcia Fall 2004 UCB Decoding Example 3 7 Select the opcode first 6 bits to determine the format Format R R I R I J 00000000000000000001000000100101 00000000000001010100000000101010 00010001000000000000000000000011 00000000010001000001000000100000 00100000101001011111111111111111 00001000000100000000000000000001 Look at opcode 0 means R Format 2 or 3 mean J Format otherwise I Format Next step separation of fields CS 61C L17 Introduction to MIPS Instruction Representation III 6 Garcia Fall 2004 UCB Decoding Example 4 7 Fields separated based on format opcode Format R R I R I J 0 0 4 0 8 2 0 0 8 2 5 0 5 0 4 5 2 8 2 0 0 3 0 1 37 42 32 1 048 577 Next step translate disassemble to MIPS assembly instructions CS 61C L17 Introduction to MIPS Instruction Representation III 7 Garcia Fall 2004 UCB Decoding Example 5 7 MIPS Assembly Part 1 Address Assembly instructions 0x00400000 0x00400004 0x00400008 0x0040000c 0x00400010 0x00400014 or slt beq add addi j 2 0 0 8 0 5 8 0 3 2 2 4 5 5 1 0x100001 Better solution translate to more meaningful MIPS instructions fix the branch jump and add labels registers CS 61C L17 Introduction to MIPS Instruction Representation III 8 Garcia Fall 2004 UCB Decoding Example 6 7 MIPS Assembly Part 2 Loop Exit or slt beq add addi j v0 0 0 t0 0 a1 t0 0 Exit v0 v0 a0 a1 a1 1 Loop Next step translate to C code be creative CS 61C L17 Introduction to MIPS Instruction Representation III 9 Garcia Fall 2004 UCB Decoding Example 7 7 Before Hex After C code Mapping below 00001025hex 0005402Ahex 11000003hex 00441020hex 20A5FFFFhex 08100001hex or Loop slt beq add addi j Exit v0 product a0 multiplicand a1 multiplier product 0 while multiplier 0 product multiplicand multiplier 1 v0 0 0 t0 0 a1 t0 0 Exit v0 v0 a0 a1 a1 1 Loop Demonstrated Big 61C Idea Instructions are just numbers code is treated like data CS 61C L17 Introduction to MIPS Instruction Representation III 10 Garcia Fall 2004 UCB Kilo Mega Giga Tera Peta Exa Zetta Yotta physics nist gov cuu Units binary html Common use prefixes all SI except K k in SI Name Abbr Factor SI size Kilo K 210 1 024 103 1 000 Mega M 220 1 048 576 106 1 000 000 Giga G 230 1 073 741 824 109 1 000 000 000 Tera T 240 1 099 511 627 776 1012 1 000 000 000 000 Peta P 250 1 125 899 906 842 624 1015 1 000 000 000 000 000 Exa E 260 1 152 921 504 606 846 976 1018 1 000 000 000 000 000 000 Zetta Z 270 1 180 591 620 717 411 303 424 1021 1 000 000 000 000 000 000 000 Yotta Y 280 1 208 925 819 614 629 174 706 176 1024 1 000 000 000 000 000 000 000 000 Confusing Common usage of kilobyte means 1024 bytes but the correct SI value is 1000 bytes Hard Disk manufacturers Telecommunications are the only computing groups that use SI factors so what is advertised as a 30 GB drive will actually only hold about 28 x 230 bytes and a 1 Mbit s connection transfers 106 bps CS 61C L17 Introduction to MIPS Instruction Representation III 12 Garcia Fall 2004 UCB kibi mebi gibi tebi pebi exbi zebi yobi en wikipedia org wiki Binary prefix New IEC Standard Prefixes only to exbi officially Name Abbr Factor kibi Ki 210 1 024 mebi Mi 220 1 048 576 gibi Gi 230 1 073 741 824 tebi Ti 240 1 099 511 627 776 pebi Pi 250 1 125 899 906 842 624 exbi Ei 260 1 152 921 504 606 846 976 zebi Zi 270 1 180 591 620 717 411 303 424 yobi Yi 280 1 208 925 819 614 629 174 706 176 As of this writing this proposal has yet to gain widespread use International Electrotechnical Commission IEC in 1999 introduced these to specify binary quantities Names come from shortened versions of the original SI prefixes same pronunciation and bi is short for binary but pronounced bee Now SI prefixes only have their base 10 meaning and never have a base 2 meaning CS 61C L17 Introduction to MIPS Instruction Representation III 13 Garcia Fall 2004 UCB Review from before lui So how does lui help us Example addi becomes lui ori add t0 t0 0xABABCDCD at 0xABAB at at 0xCDCD t0 t0 at Now each I format instruction has only a 16bit immediate Wouldn t it be nice if the assembler would this for us automatically If number too big then just automatically replace addi with lui ori add CS 61C L17 Introduction to MIPS Instruction Representation III 14 Garcia Fall 2004 UCB True Assembly Language 1 3 Pseudoinstruction A MIPS instruction that doesn t turn directly into a machine language instruction but into other MIPS instrucitons What happens with pseudoinstructions They re broken up by the assembler into several real MIPS instructions But what is a real MIPS instruction Answer in a few slides First some examples CS 61C L17 Introduction to MIPS Instruction Representation III 15 Garcia


View Full Document

Berkeley COMPSCI 61C - Introduction to MIPS Instruction Representation III

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
Loading Unlocking...
Login

Join to view Introduction to MIPS Instruction Representation III 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 Introduction to MIPS Instruction Representation III 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?