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 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...

Membuat Database Menggunakan Aplikasi Excel ~ Part 4

Pengertian Normalisasi Database Normalisasi database adalah proses pengelompokan atribut data yang membentuk entitas sederhana, nonredundant, fleksibel, dan mudah beradaptasi. Sehingga dapat dipastikan bahwa database yang dibuat berkualitas baik. Tujuan Normalisasi Database Tujuan utama dari normalisasi database adalah: Menghilangkan dan mengurangi redudansi data. Memastikan dependensi data (data berada pada tabel yang tepat). Jika sebuah database belum dinormalisasi, kemungkinan terburuk yang akan merugikan sistem adalah: INSERT Anomali Situasi dimana tidak memungkinkan untuk memasukkan beberapa jenis data secara langsung di database. UPDATE Anomali Situasi dimana nilai yang diubah mengakibatkan ketidakkonsistenan database, artinya data yang diubah tidak sesuai dengan yang diinginkan. DELETE Anomali Penghapusan data tidak sesuai yang diharapkan, artinya data yang seharusnya tidak terhapus malah terhapus. Pada proses normalisasi terhadap tabel pada database dapat dilakukan dengan tiga ...

Design Sprint Alur Fitur Dari Wlijo

Design Sprint Fitur Wlijo      Wlijo adalah platform yang menghubungankan antara petani, pedagang sayur dan konsumen melalui aplikasi belanja sayur online. Saat ini wlijo masih dalam tahap pengembangan dan perbaikan. Untuk membantu proses pengembangan wlijo agar bisa selesai sesuai waktu yang ditargetkan diperlukannya sebuah metode efektif yakni metode design sprint. Apa Itu Metode Desain Sprint ?     Design sprint merupakan sebuah metode 5 langkah kerja untuk membantu perusahaan agar dapat membuat suatu produk berdasarkan design thinking dengan waktu lima hari. Design thinking sendiri merupakan proses yang mencakup proses strategis, kognitif, dan praktis. Design sprint sendiri dibuat pada tahun 2010 oleh seseorang yang berasal dari Google Venture bernama Jake Knapp. Sampai saat ini, sudah banyak perusahaan yang memakai design tersebut sampai keseluruh dunia.      Konsep kerjanya yaitu menggunakan waktu selama lima hari untuk membangun suatu ...