Langsung ke konten utama

Cara Kerja Komputer dan Assembler Menggunanakan NASM

Mempelahjari Bagaimana Cara Kerja Komputer dan Belajar Assembler Menggunanakan NASM

    Komputer merupakan perangkat listrik dimana kosakata bahasanya hanya ON yang dilambangkan angka 1 dan OFF yang dilambangkan angka 0. Dimana angka biner 0 artinya arus listrik diputus, sedangkan 1 artinya arus listrik tersambung.

    Jaman dahulu, pada saat komputer generasi awal dibuat, teknologinya yang ada masih menggunakan tabung vakum. Sehingga 1 unit komputer merk Electronic Numerical Integrator and Computer (ENIAC), dibuat dari 18.000 tabung vakum, 70.000 resistor dan 5 juta titik solder. Komputer ENIAC ini setidaknya butuh ruang 500 meter persegi atau hampir seluas lapangan sepak bola. berbeda dengan saat ini yang ukurannya sudah sangat kecil.

Bagaimana Cara Kerja Komputer?

    Komputer tidak menyimpan karakter sebagai karakternya sendiri, juga tidak ada gambar dan huruf yang tersimpan di harddisk komputer kita. Sebaliknya, setiap karakter dikodekan sebagai rangkaian bit biner : 1 dan 0

    Misalnya kode huruf "A" adalah 01000001. Tapi bagaimana komputer mengetahui bahwa 01000001 berarti huruf "A"? Pengkodean pada komputer ini berawal dari kode ASCII (American Standar Code for Information Interchange). Cara kerjanya memproses karakter sebagai kelompok digit biner. Jadi sebenarnya para perangkat komputer itu terdiri dari serangkaian sirkuit saklar listrik, dimana masing-masing saklar sirkuit tadi dikondisikan mana yang ON dan mana yang OFF. Kombinasi dari ON dan OFF itulah yang akhirnya di-standarisasi menjadi karakter tertentu. Setiap 8 kumpulan kombinasi sirkuit saklar, melambangkan 1 karakter tertentu.

Bagaimana Cara Kerja Komputer Menampilkan (Output) "Hello World"?

    Masih sulit membayangkan? oke ini saya kasih analogi sederhana, saya umpamakan serangkaian instruksi tadi seakan-akan seperti mengalirkan air dari tandon ke bak kamar mandi

Bagaimana Cara Kita Merancang Serangkaian Intruksi "Hello World" Tadi?

Rancangan Tadi Bisa Ditulis Dalam Bentuk Flowchart atau Pseudocode

Pemrograman "aliran_air" dengan Assembly

    Dari Pseudo code ini, kalau dituliskan ke bahasa pemrograman assembler, dan program tersebut dieksekusi, maka hasil programnya terlihat pada gambar berikut ini. 

Bahasa Assembly versus Kode Mesin

    Bahasa assembler/assembly merupakan bahasa mnemonic dari instruksi mesin komputer. Jadi bahasa assembler itu susunan perintahnya bisa dikatakan sama persis dengan instruksi pada mesin komputer. Untuk membuktikan struktur instruksi pada mesin komputer dengan struktur bahasa assembler, bisa dilihat pada gambar berikut ini 

    Sampai disini kan baru proses OUTPUT ya. Bagaimana dengan INPUT? Jadi misalkan kita mengentikkan sesuai dari keyboard? Analoginya seperti gambar yang diatas ini.

    Ada yang menarik diisini, antara input dengan output itu register yang digunakan hanya 1 (satu) ya. Jadi register EAX, EBX, ECX dan EDX tadi ya cuman satu saja, tapi gimana caranya hanya dengan satu register, tapi bias digunakan untuk INPUT sekaligus OUTPUT. Berarti register tadi kita operasikan secara bergantian. Jadi kalau dianalogikan dengan aliran air tadi, gimana caranya air dari sumber air sampai ke kamar mandi itu hanya menggunakan 2 pipa, 1 kran, 1 bak kontrol dan 1 tandon.

Kalau INPUT sekaligus OUTPUT bagaimana? Ini analoginya.
Seandainya alur input dan output tadi diprogramkan dengan assembler bagaimana?
Kalau program itu di terjermahkan ke kode mesin (compile) dan dijalankan (run), maka hasilnya seperti ini:

    Jadi yang dimaksud bahasa pemrograman itu adalah serangkaian instruksi untuk mengoperasikan perangkat komputer khususnya REGISTER dan INTERRUPT. Jenis instruksinya apa?

  1. Instruksi INPUT (membaca data dari keyboard, mouse, transmisi input dari jaringan, dan perangkat input lain) dan menyimpan data tadi ke RAM (Random Access Memory),
  2. Instruksi PROSES (operasi aritmatika, percabangan, perulangan, dan proses-proses lainnya) dan
  3. Instruksi OUTPUT (menampilkan data ke monitor, printer, transmisi output jaringan dan perangkat output lainnya)

    Dimana serangkaian instruksi tersebut bisa menggunakan standar Bahasa mesin (low level language) atau bahasa tingkat menengah (middle level language) atau bahasa tingkat tinggi (hight level language)

  • Low Level Language : Assembler/assembly
  • Middle Level Language : C/C++
  • Hight Level Language : Java, Python, Rust, .Net dsb


Komentar

Postingan populer dari blog ini

Membuat Halaman CheckOut Dengan NextJS & Bulma

Apa itu Next.js?  Next.js merupakan sebuah React framework yang dibentuk buat mengatasi kasus client-side rendering yang dimiliki React. Sebuah halaman website yang dibentuk memakai React ‘terasa ringan’ lantaran tampilan website sangat interaktif.  Selain itu, ketika data berubah, React menggunakan efisien akan mengupdate bagian menurut halaman website yang memang perlu diupdate tanpa perlu reload satu halaman penuh.  Untuk menerima itu seluruh, client wajib load seluruh file JavaScript sebelum konten halaman ditampilkan. apabila file JS relatif akbar maka ketika yang diperlukan buat load pertama kali pula sebagai lebih lama.  Masalah lain menurut client-side rendering merupakan SEO, terdapat kemungkinan web crawler berusaha mengindex halaman yang belum terselesaikan dirender sepenuhnya (lantaran ketika load yang lama). Dan menduga web tadi blank.  Kedua kasus diatas bisa diselesaikan menggunakan teknik pre-rendering. Yaitu halaman HTML dan file JavaScript pada...

Membuat Database dan Tabel Di MySql Workbench ~ Part 1

MySQL adalah salah satu  relational database management system  atau RDBMS yang populer di kalangan  programmer  merupakan salah satu  database  yang sudah berumur. Diciptakan oleh  Michael Widenius , pada akhirnya MySQL diakusisi oleh  Oracle  dan kini memiliki saudara yang bernama MariaDB. Meski begitu, MySQL masih banyak digunakan  developer  aplikasi selain itu kampus pun masih banyak mengajarkan  database  dengan menggunakan MySQL. Sudah saatnya memang kampus menggunakan MariaDB bila  aware  dengan  open source . Walaupun ada sedikit cerita diantara mereka berdua. Kita masih dapat menggunakan MySQL dan akan mudah berpindah ke MariaDB bila kita sudah siap. Sebagai contoh sekarang kita akan membuat sebuah  database  bioskop yang menangani aplikasi pembelian tiket film. Membuat Database Disini kamu tidak akan mempelajari bagaimana membuat aplikasi dengan bahasa pemrograman tertentu. Kamu hanya ak...

Konsep Scale Up Platform Wlijo

     Menjadi orang awam dalam bidang pemrograman bukanlah hal yang memalukan jika ada keinginan belajar dan berkembang. Ada banyak langkah awal untuk memulai belajar pemrograman mulai dari belajar otodidak, kuliah, kursus, atau belajar online di website yang berbayar ataupun gratis.       Tuntutan industri yang serba online membuat kita untuk berlomba lomba belajar bahasa pemrograman sehingga banyak yang terjun langsung ke dalam jurang coding dengan memimpikan indahnya mempunyai startup besar seperti Tokopedia dan GoJek yang levelnya unicorn. Bahkan dengan mudahnya dapat memimpikan seorang investor yang siap bergabung dengan startup yang kita buat.       Tapi pernahkah kalian berfikir mulai dari mana harus belajar? Oke kita akan bahas dalam artikel ini, ada beberapa konsep pembelajaran dasar pengembangan yang digunakan platform wlijo untuk memulai belajar pemrograman. Konsep Algoritma Pemrograman      Untuk mulai terj...