SIKLUS INTRUKSI PADA BAHASA ASSEMBLY
Siklus Eksekusi
- Instruction Addess Calculation (IAC)
Yaitu mengkalkulasi atau menentukan alamat instruksi berikutnya yang akan dieksekusi. Biasanya melibatkan penambahan bilangan tetap ke alamat instruksi sebelumnya. Misalnya, bila panjang setiap instruksi 16 bit padahal memori memiliki panjang 8 bit, maka tambahkan 2 ke alamat sebelumnya.
- Instruction Fetch (IF)
Yaitu membaca atau pengambil instruksi dari lokasi memorinya ke CPU.
- Instruction Operation Decoding (IOD)
Yaitu menganalisa instruksi untuk menentukan jenis operasi yang akan dibentuk dan operand yang akan digunakan.
- Operand Address Calculation (OAC)
Yaitu menentukan alamat operand, hal ini dilakukan apabila melibatkan referensi operand pada memori.
- Operand Fetch (OF)
Adalah mengambil operand dari memori atau dari modul I/O.
- Data Operation (DO)
Yaitu membentuk operasi yang diperintahkan dalam instruksi
- Operand Store (OS)
Yaitu menyimpan hasil eksekusi ke dalam memori
Level Bahasa
- High Level Language (e.g. Java, C++)
A = B + C Assignment Statement
- Low Level Language -> Assembly Language (e.g. Pentium, PowerPC, ARM etc, Java Bytecode)
LOAD R2, B Assembly Language
ADD R2, C Instructions
STORE R2, A
- (Binary) Machine Code
0001101000000001 Machine Code
0011101000000010 Instructions
0010101000000000
Set Instruksi
- LOAD Register, [Memory Address]
Register = Memory[MemoryAddress]
- STORE Register, [Memory Address]
Memory[MemoryAddress] = Register
- ADDRgeister, [MemoryAddress]
Register = Register + Memory [MemoryAddress]
- SUB Rgeister, [MemoryAddress]
Register = Register - Memory [MemoryAddress]
Format Instruksi
Assembly Instruction e.g. ADD R2, C
Machine Code OPCODE REG ADDRESS
4-bit 2-bit 10-bit
Instruction Fields
- OPeration CODE (Select CPU Instruction)
LOAD 0001
STORE 0010
ADD 0011
SUB 0100
- REGister (Spesifies 1st Operand for Instruction)
Register 0 00
Register 1 01
Register 2 10
Register 3 11
- ADDRESS (Specifies 2nd Operand for Instruction)
10-bit Memory Word Address
- Instruction Addess Calculation (IAC)
Yaitu mengkalkulasi atau menentukan alamat instruksi berikutnya yang akan dieksekusi. Biasanya melibatkan penambahan bilangan tetap ke alamat instruksi sebelumnya. Misalnya, bila panjang setiap instruksi 16 bit padahal memori memiliki panjang 8 bit, maka tambahkan 2 ke alamat sebelumnya.
- Instruction Fetch (IF)
Yaitu membaca atau pengambil instruksi dari lokasi memorinya ke CPU.
- Instruction Operation Decoding (IOD)
Yaitu menganalisa instruksi untuk menentukan jenis operasi yang akan dibentuk dan operand yang akan digunakan.
- Operand Address Calculation (OAC)
Yaitu menentukan alamat operand, hal ini dilakukan apabila melibatkan referensi operand pada memori.
- Operand Fetch (OF)
Adalah mengambil operand dari memori atau dari modul I/O.
- Data Operation (DO)
Yaitu membentuk operasi yang diperintahkan dalam instruksi
- Operand Store (OS)
Yaitu menyimpan hasil eksekusi ke dalam memori
Level Bahasa
- High Level Language (e.g. Java, C++)
A = B + C Assignment Statement
- Low Level Language -> Assembly Language (e.g. Pentium, PowerPC, ARM etc, Java Bytecode)
LOAD R2, B Assembly Language
ADD R2, C Instructions
STORE R2, A
- (Binary) Machine Code
0001101000000001 Machine Code
0011101000000010 Instructions
0010101000000000
Set Instruksi
- LOAD Register, [Memory Address]
Register = Memory[MemoryAddress]
- STORE Register, [Memory Address]
Memory[MemoryAddress] = Register
- ADDRgeister, [MemoryAddress]
Register = Register + Memory [MemoryAddress]
- SUB Rgeister, [MemoryAddress]
Register = Register - Memory [MemoryAddress]
Format Instruksi
Assembly Instruction e.g. ADD R2, C
Machine Code OPCODE REG ADDRESS
4-bit 2-bit 10-bit
Instruction Fields
- OPeration CODE (Select CPU Instruction)
LOAD 0001
STORE 0010
ADD 0011
SUB 0100
- REGister (Spesifies 1st Operand for Instruction)
Register 0 00
Register 1 01
Register 2 10
Register 3 11
- ADDRESS (Specifies 2nd Operand for Instruction)
10-bit Memory Word Address
Comments
Post a Comment