Ini adalah nasm perintah yang dapat dijalankan di penyedia hosting gratis OnWorks menggunakan salah satu dari beberapa workstation online gratis kami seperti Ubuntu Online, Fedora Online, emulator online Windows atau emulator online MAC OS
PROGRAM:
NAMA
nasm - Netwide Assembler, assembler 80x86 portabel
RINGKASAN
nasm [-@ berkas tanggapan] [-f format] [-o file keluar] [-l daftar file] [Pilihan...] nama file
DESKRIPSI
nasm perintah merakit file nama file dan mengarahkan output ke file file keluar if
ditentukan. Jika file keluar tidak ditentukan, nasm akan mendapatkan nama file keluaran default dari
nama file inputnya, biasanya dengan menambahkan '.o' atau '.obj', atau dengan menghapus semua
ekstensi untuk file biner mentah. Jika gagal, nama file keluaran akan menjadi 'nasm.out'.
PILIHAN
-@ nama file
Global nasm untuk memproses opsi dari nama file seolah-olah disertakan pada perintah
line.
-a
Global nasm untuk merakit file input yang diberikan tanpa terlebih dahulu menerapkan makro
praprosesor.
-D|-d makro[=nilai]
Mendefinisikan sebelumnya makro satu baris.
-E|-e
Global nasm untuk mempraproses file input yang diberikan, dan menulis output ke stdout (Atau
nama file output yang ditentukan), dan tidak benar-benar merakit apa pun.
-f format
Menentukan format file keluaran. Untuk melihat daftar format output yang valid, gunakan: -HF
.
-F format
Menentukan format informasi debug. Untuk melihat daftar format output yang valid, gunakan:
-y pilihan (misalnya -merasa -y).
-g
Global nasm untuk menghasilkan informasi debug dalam format yang dipilih.
-h
Global nasm untuk segera keluar, setelah memberikan ringkasan opsi pemanggilannya.
-HF
Sama dengan -h , tetapi juga mencantumkan semua format keluaran yang valid.
-I|-i direktori
Menambahkan direktori ke jalur pencarian untuk menyertakan file. Spesifikasi direktori
harus menyertakan garis miring, karena akan langsung ditambahkan ke nama
termasuk berkas.
-l daftar file
Menyebabkan daftar perakitan diarahkan ke file yang diberikan, di mana yang asli
sumber ditampilkan di sisi kanan (ditambah sumber untuk file yang disertakan dan
ekspansi makro multi-baris) dan kode yang dihasilkan ditampilkan dalam hex di sebelah kiri.
-M
Global nasm untuk menampilkan dependensi gaya Makefile ke stdout; keluaran normal adalah
tertindas.
-MG fillet
Sama dengan -M tetapi mengasumsikan bahwa dependensi Makefile yang hilang dihasilkan dan ditambahkan ke
daftar ketergantungan tanpa awalan.
-MF fillet
Keluarkan dependensi gaya Makefile ke file yang ditentukan.
-MD fillet
Sama dengan kombinasi -M dan -MF Pilihan.
-MT fillet
Ganti nama default dari nama target ketergantungan target ketergantungan. Ini adalah
biasanya sama dengan nama file keluaran, ditentukan oleh -o .
-MQ fillet
Sama seperti -MT kecuali mencoba mengutip karakter yang memiliki arti khusus dalam
Sintaks makefile. Ini tidak mudah, karena tidak semua karakter dengan arti khusus adalah
dapat dikutip di Make.
-MP
Memancarkan target palsu.
-O jumlah
Optimalkan offset cabang.
· -O0: Tidak ada pengoptimalan
· -O1: Optimalisasi minimal
· -Sapi: Pengoptimalan multipass (default)
-o file keluar
Menentukan nama yang tepat untuk file output, menimpa nasm's default berarti
menentukannya.
-P|-p fillet
Menentukan file yang akan dimasukkan sebelumnya, sebelum file sumber utama mulai
diproses.
-s
Global nasm untuk mengirim pesan kesalahannya dan/atau teks bantuan ke stdout alih-alih stderr.
-t
Global nasm untuk berkumpul dalam mode yang kompatibel dengan SciTech TASM.
-U|-u makro
Membatalkan definisi makro satu baris.
-v
Global nasm untuk segera keluar, setelah menampilkan nomor versinya.
*-W[tidak-]foo'
Global nasm untuk mengaktifkan atau menonaktifkan kelas pesan peringatan tertentu, seperti gcc
gaya, misalnya -Label-Worphan or -Wno-yatim-label.
-w[+-]aduh
Global nasm untuk mengaktifkan atau menonaktifkan kelas pesan peringatan tertentu, misalnya
-w+label yatim piatu or -w-makro-params.
-X format
Menentukan format pelaporan kesalahan (gnu atau vc).
-y
Global nasm untuk membuat daftar format debug yang didukung.
-Z nama file
Global nasm untuk mengarahkan pesan kesalahan ke nama file. Opsi ini ada untuk mendukung
sistem operasi di mana stderr tidak mudah diarahkan.
--awalan, --postfix
Tambahkan atau tambahkan (masing-masing) argumen yang diberikan ke semua variabel global atau eksternal.
SINTAKSIS
Halaman manual ini tidak sepenuhnya menjelaskan sintaks dari nasmbahasa rakitan, tetapi apakah
memberikan ringkasan perbedaan dari assembler lain.
Daftar tidak memiliki tanda '%' di depan, tidak seperti gas, dan register tumpukan titik-mengambang adalah
disebut sebagai st0, st1, Dan sebagainya.
Titik-mengambang instruksi dapat menggunakan bentuk operan tunggal atau ganda. A UNTUK
kata kunci disediakan; dengan demikian, seseorang dapat menulis
mode st0,st1
mode st1,st0
atau seseorang dapat menggunakan bentuk operan tunggal alternatif
mode st1
iseng ke st1
Tidak diinisialisasi penyimpanan dipesan menggunakan RESB, MENGEMBALIKAN, RESD, RESQ, ISTIRAHAT dan RESOLUSI
pseudo-opcode, masing-masing mengambil satu parameter yang memberikan jumlah byte, kata,
doublewords, quadwords atau kata-kata sepuluh byte untuk cadangan.
Pengulangan item data tidak dilakukan oleh DUP kata kunci seperti yang terlihat di assembler DOS, tetapi dengan
penggunaan TIMES awalan, seperti ini:
pesan: kali 3 db 'abc'
kali 64-$+pesan db 0
yang mendefinisikan string abcabcabc, diikuti dengan jumlah nol byte yang tepat untuk membuat
panjang total hingga 64 byte.
Символ referensi selalu dipahami segera (yaitu alamat simbol),
kecuali tanda kurung siku digunakan, dalam hal ini isi lokasi memori adalah
digunakan. Dengan demikian:
mov ax, wordvar
memuat AX dengan alamat variabel wordvar, sedangkan
kapak bergerak,[wordvar]
mov kapak,[wordvar+1]
mov kapak,[es:wordvar+bx]
semua mengacu pada isi dari lokasi memori. Sintaksnya
pindahkan kapak,es:wordvar[bx]
es mov kapak,wordvar[1]
tidak legal sama sekali, meskipun penggunaan nama register segmen sebagai awalan instruksi
valid, dan dapat digunakan dengan instruksi seperti LODSB yang tidak bisa ditimpa apapun
cara lain.
Konstanta dapat dinyatakan secara numerik dalam sebagian besar format: a trailing H, Q atau B menunjukkan hex,
oktal atau biner masing-masing, dan '0x' atau '$' di depan menunjukkan hex juga. Memimpin nol
tidak diperlakukan secara khusus sama sekali. Konstanta karakter dapat diapit tunggal atau ganda
kutipan; tidak ada karakter pelarian. Urutannya adalah little-endian (terbalik), sehingga
konstanta karakter 'abcd' menunjukkan 0x64636261 dan bukan 0x61626364.
Label lokal dimulai dengan titik, dan 'lokalitas' mereka diberikan oleh assembler
mengawali nama simbol non-lokal sebelumnya. Jadi mendeklarasikan label '.loop' setelahnya
label 'label' sebenarnya telah mendefinisikan simbol yang disebut 'label.loop'.
PETUNJUK
BAGIAN nama or SEGMEN nama penyebab nasm untuk mengarahkan semua kode berikut ke yang bernama
bagian. Nama bagian bervariasi dengan format file keluaran, meskipun sebagian besar format mendukung
nama .teks, .data dan .bss. (Pengecualian adalah obj format, di mana semua segmen adalah
dapat ditentukan pengguna.)
MUTLAK alamat penyebab nasm untuk memposisikan titik perakitan nosionalnya pada titik absolut
alamat: jadi tidak ada kode atau data yang dapat dibuat, tetapi Anda dapat menggunakan RESB, MENGEMBALIKAN dan RESD untuk bergerak
titik perakitan lebih lanjut, dan Anda dapat menentukan label. Jadi arahan ini dapat digunakan untuk
menentukan struktur data. Ketika Anda telah selesai melakukan perakitan absolut, Anda harus mengeluarkan
lain BAGIAN arahan untuk kembali ke perakitan normal.
BITS 16, BITS 32 or BITS 64 mengganti mode prosesor default yang nasm is
menghasilkan kode: itu setara dengan GUNAKAN 16 or GUNAKAN 32 dalam assembler DOS.
EKSTERN simbol dan GLOBAL simbol definisi simbol impor dan ekspor, masing-masing, dari
dan ke modul lainnya. Perhatikan bahwa GLOBAL direktif harus muncul sebelum definisi
simbol yang dirujuknya.
STRUK nama struktur dan AKHIRNYA, bila digunakan untuk mengurung sejumlah RESB, MENGEMBALIKAN atau serupa
instruksi, mendefinisikan struktur data. Selain mendefinisikan offset dari
anggota struktur, konstruk juga mendefinisikan simbol untuk ukuran struktur,
yang merupakan nama struktur dengan ukuran ditempel sampai akhir.
FORMAT-KHUSUS PETUNJUK
ORG alamat digunakan oleh bin format output biner flat-form, dan menentukan alamatnya
di mana kode output akhirnya akan dimuat.
GROUP nama grp bagian1 bagian2... digunakan oleh format keluaran obj (Microsoft 16-bit), dan
mendefinisikan kelompok segmen. Format ini juga menggunakan HURUF BESAR, yang mengarahkan bahwa semua segmen,
nama grup dan simbol output ke file objek harus dalam huruf besar. Perhatikan bahwa
perakitan sebenarnya masih peka huruf besar-kecil.
PERPUSTAKAAN nama lib digunakan oleh rdf format output, dan menyebabkan catatan ketergantungan menjadi
ditulis ke file output yang menunjukkan bahwa program memerlukan perpustakaan tertentu di
perintah untuk menjalankan.
MAKRO PREPROSESOR
Makro baris tunggal didefinisikan menggunakan %mendefinisikan or %definisikan perintah, dengan cara yang serupa
mode ke C preprocessor. Mereka dapat kelebihan beban sehubungan dengan jumlah
parameter, meskipun mendefinisikan makro tanpa parameter mencegah definisi apa pun
makro dengan nama yang sama mengambil parameter, dan sebaliknya. %mendefinisikan mendefinisikan makro yang
nama cocok dengan case-sensitive, sedangkan %definisikan mendefinisikan makro case-insensitive.
Makro multi-baris didefinisikan menggunakan %makro dan %imakro (perbedaannya sama dengan
itu antara %mendefinisikan dan %definisikan), yang sintaksnya adalah sebagai berikut:
%nama makro minprm[-maxprm][+][.nolist] [default]
%endmakro
Sekali lagi, makro ini mungkin kelebihan beban. Tanda plus di akhir menunjukkan bahwa setiap
parameter setelah yang terakhir dimasukkan, dengan koma pemisahnya, ke yang terakhir
parameter. NS default bagian dapat digunakan untuk menentukan default untuk makro yang tidak ditentukan
parameter setelah minparam. %akhir adalah sinonim yang valid untuk %endmakro.
Untuk merujuk ke parameter makro dalam ekspansi makro, Anda menggunakan %1, %2 dan seterusnya. Anda
juga dapat menegakkan bahwa parameter makro harus berisi kode kondisi dengan menggunakan %+1, dan
Anda dapat membalikkan kode kondisi dengan menggunakan -1%. Anda juga dapat menentukan label khusus untuk a
doa makro dengan mengawalinya dengan tanda '%' ganda.
File dapat dimasukkan menggunakan %termasuk direktif, yang berfungsi seperti C.
Praprosesor memiliki 'tumpukan konteks', yang dapat digunakan oleh satu makro untuk menyimpan
informasi yang nantinya akan diambil. Anda dapat mendorong konteks pada tumpukan menggunakan
%dorongan, hapus satu menggunakan %pop, dan ubah nama konteks teratas (tanpa mengganggu
definisi terkait) menggunakan % balasan. Label dan %mendefinisikan makro khusus untuk bagian atas
konteks dapat ditentukan dengan mengawali nama mereka dengan %$, dan hal-hal khusus untuk berikutnya
konteks turun dengan %$$, dan seterusnya.
Perakitan bersyarat dilakukan dengan cara: %ifdef, %ifndef, %lain dan %berakhir jika seperti di C
(Kecuali itu %ifdef dapat menerima beberapa nama makro yang diduga, dan akan mengevaluasi TRUE jika ada
dari mereka didefinisikan.) Selain itu, arahan % ifctx dan %ifnctx dapat digunakan untuk
kondisi pada nama konteks teratas pada tumpukan konteks. Himpunan yang jelas dari
arahan 'else-if', %elifdef, %elifndef, %eliftx dan %elifnctx juga didukung.
Gunakan nasm online menggunakan layanan onworks.net