Jenis arahan dalam bahasa himpunan: panduan lengkap

Kemaskini terakhir: 7 Mei 2025
Pengarang TecnoDigital
  • Bahasa himpunan menyusun arahannya mengikut tujuan: pemindahan, pengiraan, kawalan aliran dan banyak lagi.
  • Setiap arahan terdiri daripada opcode dan operand, dengan format berbeza bergantung pada seni bina.
  • Terdapat beberapa mod pengalamatan untuk mengakses data, seperti segera, langsung dan tidak langsung.

penghimpun Bahasa mesin dan format arahan

Bahasa himpunan telah menjadi salah satu tiang asas pembangunan perisian sejak permulaan pengkomputeran. Walaupun bahasa peringkat tinggi mendominasi suasana hari ini, pemasang kekal digunakan secara meluas dan relevan dalam persekitaran di mana kawalan perkakasan, pengoptimuman atau kekangan sumber menjadi keutamaan.

Dalam artikel ini, kita akan mengkaji jenis-jenis arahan bahasa pemasangan, menganalisis struktur, tujuan, mod pengalamatan dan bagaimana ia disusun merentasi seni bina yang berbeza. Anda juga akan menemui contoh, format dan gambaran keseluruhan komprehensif yang akan membolehkan anda memahami sepenuhnya logik di sebalik arahan ini, yang beroperasi dengan sangat rapat dengan perkakasan.

Apakah arahan dalam bahasa himpunan?

Arahan pemasangan ialah arahan yang boleh difahami secara langsung oleh CPU (sebaik sahaja diterjemahkan kepada kod mesin oleh program penghimpun). Setiap arahan mempunyai tujuan tertentu dan biasanya terdiri daripada mnemonik yang mewakili operasi dan satu atau lebih operan yang menunjukkan di mana data diambil dan/atau di mana hasilnya disimpan.

Arahan ini sangat bergantung pada seni bina pemproses, jadi setiap jenis CPU (sama ada x86, ARM, MIPS, antara lain) mempunyai set arahannya sendiri dengan sintaks dan keupayaan tertentu.

Struktur sesuatu arahan

Arahan biasanya terdiri daripada dua bahagian:

  • Kod operasi (opcode): Menunjukkan tindakan yang akan dilaksanakan, seperti menambah, memindahkan data, membandingkan, dll.

Operand menyediakan maklumat yang diperlukan untuk melaksanakan operasi dan boleh disimpan dalam daftar, memori atau menjadi pemalar. Tidak semua arahan memerlukan operan, dan dalam beberapa kes, ini mungkin tersirat dalam arahan atau disimpan dalam daftar yang telah ditetapkan.

Jenis arahan dalam bahasa himpunan

Bergantung pada fungsi yang mereka lakukan dalam program, arahan bahasa himpunan boleh dikelaskan kepada beberapa kumpulan. Yang paling relevan diperincikan di bawah:

1. Arahan pemindahan data

Arahan ini membolehkan data disalin dari satu lokasi ke lokasi lain tanpa mengubah suai kandungannya di sumbernya. Arahan ini penting untuk memindahkan maklumat antara daftar, memori dan peranti persisian.

  Apakah HTML dan untuk apa ia digunakan?

Beberapa arahan yang paling biasa dalam kumpulan ini ialah:

  • PERGERAKAN: Menyalin kandungan satu operan kepada yang lain. Sebagai contoh, MOV AX, BX salin kandungan BX ke AX.
  • MOVS / MOVSB ​​​​/ MOVSW: Memindahkan rentetan daripada alamat sumber (SI) ke alamat destinasi (DI), mengautomasikan proses pemindahan.
  • LODS / LODSB / LODSW: Memuatkan nilai dari alamat yang ditunjukkan oleh daftar SI ke dalam penumpuk (AL atau AX).
  • BACA: Memuatkan alamat yang berkesan dan bukannya nilai. Berguna untuk mendapatkan alamat pembolehubah atau struktur.

2. Arahan bateri

Tindanan ialah struktur LIFO (masuk terakhir, keluar dahulu) yang digunakan untuk menyimpan data buat sementara waktu, menghantar parameter atau menyimpan konteks pelaksanaan.

  • TOLAK: Menyimpan nilai pada tindanan, mengurangkan penuding SP.
  • POP: Mendapatkan nilai terbaharu yang disimpan pada tindanan, menambah SP.
  • PUSHF / POPF: Mereka menyimpan dan mendapatkan semula keadaan bendera CPU pada timbunan.

3. Arahan aritmetik dan logik

Ia membolehkan pengiraan dan operasi dilakukan pada bit. Arahan ini penting untuk memanipulasi data berangka dan membuat keputusan dalam aliran program.

Antara yang paling banyak digunakan kami dapati:

  • TAMBAH / SUB: Penambahan dan penolakan.
  • MUL / IMUL: Darab binari.
  • DIV / IDIV: Pembahagian (integer atau ditandatangani).
  • DAN / ATAU / XOR / BUKAN: Operasi logik bitwise.
  • SHL / SHR / ROL / ROR: Peralihan bit dan putaran.

4. Arahan kawalan aliran

Ia membolehkan anda mengubah suai urutan pelaksanaan program , memperkenalkan lompatan atau panggilan bersyarat dan tidak bersyarat kepada arahan lain.

  • JMP: Tanpa syarat melompat ke alamat lain dalam program.
  • CALL / RET: Panggil ke subrutin dan kembali.
  • JE/JNE/JG/JL/JZ/JNZ: Lompatan bersyarat, ia dilaksanakan jika syarat tertentu dipenuhi (selepas perbandingan).

5. Arahan Input/Output (I/O).

Ia membolehkan komunikasi antara pemproses dan peranti luaran. Arahan ini membolehkan data dibaca dan ditulis ke/dari port (perkakasan).

  • DALAM: Membaca data daripada port input.
  • KELUAR: Menghantar data ke port output.

6. Arahan titik terapung

Banyak CPU mempunyai pemproses bersama matematik (atau arahan khas) yang dikhaskan untuk berfungsi dengan nombor perpuluhan (titik apungan). Arahan ini membenarkan operasi seperti:

  • Penambahan, penolakan, pendaraban dan pembahagian nombor nyata.
  • Operasi trigonometri (sinus, kosinus, tangen).
  • Operasi logaritma, eksponen dan punca.
  Bahasa pengaturcaraan Rust: prestasi, keselamatan dan ekosistem

Arahan ini biasanya mematuhi piawaian IEEE 754 untuk ketepatan berangka.

Mod menangani

Bahagian asas reka bentuk arahan ialah bagaimana lokasi operan dikenal pasti. Mod pengalamatan menentukan bagaimana CPU mengakses data.

1. Alamat segera

Data disertakan terus dalam arahan. Ia pantas, tetapi ia tidak membenarkan pengubahsuaian nilai tanpa mengubah arahan.

MOV AX, 5

2. Alamat langsung

Alamat memori yang mengandungi data dinyatakan secara eksplisit.

MOV AX, 

3. Pengalamatan tidak langsung

Alamat berkesan diperoleh daripada kandungan rekod. Sangat fleksibel dan digunakan untuk struktur dan senarai terpaut.

MOV AX, 

4. Pengalamatan diindeks

Alamat dikira dengan menambah asas dan indeks (contohnya, pada tatasusunan merentasi). Ia menggunakan daftar khas seperti SI, DI atau daftar asas + ofset.

MOV AX, 

Format arahan: jenis berbeza bergantung pada seni bina

Struktur sesuatu arahan mungkin berbeza bergantung pada seni bina. Format biasa termasuk:

format 4 hala

Ia merangkumi dua operan, lokasi hasil dan alamat arahan seterusnya. Ia kini sudah lapuk kerana kerumitannya.

format 3 hala

Ia menentukan dua operan dan alamat destinasi. Ia adalah perkara biasa dalam seni bina RISC moden.

format 2 hala

Gunakan operan sumber dan operan destinasi (destinasi juga boleh menyumbang nilai). Popular pada x86 dan seni bina CISC yang lain.

Format 1 hala

Hanya satu operan yang ditentukan; yang satu lagi dianggap sebagai akumulator. Biasa dalam pemproses lama dan sistem mudah.

Format 0-alamat (berasaskan tindanan)

Operasi menggunakan tindanan untuk mengambil dan menyimpan operan dan hasil. Sangat cekap untuk mesin berasaskan tindanan, seperti beberapa kalkulator boleh atur cara.

Arahan makro dan pseudo-opcode

Untuk meningkatkan produktiviti, banyak pemasang menawarkan arahan makro , yang mengembangkan satu baris kepada beberapa arahan sebenar. Ini berguna untuk mengelakkan pengulangan corak kompleks atau untuk mencipta struktur aras tinggi seperti gelung atau pernyataan bersyarat.

The pseudo-opcodes Ia adalah arahan yang diterjemah oleh pemasang secara dalaman ke dalam urutan arahan sebenar. Sebagai contoh, NOP (tiada operasi) boleh diterjemahkan sebagai XCHG AX, AX pada CPU x86.

  Pengekodan vibe: apakah itu, cara ia berfungsi dan hadnya

Arahan pemasang

Arahan ( juga dipanggil pseudo-operasi ) bukanlah arahan dalam erti kata yang ketat. Ia berfungsi untuk mengawal proses pemasangan, mentakrifkan data, bahagian kod, makro, syarat kompilasi, dsb.

Contoh biasa termasuk:

  • .data / .code: Mereka menunjukkan bahagian data atau kod.
  • .org: Menetapkan alamat dari mana perhimpunan akan bermula.
  • .equ: Mentakrifkan pemalar simbolik.

Kes penggunaan bahasa himpunan

Walaupun terdapat peningkatan bahasa peringkat tinggi, bahasa himpunan kekal penting dalam beberapa bidang:

  • Pembangunan sistem terbenam dan mikropengawal.
  • Pemacu pengaturcaraan, pemuat but dan BIOS.
  • Pengoptimuman melampau dalam aplikasi seperti permainan video atau kriptografi.
  • Kejuruteraan songsang, penyahpepijatan dan penggodaman peringkat rendah.

Tambahan pula, latihan dalam bahasa pemasangan masih menduduki tempat penting dalam sains komputer dan ijazah elektronik, kerana ia memberikan pemahaman yang mendalam tentang cara pemproses berfungsi, bagaimana data disimpan dan dimanipulasi, dan bagaimana arahan dilaksanakan pada peringkat binari.

Memahami semua jenis arahan pemasangan, struktur, kefungsian dan mod pengalamatannya menyediakan asas yang kukuh untuk mana-mana pengaturcara yang ingin mendalami pengaturcaraan peringkat rendah atau memahami bagaimana bahasa peringkat tinggi akhirnya diterjemahkan ke dalam kod mesin. Walaupun penggunaannya telah menjadi lebih khusus, ia kekal sebagai alat penting dalam pelbagai bidang kritikal pembangunan perisian dan sistem.

bahasa himpunan
Artikel berkaitan:
Semua tentang Bahasa Himpunan: Apa Itu dan Cara Ia Berfungsi