Carzy (Pembuat Assembly)
Carzy adalah modul assembly dan pembuatan kode tingkat rendah bawaan LightVM. Modul ini menyediakan pembantu untuk teks assembly, simbol, bagian memori (text, data, rodata), konstanta I/O, dan instruksi khusus arsitektur.
Cara Kerja Carzy
Carzy menggunakan arsitektur dua lapis: Core Assembly Engine (AsmBuilder) mengelola pemformatan teks dan buffer string, sedangkan Architecture-Specific Builder (AArch64Builder) membungkusnya dengan pembantu instruksi. Builder ini menghasilkan teks assembly tanpa memvalidasi instruksi atau operand.
- Buffer Assembly Inti (
AsmBuilder): Menulis langsung ke bufferStringmenggunakan makrowrite!danwriteln!serta traitstd::fmt::Write.build()mengembalikan teks, danwrite_to_file()menulisnya ke file. - Sanitasi Nama Alokasi:
AsmBuilder::alloc()mengganti karakter yang bukan alfanumerik atau garis bawah dengan_pada nama alokasi.label(),global(), dansymbol_type()menulis nama sesuai masukan. - Injeksi Konstanta I/O Global: Menghasilkan konstanta untuk baris baru, teks
16, penanda objek/array, dan urutan pembersihan layar ANSI. - Pembantu Instruksi Arsitektur:
AArch64Buildermenyediakan metode sepertimov,add,sub,ldr,str, danretuntuk memformat teks instruksi. - Manajemen Bagian Memori: Menghasilkan direktif
.text,.data, dan.section .rodata. - Pelarian String (Escaping):
alloc()melakukan escaping pada garis miring terbalik, tanda kutip, baris baru, carriage return, dan tab untuk nilaiPrimitiveTypes::Str.
INFO
Kamu bisa menemukan cara menggunakan Carzy pada halaman Metode Compile.