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 Halaman Profil Konsumen 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...

Fitur - fitur Yang Diinginkan Untuk Platform Wlijo

Sebelum membahas tentang fitur yang inginkan untuk platform Wlijo, anda perlu tahu apa sih Wlijo itu?           Wlijo merupakan layanan belanja sayur yang mudah dengan kualitas sayur fresh, higenis, dan tahan lama. Serta menjamin kesehatan dan kesejahtraan konsumen.Untuk mendukung hal tersebut maka kami akan menjalin kerjasama ke petani, pedagang sayur keliling dan tetap, agar dapat berkembang  secara luas, karena itu kami memanfaatkan system yang  sudah berjalan untuk menjangkau konsumen dengan inovasi digital, sehingga bisa berjalan lebih efektif serta mampu membuat lapangan pekerjaan baru bagi masyarakat banyuwangi. Fitur - fitur yang diinginkan Fitur yang diinginkan kedepannya untuk platform wlijo terbagi menjadi 3 yaitu : Fitur untuk konsumen Fitur pembukuan keuangan bagi wlijo F itur stok produk F itur pembayaran COD F itur informasi produk, manfaat dan cara penyimpanan F itur grade produk Tampilan Fitur Bagi Konsumen Fitur wishlist  F...