Perhimpunan - Perkalian dengan pemalar

Anda boleh membuat pendaraban menggunakan arahan multimedia seperti imul dan mul dalam kod bahasa perhimpunan, sebagai nama nama Mul. Pemproses dalaman merangkumi kod pengaturcaraan dengan mengasingkan parameter saiz, seperti untuk eax, ax dan al, dan kemudian menyimpan hasil dalam eax atau kapak sebagai "rendah" dan menghasilkan edx atau dx sebagai "paling penting", dengan hasilnya direkodkan yang terakhir ditetapkan, jika berganda lebih besar daripada satu bait.

Oleh kerana fail multimedia adalah besar dalam ingatan, anda mungkin perlu menukar nilai-nilai dalam eax untuk didarabkan pada daftar, dan hasil pendaftaran mestilah eax, dengan nilai sebelumnya ditindih. Walau bagaimanapun, jika anda perlu membuat pendaraban daftar dengan tetap, masukkan keputusan dalam daftar dan kemudian gunakan pintasan dengan arahan "lea".

Pengenalan ringkas

Bahasa pemasangan adalah bahasa peringkat rendah untuk komputer pengaturcaraan dan mula-mula dibangunkan pada tahun 1950-an. Mereka kebanyakannya dikenali sebagai bahasa pengaturcaraan generasi kedua. Satu ciri penting dalam bahasa Perhimpunan, adalah bahawa mereka menghapuskan banyak operasi rawan yang salah dan memakan masa yang diperlukan dalam pengaturcaraan generasi pertama.

Pendaraban dalam pemasangan

Dalam perhimpunan anda boleh kalikan dua nombor menggunakan arahan mul (nombor tidak ditandatangani) dan Imul. Ia digunakan seperti berikut:

 name_registry mul 

Prosesor meningkatkan kandungan eax atau kapak atau al (bergantung kepada saiz registri, yang diberikan dalam parameter) dan kemudian menyimpan hasil dalam eax, kapak, edx atau dx.

Menggunakan mul cukup menyusahkan kerana anda perlu memindahkan nilai yang didarabkan untuk eax, nilai untuk membiak ke registri yang berbeza dan pendaftaran yang memegang hasilnya mesti eax.

Walau bagaimanapun, jika anda hanya mahu melipatgandakan registri secara malar dan meletakkan keputusan dalam registri pilihan anda, anda boleh menggunakan pintasan dengan arahan "lea" (memuatkan alamat berkesan). Arahan ini digunakan untuk mendapatkan alamat data dalam ingatan.

 lea destination_registry, [memory_address]; letakkan memory_address dalam destination_registry 

Keuntungan besar ini ialah, dengan menggunakan pemalar, anda tidak perlu menggunakan alamat memori tambahan. Bayangkan anda ingin mengalikan ecx sebanyak 7 dan menyimpan hasil dalam ebx, arahannya ialah:

 lea ebx, [ecx * 7] 

Nota: Anda tidak boleh mengalikan dua pendaftaran bersama menggunakan pintasan ini.

Artikel Sebelumnya Artikel Seterusnya

Tip-Tip Utama