Presentation is loading. Please wait.

Presentation is loading. Please wait.

Chapter 8 – Machine Instructions

Similar presentations


Presentation on theme: "Chapter 8 – Machine Instructions"— Presentation transcript:

1 Chapter 8 – Machine Instructions
These are lecture notes to accompany the book SPARC Architecture, Assembly Language Programming, and C, by Richard P. Paul, 2nd edition, 2000. By Michael Weeks Richard P. Paul, SPARC Architecture, Assembly Language Programming, and C

2 Decoding Instructions
SPARC Instructions are 32 bits long Bits <31:30> specify the “op” field These first 2 bits indicate how the other bits should be handled. op Richard P. Paul, SPARC Architecture, Assembly Language Programming, and C

3 Decoding Instructions
Instructions are classified according to “op” op op Instruction class 00 Branch instructions 01 Call instructions 10 Format Three instructions 11 Format Three instructions Richard P. Paul, SPARC Architecture, Assembly Language Programming, and C

4 Format 1 Instructions Call instruction
The displacement must be word aligned Address is calculated by right shifting displacement 2 positions 01 30 bit displacement Richard P. Paul, SPARC Architecture, Assembly Language Programming, and C

5 Format 2 Instructions branch sethi 0 0 a cond op2 22 bit immediate
sethi rd bit immediate Richard P. Paul, SPARC Architecture, Assembly Language Programming, and C

6 Branch Instructions The branch is (or is not) taken based on the “cond” (condition) field. op2 = 010 means integer condition code cond branch type 0000 never 0001 if equal to zero 0010 if less than or equal to zero 0011 if less than zero 0100 if less or equal, unsigned 0101 if carry set 0110 if negative 0111 if overflow is set cond branch type 1000 always 1001 if not equal to zero 1010 if greater than zero 1011 if greater than or equal to zero 1100 if greater, unsigned 1101 if carry is clear 1110 if positive 1111 if overflow is clear Richard P. Paul, SPARC Architecture, Assembly Language Programming, and C

7 Format 3 Instructions 2 source registers Immediate constant
1 x rd op rs rs2 Immediate constant 1 x rd op rs signed 13-bit # Richard P. Paul, SPARC Architecture, Assembly Language Programming, and C

8 Format Three Instructions
Not all possible bits patterns are used op = 10 op3 Instruction add and or xor sub andn orn xnor addx op3 Instruction jumpl rett ticc iflush save restore <unused> <unused> See page 235 for a complete list Richard P. Paul, SPARC Architecture, Assembly Language Programming, and C

9 Format Three Instructions
Not all possible bits patterns are used op = 11 op3 Instruction ld ldub lduh ldd st stb sth std <unused> See page 236 for a complete list Richard P. Paul, SPARC Architecture, Assembly Language Programming, and C

10 Example Decode the following commands: 0x9de3bfa0 0xd007bfec
0x81c7e008 0x81e80000 save %sp, -96, %sp ld [%fp-20], %o0 mov 4, %o1 add %o0, %o1, %o0 st %o0, [%fp-20] ret restore Richard P. Paul, SPARC Architecture, Assembly Language Programming, and C


Download ppt "Chapter 8 – Machine Instructions"

Similar presentations


Ads by Google