LEGv8 - Section 1 - Arithmetic
LEGv8 - Section 1 - Arithmetic
LEGv8 Instruction:
Register (b) Sub
//
//
// e
//
//
//
//
//
//
Stored in registers
Review
Bits, Bytes, Words, and Double Words
For our course!!!
0 ➔ 1 bit of data
1 ➔ 1 bit of data
Overtime this became a basic unit of data.
10011101 (8 bits) ➔ 1 byte of data Older system represented letters using bytes
As a results most memory hardware
X21 //
X23 //
//
Review
Review: Half-Adder with manual input
RAM – Random
access memory
Stored in memory
HDD Data In
1
2
3 . 64 bit Add
.
64 Register
Write enable
Review
Load Operation
Addr_n
Load operation:
Give bits from
Addr_x
Computer
…
Addr_3
Addr_2
Addr_1
Review
Store Operation
Addr_n
Store operation:
Store bits at
Addr_x
Computer
…
Addr_3
Addr_2
Addr_1
Review
Memory Operand, LOAD
Addr_n 𝑎 =𝑏+𝑐
64-Bit
Register (X19)
64-Bit
…
RAM
Review
Memory Operand , LOAD
Addr_n 𝑎 =𝑏+𝑐
64-Bit
Register (X19) Load Addr_3 (c) to register X19
Load Addr_2 (b) to register X20
ADD X21, X19, X20
64-Bit
…
RAM
Review
Memory Operand , LOAD
Addr_n 𝑎 =𝑏+𝑐
64-Bit
Register (X19) Load Addr_3 (c) to register X19
Load Addr_2 (b) to register X20
ADD X21, X19, X20
64-Bit
…
Destination Ram
register address
Review
Memory Operand , LOAD
Addr_n 𝑎 =𝑏+𝑐
64-Bit
Register (X19) Assuming Addr_3 is store in X22
and Addr_2 is store in X23
Assembly code (LEGv8
64-Bit instruction)
…
RAM
Review
Arrays in RAM
To load , we would have to
Addr_n
1. Arrays are stored in specify where starts in the
contiguous memory memory, the offset (which is 1)
…
0 ➔ 1 bit of data
1 ➔ 1 bit of data
Overtime this became a basic unit of data.
10011101 (8 bits) ➔ 1 byte of data Older system represented letters using bytes
As a results most memory hardware
RAM
Review
Memory Operand , LOAD
Addr_n
𝑖𝑛𝑡 𝑎 4 = 5, 6, 7, 8 ;
64-Bit
Arrays are store in contiguous
Register (X19)
memory.
…
A[1]=6 So
64-Bit 5 is stored using 64 bits
6 is stored using 64 bits
Addr_10 Register (X20)
Let start address be Addr_2
Let Addr_2 be stored in register X22
What is the LEGv8 instruction to
A[0]=5 load a[0] into register X19?
Addr_2
Addr_1
RAM
Review
Memory Operand , LOAD
Addr_n
𝑖𝑛𝑡 4 = 5, 6, 7, 8 ;
64-Bit
Let start address be Addr_2
Register (X9)
Let Addr_2 be stored in register X22
…
RAM
3 X 8 = 24
Review
Memory Operand Example
• C code:
LDUR X9,[X22,#64]
ADD X9,X21,X9
STUR X9,[X22,#96]
Constant or Immediate Operands
• Using a constant in operation. x=x+4
• More than half of arithmetic
instructions have constant Let X be stored in register X22
(SPEC CPU2006). If X20 is some base register,
and the number 4 is stored in
the memory at location
AddrConst4
Constant or Immediate Operands
• Using a constant in operation. x = x +4
• More than half of arithmetic
instructions have constant Let X be stored in register X22
(SPEC CPU). If X20 is some base register,
and the number 4 is stored in
the memory at location
AddrConst4