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:
Posting Komentar