April 08, 2017

Beberapa Intruksi dalam Bahasa Assembly


Bahasa Assembly adalah bahasa pemrograman tingkat rendah untuk komputer ataupun untuk perangkat yang dapat di program, bahasa assembly berkaitan sangat erat dengan arsitektur processor oleh karenanya kode untuk processor arm akan berbeda dengan x64 bahkan arm32bit berbeda dengan arm64bit.

Source code bahasa assembly akan diterjemahkan oleh assembler menjadi bahasa yang dapat dipahami processor jadi tiap assembler memilik aturan sendir-sendiri. Saya menggunakan gnu assembler pada distro armbian jessie untuk sbc orange pi zero saya, saya akan menuliskan beberapa mnemonic bahasa assembly yang sering digunakan.

1. LDR
LDR adalah mnemonic yang digunakan untuk meload suatu variabel menjadi register atau untuk mengambil nilai dari suatu variabel yang telah kita load. Formatnya seperti ini

LDR target, asal

contoh:

LDR R0, =var
dan untuk mengambil nilai dari var
LDR R0,[R0]

2. MOV
MOV digunakan untuk melakukan inisiasi nilai sebuah register mov dalam bahasa lain seperti ini fungsinya int a=1, formatnya adalah seperti ini

MOV tujuan, asal
MOV R2, #43 artinya inisiasi atau memberi nilai register R2 dengan decimal 43 R2=43

3. ADD
ADD digunakan untuk melakukan operasi penjumlahan register , angka yang kita tuliskan.

ADD tujuan , asal
ADD R12, R1,R2 atau ADD R1, #1

contoh programnya adalah sebagai berikut

 .text  
 .global main  
 main:  
 push {ip, lr}  
 mov r1, #0xab  
 mov r2, #0xde  
 add r3, r1, r2  
 ldr r0, =output  
 bl printf  
 pop {ip,pc}  
 .data  
 output: .asciz "0x%08x + 0x%08x = 0x%08x\n"  

Tidak ada komentar:

mencoba menggunakan zram di raspberry pi

saya beberapa hari yang lalu mencoba mengaktifkan zram untuk membuat cadangan jika ram udah hampir penuh untuk dipindah ke zram, sejauh ini...