Pemrograman Assembly

  1. Konsep Dasar

Bahasa Assembly adalah bahasa komputer yang kedudukannya diantara bahasa mesin dan bahasa level tinggi.

Perbedaan antara Bahasa C vs Bahasa Assembly

 

Bahasa C Bahasa Assembly
Level Bahasa level tinggi Bahasa Mesin
Operasi Menggunakan kata-kata dan pernyataan yang mudah dimengerti manusia Menggunakan kode Mnemonik untuk menggantikan kode biner

 

Bahasa Mesin merupakan kumpulan kode biner yang merupakan instruksi yang bisa dijalankan oleh komputer.

  1. Konstruksi Program Assembly

Program Sumber Assembly ( Assembly Source Program )

  • Program sumber assembly merupakan kumpulan baris perintah yang ditulis dengan program text-editor misalnya, program COM dalam DOS.
  • Kumpulan baris perintah biasanya disimpan dengan ekstensi *.ASM
  • Program sumber assembly menganut prinsip 1 baris untuk 1 perintah, tidak mungkin dipecah lebih dari satu baris.
  • Satu baris perintah terdiri dari 4 bagian: Label, OpCode, Operand, dan Comment.

 

  1. Label
  • Digunakan untuk memberi nama pada sebuah baris-perintah.
  • Label diawali dengan huruf, Panjang label < 16 huruf
  • Tidak boleh ada label yang kembar
  • Misal: JMP PROSES
  1. OpCode
  • Singkatan dari Operation-code(kode-operasi)
  • Merupakan bagian perintah yang harus dikerjakan
  • Ada dua macam OpCode:
    • Kode-operasi untuk mengatur kerja mikroprosesor/ mikrokontroler
    • Kode operasi untuk mengatur kerja program assembler (assembler directive)
  1. Operand
  • Merupakan pelengkap bagian OpCode.
  • Tidak semua OpCode memerlukan Operand
  • Dalam satu OpCode bisa lebih dari satu Operand
  • Bentuk Operand sangat bervariasi, bisa berupa kode untuk menyatakan Register dalam prosesor / alamat memori
  1. Mnemonic
  • Kode-operasi ditulis dengan menggunakan kode Mnemonic.
  • Mnemonic merupakan bentuk singkatan yang relatif mudah diingat, misal: MOV, ADD
  • Kode-operasi Mnemonic tidak dikenal oleh Mikroprosesor/ Mikrokontroler, perlu diterjemahkan menjadi kode-operasi biner agar bisa digunakan untuk mengendalikan prosesor.
  • Tugas penerjemahan tersebut dilakukan oleh program yang dinamakan Program Assembler.

 

 

  1. Comment
  • Bagian komentar merupakan catatan penulis program
  • Diawali dengan tanda titik-koma ( ; ).
  • Assembler Directives
  1. ORG
  • Singkatan dari ORIGIN.
  • Untuk menyatakan nomer memori yang digunakan
  • Misal ORG 100h, maka memori yang dipakai adalah 100h
  1. DB
  • Singkatan dari DEFINE BYTE.
  • Untuk memberi nilai tertentu pada memori program.
  • Nilai tersebut merupakan nilai 1 byte, bisa berupa angka ataupun kode ASCII.
  • DB merupakan Assembler Directive yang dipakai untuk membentuk Teks maupun label.
  1. EQU
  • Singkatan dari EQUATE.
  • Untuk menentukan nilai dari sebuah simbol.
  • Misal Angka 88 EQU 88, berarti nilai 88 diberikan pada simbol Angka 88
  1. DW
  • Singkatan dari DEFINE WORD
  • Untuk memberi nilai 2 byte ke memori program (ROM) pada baris bersangkutan.
  • Biasa digunakan untuk membentuk suatu tabel yang isinya adalah nomer memori program (ROM).
  1. DS
  • Singkatan dari DEFINE STORAGE.
  • Digunakan untuk membentuk variabel.
  • Sebagai variabel, memori yang digunakan adalah emori data (RAM) bukan memori program (ROM).
  • DS hanya menyediakan tempat di memori, tidak mengisi nilai pada memori bersangkutan.

 

Cara Kerja Assembly Program

  1. Tulis Program = Mnemonic
  2. Load Object Code pada Memori
  3. Pilih alamat awal program Mnemonic
  4. Assemble untuk memperoleh Object Code
  5. Run Program
  6. Assembly Listing
  • Hasil utama pengolahan Program Assembler adalah Program Object (Object Code)
  • Berisikan kode yang siap dikirimkan ke memori program mikroprosesor/mikrokontroler
  • Object Code dihasilkan setelah listing program di assembler
  • Listing program = Object Code + Source Code
  • Program sumber Assembly (Source Code) merupakan karya penulis.
  1. Program Object
  • Selain Assembly Listing, Hasil kerja program
  • Assembler lainnya adalah program object.
  • Digunakan untuk mengendalikan mikroprosesor/mikrokontroler
  • Dua macam bentuk file program object
    • file yang berisikan kode biner murni (binary object file / *.BIN)
    • file biner yang sudah diolah menjadi file teks (Hexadecimal object file / *.BIN)

Data Transfer

Data Transfer digunakan untuk pergerakan data dari satu lokasi ke lokasi lain seperti memori untuk microprosesor, mikroprosesor ke port atau memori sebaliknya. Data transfer berfungsi menyediakan kemampuan untuk memindahkan data baik antara register internal atau antara register eksternal dan lokasi penyimpanan di memori fungsi transfer data.

Macam 2 type dari Data Transfer :

  1. MOV Instruction ( Memindahkan byte atau kata )
  2. XCGH Instruction ( Exchange byte or word )
  3. XLAT Instruction ( Translate byte )
  4. LEA Instruction ( Load Effective Address )
  5. LDS Instruction ( Load Data Segment )
  6. LES Instruction ( Load Extra Segment )
  1. MOV Instruction

Mov adalah instrusksi yang digunakan untuk mentransfer byte atau kata dari sumber operan ke operan tujuan.

Catatan : MOV Instruction tidak bisa mentransfer data langsung antara memori eksternal

Contoh Penulisan : MOV D, S

Operasi : (S) à (D)

  • STORE : Memindahkan word dari prosesor ke memori.
  • LOAD : Memindahkan word dari memori ke prosesor.
  • EXCHANGE : Menukar isi sumber ke tujuan.
  • CLEAR /RESET : Memindahkan word 0 ke tujuan.
  • SET : Memindahkan word 1 ke tujuan.
  • PUSH : Memindahkan word dari sumber ke bagian paling atas stack.
  • POP : Memanggil word dari bagian palinng atas sumber.
  1. XCHG Instruction

XCHG adalah instuksi yang digunakan untuk menukar data antara dua register tujuan umum atau antara tujuan umum register dan tempat penyimpanan memori.

Contoh Penulisan : XCHG OPERAND1, OPERAND2

Operasi : OPERAND1à OPERAND2

  1. XLAT Instruction

XLAT ( Penerjemah ) adalah instruksi yang digunakan untuk menyederhanakan pelaksanaan dari operasi pencarian tabel. Eksekusi dari XLAT menggantikan isi dari register AL dengan isi yang diakses oleh tempat pencarian tabel.

Contoh Penulisan : XLAT

Operasi : ((DS) * 10H + (BX) + (AL)) à (AL)

  1. LEA, LDS, LES Instruction

Intruksi yang menyediakan kemampuan uuntuk manipulasi alamat memori dengan memuat setidaknya 16-bit yang mengimbangi alamat dalam tujuan umum register atau sebuah register.

Contoh Penulisan : LEA reg16 , mem ;  (reg16) ß Offset address of mem

Sistem Memori

Konsep dasar
Memori merupakan pusat operasi dari sistem memori.

  • Internal → berada diluar chip prosesor. Bisa diakses langsung. Ex: RAM (penyimpanan sementara) dan ROM (penyimpanan permanen. Bisa membaca sistem komputer)
  • External → penyimpanan dalam komputer. Membantu RAM dan ROM. Ex: Disket, hardisk, flashdisk.

Manajemen memori merupakan pengelolaan memori yang penting pada sistem komputer.

Memiliki nama lain komputer storage:

  • Level physical
  • Level primer
  • Level sekunder
  • Operasi sel memori → elemen dasar sebuah memori.

Sifat-sifat memori:

  • 2 keadaan stabil/semistabil (mempresentasikan bil biner)
  • Kemampuan ditulis (hanya sekali)
  • Kemampuan dibaca

Proses:      select → write → data in

select → read → sense

 

  • Hirarki memori → pedoman ahli untuk menyetarakan kapasitas.
  • Waktu akses : ↑fast ↓slow
  • Kapasitas : ↑besar ↓kecil
  • Jarak : ↑jauh ↓dekat
  • Harga : ↑tambah ↓kurang

Hubungan:

  • ↓waktu akses : ↑harga perbit (semakin lambat waktu akses, semakin tinggi harga per bit)
  • ↑kapasitas : ↓harga perbit (semakin besar kapasitas, semakin rendah harga per bit)
  • ↑kapasitas : ↑waktu akses (semakin besar kapasitas, semakin cepat waktu akses)

Semakin bawah hirarki:

  • ↓harga per bit (semakin rendah harga per bit)
  • ↑kapasitas (semakin besar kapasitas)
  • ↑waktu akses (semakin cepat waktu akses)
  • ↓frekuensi akses memori (semakin lambat akses memori)

Urutan hirarki dari yang terkecil sampai yang terbesar.

1) Regiter micro prosessor

2) Cache

3) Memori utama

4) Cache magnetik

5) Cakra magnetik

6) Disk magnetik

7) Cakra momtik

8) CD RW

9) DVD RW

10) Bluray disk cache

Tujuan hirarki memori:

1) Meningkatkan utilitas CPU

2) Data instruksi dapat diakses dengan cepat oleh CPU

3) Efisiensi dalam memori terbatas

4) Transfer memori utama

  • Satuan memori → ukuran data. Ex: bit menunjukkan ukuran biner. Satuan terkecil dan berupa informasi. Yang terbesar adalah overbit.
  • 1 Byte      : 8 bit
  • 1 KB : 1024 Byte
  • 1 MB             : 1024 KB
  • 1 GB : 109 Byte
  • 1 TB : 1000 GB : 1012 Byte
    Hubungan antar memori.

Berukuran kecil, cepat, hampir sama dengan RAM.

Blok yang berisi word kembali ke CPU. Cache memori lebih cepat diakses.

  • Metode akses.
  • Sequential Access.

Record → unit-unit data yang diorganisasi dari memori. Akses harus dibuat dalam bentuk urutan linier yang spesifik. Pita magnetik merupakan memori yang menggunakan metode sequential access. Terdapat shared read/write mechanism.

  • Direct Access.

Setiap blok dan record memiliki alamat unik berdasarkan lokasi fisiknya. Akses dilakukan langsung pada alamat memori.

  • Random Access.

Setiap lokasi memori dipilih secara random dan diakses serta dialamati secara langsung. Ex: memori utama.

  • Associative Access.

Jenis random akses yang memungkinkan pembandingan lokasi bit yang diinginkan untuk pencocokan. Data dicari berdasarkan isinya bukan alamatnya dalam memori. Ex: cache memori.

  • Tipe fisik.

Ada dua tipe fisik memori yaitu semi konduktor dan magnetik.

  • Karakteristik fisik.
  • Media penyimpanan volatile dan non-volatile.

Volatile memory, informasi akan hilang apabila daya listriknya dimatikan. Sedangkan Non-volatile memory tidak hilang walau daya listriknya hilang.

  • Media erasable dan non erasable.

Ada jenis memori semikonduktor yang tidak bisa dihapus kecuali dengan menghancurkan unit storage-nya, memori ini dikenal dengan ROM (Read Only Memory.

Memori berkapasiti terbatas, memori ini berkelajuan tinggi dan lebih mahal dibandingkan memori utama. Lebih banyak cache memory adalah lebih baik, tetapi cache pada CPU dan hard drive tidak dapat diupgrade menjadi lebih banyak. Selain itu cache memory menyimpan data untuk akses cepat. Kelajuan cache memory juga menjadi unsur yang penting.

  • SRAM (Static Ranfom Access Memory)

Berdasarkan jenis transistor :

  1. Bipolar (sekarang tidak banyak digunakan: mengkonsumsi banyak listrik namun sangat cepat)
  2. Complementary metal–oxide–semiconductor (CMOS) (jenis paling umum)

Berdasarkan fungsi :

  1. Asynchronous (independent of clock frequency, data-in and data out are controlled by address transistion).
  2. Synchronous (all timings are initiated by the clock rise/fall time. Address, data-in and other control signals are associated with the clock signals)
  • SDRAM (Synchronous Dynamic RAM)
  • SDRAM dapat dibawa ke kecepatan 100 MHz pada sistem yang sama. Beberapa macam SDRAM:
    • PC100 RAM
      • SDRAM yang dikembangkan untuk sistem bus 100 MHz
    • PC133 RAM
      • SDRAM yang dikembangkan untuk sistem bus 133 MHz
    • ECC RAM
      SDRAM yang dikembangkan untuk kebutuhan server yang memiliki kinerja yang berat.
  • BIOS (Basic Input Output System)

BIOS merupakan sistem operasi dasar pada komputer. Didalamnya berisi setting yang berhubungan dengan hardware komputer seperti processor, memory, harddisk, VGA Card, Sound Card, keyboard, dll.

Skip to toolbar