Pengantar Bahasa Assembly
Ini adalah pengenalan singkat bahasa assembly. Bahasa assembly adalah bahasa pemrograman yang paling dasar yang tersedia untuk prosesor apapun. Dengan bahasa assembly, programmer hanya bekerja dengan operasi diterapkan secara langsung pada CPU fisik. Majelis bahasa tidak memiliki kenyamanan tingkat tinggi, seperti variabel dan fungsi, dan tidak portabel di antara berbagai keluarga prosesor. Namun demikian, bahasa assembly adalah bahasa pemrograman komputer paling kuat yang tersedia, dan memberikan wawasan yang dibutuhkan programmer untuk menulis kode yang efektif dalam bahasa tingkat tinggi. Belajar bahasa assembly sangat layak waktu dan upaya masing-masing programmer serius. Dasar-dasar
Sebelum kita dapat menjelajahi proses penulisan program komputer, kita harus kembali ke dasar-dasar dan belajar apa komputer dan bagaimana kerjanya. Setiap komputer, tidak peduli seberapa sederhana atau kompleks, telah pada intinya tepat dua hal: CPU dan memori beberapa. Bersama-sama, kedua hal adalah apa yang memungkinkan bagi komputer Anda untuk menjalankan program.
Pada tingkat yang paling dasar, sebuah program komputer tidak lebih dari sekumpulan nomor yang tersimpan dalam memori. nomor yang berbeda memberitahu CPU untuk melakukan hal yang berbeda. CPU membaca satu nomor pada satu waktu, decode, dan melakukan apa angka katakan. Misalnya, jika CPU membaca nomor 64 sebagai bagian dari sebuah program, akan menambah 1 ke nomor yang tersimpan di lokasi khusus yang disebut AX. Jika CPU membaca nomor 146, maka akan swap nomor yang disimpan dalam AX dengan nomor yang tersimpan di lokasi lain yang disebut BX. Dengan menggabungkan banyak operasi sederhana seperti ini ke dalam program, programmer dapat membuat komputer melakukan banyak hal luar biasa.
Sebagai contoh, berikut adalah jumlah program komputer sederhana: 184, 0, 184, 142, 216, 198, 6, 158, 15, 36, 205, 32. Jika Anda adalah untuk memasukkan angka-angka ini ke dalam memori komputer Anda dan menjalankan mereka dengan MS-DOS, anda akan melihat tanda dolar ditempatkan di sudut kanan bawah layar Anda, karena itulah yang angka-angka ini memberitahu komputer untuk melakukan. Bahasa Assembly
Meskipun jumlah program di atas masuk akal ke komputer, mereka tentang sejelas lumpur ke manusia. Siapa yang akan menduga bahwa mereka menempatkan tanda dolar di layar? Jelas, memasukkan nomor dengan tangan adalah cara buruk untuk menulis program.
Tidak harus seperti ini, walaupun. Dulu, seseorang datang dengan gagasan bahwa program komputer dapat ditulis menggunakan kata-kata, bukan angka. Sebuah program khusus yang disebut assembler kemudian akan mengambil kata-kata programmer dan mengkonversikannya ke nomor yang komputer bisa mengerti. Metode baru ini, yang disebut menulis sebuah program dalam bahasa assembly, programmer menyelamatkan ribuan jam, karena mereka tidak lagi harus melihat sulit mengingat nomor di punggung buku pemrograman, tetapi bisa menggunakan kata-kata sederhana sebagai gantinya.
Program di atas, ditulis dalam bahasa assembly, terlihat seperti ini: MOV AX, 47104 MOV DS, AX MOV [3998], 36 INT 32
Ketika assembler membaca ini contoh program, itu mengkonversi setiap baris kode ke dalam satu instruksi CPU-tingkat. Program ini menggunakan dua jenis instruksi, MOV dan INT. Pada prosesor Intel, instruksi MOV memindahkan data sekitar, sedangkan pada kontrol instruksi INT transfer prosesor untuk driver perangkat atau sistem operasi.
Program ini masih belum cukup jelas, tetapi jauh lebih mudah dipahami daripada sebelumnya. Instruksi pertama, MOV AX, 47104, memberitahu komputer untuk menyalin nomor 47104 ke dalam AX lokasi. Instruksi berikutnya, MOV DS, AX, memberitahu komputer untuk menyalin nomor di AX ke DS lokasi. Instruksi berikutnya, MOV [3998], 36 memberitahu komputer untuk menempatkan nomor 36 ke lokasi memori 3998. Akhirnya, INT 32 keluar dari program dengan kembali ke sistem operasi.
Sebelum kita lanjutkan, saya ingin menjelaskan bagaimana program ini bekerja. Di dalam CPU sejumlah lokasi, yang disebut register, yang dapat menyimpan nomor. Beberapa register, seperti AX, adalah tujuan umum, dan tidak melakukan sesuatu yang istimewa. Register lainnya, seperti DS, mengontrol cara CPU bekerja. DS hanya terjadi menjadi sebuah register segmen, dan digunakan untuk memilih area memori CPU dapat menulis. Dalam program kami, kami menempatkan nomor 47104 ke DS, yang memerintahkan CPU untuk mengakses memori pada kartu video. Hal berikutnya program kami ini adalah untuk menempatkan nomor 3998 36 ke lokasi memori kartu video itu. Karena 36 adalah kode untuk tanda dolar, dan 3998 adalah lokasi memori sudut kanan bawah layar, tanda dolar muncul di layar sebuah mikrodetik kemudian. Akhirnya, program kami memberitahu CPU untuk melakukan apa yang disebut interrupt. Sebuah interupsi digunakan untuk menghentikan satu program dan melaksanakan lain di tempatnya. Dalam kasus kami, kami ingin mengganggu 32, yang akan berakhir program kami dan kembali ke MS-DOS, atau apa pun program lain digunakan untuk memulai program kami. Menjalankan Program
Mari kita pergi ke depan dan menjalankan program ini. Pertama, pastikan untuk mencetak instruksi ini keluar, karena Anda akan perlu merujuk kepada mereka seperti yang kita pergi. Selanjutnya, klik pada menu start, dan menjalankan program yang disebut "MS-DOS Prompt." Sebuah layar hitam dengan teks putih akan muncul. Kita sekarang dalam MS-DOS, komputer cara yang digunakan untuk 20 tahun yang lalu. MS-DOS adalah sebelum hari mouse, sehingga Anda harus mengetik perintah pada keyboard untuk membuat komputer melakukan sesuatu.
Pertama, saya ingin Anda mengetik kata "debug," dan tekan enter. kursor harus bergerak ke bawah baris, dan Anda akan melihat prompt Debug, yang merupakan dash sederhana. Kita sekarang dalam sebuah program yang disebut Debug. Debug adalah utilitas yang kuat yang memungkinkan Anda langsung mengakses register dan memori komputer Anda untuk berbagai keperluan. Dalam kasus kami, kami ingin memasukkan program kami ke memori dan menjalankannya, jadi kita akan menggunakan perintah Debug, untuk berkumpul. Pergi ke depan dan ketik "A100" sekarang. Kursor akan bergerak ke bawah garis lain, dan Anda akan melihat sesuatu seperti "1073:0100." Ini adalah lokasi memori kita akan memasukkan instruksi bahasa assembly di. Nomor pertama adalah segmen, dan angka kedua adalah lokasi memori di dalam segmen tersebut. Debug program anda mungkin akan memilih segmen yang berbeda untuk program anda dari saya lakukan, jadi jangan khawatir jika itu berbeda. Satu hal yang perlu diperhatikan adalah bahwa Debug hanya mengerti angka-angka heksadesimal, yang merupakan semacam singkatan komputer. angka Heksadesimal kadang-kadang mengandung huruf serta serta angka, jadi jika Anda melihat sesuatu seperti "63AF," jangan khawatir.
Mari kita pergi ke depan dan memasuki program kami sekarang. Setiap jenis instruksi di bawah ini ke Debug persis seperti mereka muncul, dan tekan enter setelah satu per satu. Ketika Anda selesai memasukkan instruksi terakhir, tekan enter dua kali untuk memberitahu Debug bahwa kita sudah selesai memasukkan instruksi. mov ax, B800 mov ds, ax mov byte [0F9E], 24 int 20
Seperti yang Anda lihat, aku sudah dikonversi semua angka ke dalam heksadesimal, dan telah membuat beberapa perubahan lain sehingga Debug dapat mengerti apa yang sedang terjadi. Jika Anda membuat kesalahan ketika memasuki program di atas, tekan enter dua kali, ketik "A100," dan mulai memasuki instruksi lagi pada awal program.
Setelah Anda memasukkan program, Anda dapat melanjutkan dan menjalankannya. Cukup ketik "g" untuk pergi dan tekan enter saat Anda siap untuk memulai program ini. Anda akan melihat tanda dolar di sudut kanan bawah layar Anda dan kata-kata "Program dihentikan normal." Kata-kata ini yang dikeluarkan oleh Debug untuk memberi tahu bahwa program berakhir normal. Selamat! Anda baru saja masuk dan menjalankan perakitan pertama program bahasa!
Mari kita kembali ke Windows sekarang. Pergi ke depan dan ketik "q" untuk keluar dari Debug. Sekarang, ketik "exit" untuk keluar dari MS-DOS. Anda sekarang akan kembali pada Windows..
Tidak ada komentar:
Posting Komentar