Majelis - Pendahuluan

Apa Bahasa Assembly?

Setiap komputer pribadi memiliki mikroprosesor yang mengelola aktivitas aritmatika, logika, dan kontrol komputer.

Setiap keluarga prosesor memiliki seperangkat instruksi untuk menangani berbagai operasi seperti mendapatkan input dari keyboard, menampilkan informasi di layar dan melakukan berbagai pekerjaan lainnya. Serangkaian instruksi ini disebut 'instruksi bahasa mesin'.

Prosesor hanya memahami instruksi bahasa mesin, yang terdiri dari string 1 dan 0. Namun, bahasa mesin terlalu kabur dan rumit untuk digunakan dalam pengembangan perangkat lunak. Jadi, bahasa rakitan tingkat rendah dirancang untuk keluarga prosesor tertentu yang mewakili berbagai instruksi dalam kode simbolik dan bentuk yang lebih mudah dipahami.

Keuntungan Bahasa Perakitan

Memiliki pemahaman tentang bahasa assembly membuat seseorang menyadari -

  • Bagaimana program berinteraksi dengan OS, prosesor, dan BIOS;
  • Bagaimana data direpresentasikan dalam memori dan perangkat eksternal lainnya;
  • Bagaimana prosesor mengakses dan menjalankan instruksi;
  • Bagaimana instruksi mengakses dan memproses data;
  • Bagaimana program mengakses perangkat eksternal.

Keuntungan lain menggunakan bahasa assembly adalah -

  • Ini membutuhkan lebih sedikit memori dan waktu eksekusi;

  • Ini memungkinkan pekerjaan kompleks khusus perangkat keras dengan cara yang lebih mudah;

  • Sangat cocok untuk pekerjaan yang membutuhkan waktu kritis;

  • Ini paling sesuai untuk menulis rutinitas layanan interupsi dan program penghuni memori lainnya.

Fitur Dasar Perangkat Keras PC

Perangkat keras internal utama PC terdiri dari prosesor, memori, dan register. Register adalah komponen prosesor yang menyimpan data dan alamat. Untuk menjalankan program, sistem menyalinnya dari perangkat eksternal ke memori internal. Prosesor menjalankan instruksi program.

Unit dasar penyimpanan komputer adalah sedikit; bisa ON (1) atau OFF (0) dan sekelompok 8 bit terkait membuat byte di sebagian besar komputer modern.

Jadi, bit paritas digunakan untuk membuat jumlah bit dalam satu byte menjadi ganjil. Jika paritasnya genap, sistem mengasumsikan bahwa telah terjadi kesalahan paritas (meskipun jarang), yang mungkin disebabkan karena kesalahan perangkat keras atau gangguan listrik.

Prosesor mendukung ukuran data berikut -

  • Word: item data 2-byte
  • Doubleword: item data 4-byte (32 bit)
  • Quadword: item data 8-byte (64 bit)
  • Paragraf: area 16-byte (128 bit)
  • Kilobyte: 1024 byte
  • Megabyte: 1.048.576 byte

Sistem Bilangan Biner

Setiap sistem bilangan menggunakan notasi posisi, yaitu setiap posisi penulisan digit memiliki nilai posisi yang berbeda. Setiap posisi adalah pangkat dari basis, yaitu 2 untuk sistem bilangan biner, dan pangkat ini dimulai dari 0 dan meningkat 1.

Tabel berikut menunjukkan nilai posisi untuk bilangan biner 8-bit, di mana semua bit disetel ke ON.

Nilai bit 1 1 1 1 1 1 1 1
Nilai posisi sebagai pangkat basis 2 128 64 32 16 8 4 2 1
Nomor bit 7 6 5 4 3 2 1 0

Nilai bilangan biner didasarkan pada keberadaan 1 bit dan nilai posisinya. Jadi, nilai bilangan biner yang diberikan adalah -

1 + 2 + 4 + 8 +16 + 32 + 64 + 128 = 255

yang sama dengan 2 8 - 1.

Sistem Angka Heksadesimal

Sistem bilangan heksadesimal menggunakan basis 16. Angka dalam sistem ini berkisar dari 0 hingga 15. Sesuai ketentuan, huruf A hingga F digunakan untuk mewakili digit heksadesimal yang sesuai dengan nilai desimal 10 hingga 15.

Bilangan heksadesimal dalam komputasi digunakan untuk menyingkat representasi biner yang panjang. Pada dasarnya, sistem bilangan heksadesimal mewakili data biner dengan membagi setiap byte menjadi dua dan menyatakan nilai dari setiap setengah byte. Tabel berikut menyediakan desimal, biner, dan heksadesimal yang setara -

Angka desimal Representasi biner Representasi heksadesimal
0 0 0
1 1 1
2 10 2
3 11 3
4 100 4
5 101 5
6 110 6
7 111 7
8 1000 8
9 1001 9
10 1010 SEBUAH
11 1011 B
12 1100 C
13 1101 D
14 1110 E
15 1111 F

Untuk mengonversi bilangan biner menjadi padanan heksadesimalnya, pisahkan menjadi kelompok yang masing-masing terdiri dari 4 kelompok yang berurutan, mulai dari kanan, dan tuliskan kelompok tersebut di atas digit yang sesuai dari bilangan heksadesimal tersebut.

Example - Bilangan biner 1000 1100 1101 0001 setara dengan heksadesimal - 8CD1

Untuk mengonversi bilangan heksadesimal menjadi biner, tulis saja setiap digit heksadesimal ke dalam 4 digit ekuivalen binernya.

Example - Bilangan heksadesimal FAD8 setara dengan biner - 1111 1010 1101 1000

Aritmatika Biner

Tabel berikut menggambarkan empat aturan sederhana untuk penjumlahan biner -

(saya) (ii) (aku aku aku) (iv)
1
0 1 1 1
+0 +0 +1 +1
= 0 = 1 = 10 = 11

Aturan (iii) dan (iv) menunjukkan carry 1-bit ke posisi kiri berikutnya.

Example

Desimal Biner
60 00111100
+42 00101010
102 01100110

Nilai biner negatif dinyatakan dalam two's complement notation. Menurut aturan ini, untuk mengubah bilangan biner menjadi nilai negatifnya adalah membalikkan nilai bitnya dan menambahkan 1 .

Example

Nomor 53 00110101
Balikkan bit 11001010
Tambahkan 1 0000000 1
Nomor -53 11001011

Untuk mengurangi satu nilai dari yang lain, konversikan angka yang dikurangi menjadi format komplemen dua dan tambahkan angka-angka tersebut .

Example

Kurangi 42 dari 53

Nomor 53 00110101
Nomor 42 00101010
Balikkan bit 42 11010101
Tambahkan 1 0000000 1
Nomor -42 11010110
53 - 42 = 11 00001011

Overflow dari 1 bit terakhir hilang.

Mengatasi Data dalam Memori

Proses di mana prosesor mengontrol pelaksanaan instruksi disebut sebagai fetch-decode-execute cycle atau execution cycle. Ini terdiri dari tiga langkah berkelanjutan -

  • Mengambil instruksi dari memori
  • Decoding atau mengidentifikasi instruksi
  • Menjalankan instruksi

Prosesor dapat mengakses satu atau lebih byte memori pada satu waktu. Mari kita perhatikan bilangan heksadesimal 0725H. Nomor ini membutuhkan dua byte memori. Byte orde tinggi atau byte paling signifikan adalah 07 dan byte orde rendah adalah 25.

Prosesor menyimpan data dalam urutan byte terbalik, yaitu byte tingkat rendah disimpan dalam alamat memori rendah dan byte tingkat tinggi disimpan dalam alamat memori tinggi. Jadi, jika prosesor membawa nilai 0725H dari register ke memori, prosesor akan mentransfer 25 pertama ke alamat memori yang lebih rendah dan 07 ke alamat memori berikutnya.

x: alamat memori

Ketika prosesor mendapatkan data numerik dari memori untuk didaftarkan, prosesor akan membalikkan byte lagi. Ada dua jenis alamat memori -

  • Alamat mutlak - referensi langsung dari lokasi tertentu.

  • Alamat segmen (atau offset) - alamat awal segmen memori dengan nilai offset.