PBXB64 Inline-Assembly

Native x64-Assembly PBXB64-Erweiterung

Schreiben Sie x64-Assembly direkt in PB- und B64-Programme. Voller Befehlssatz, alle Allzweck-Register, Speicheradressierungsmodi und nahtlose Integration mit der Symboltabelle des Compilers. Der Assembler ist eingebaut - keine externen Tools nötig.

Inline-ASM in PB

PB Inline-Assembly
FUNCTION PBMAIN() AS LONG LOCAL result AS LONG ! mov rax, 42 ! mov result, rax PRINT "Result: "; result ' 42 FUNCTION = 0 END FUNCTION

Präfixieren Sie Assembly-Zeilen mit ! in PB-Code. Der Assembler integriert sich mit der Register-Allokation und Frame-Layout des Compilers. Alle 16 x64-Allzweck-Register sind verfügbar.

Speicheradressierung und Labels

Speicher-Operationen und Labels
FUNCTION PBMAIN() AS LONG LOCAL buffer[4] AS LONG LOCAL i AS LONG ! lea rsi, buffer ! mov rcx, 4 ! xor rax, rax schleife_start: ! mov [rsi + rax*4], rax ! inc rax ! cmp rax, rcx ! jl schleife_start PRINT "buffer[2] = "; buffer(2) ' 2 FUNCTION = 0 END FUNCTION

Inline-ASM unterstützt Speicheradressierung mit Scale/Index/Base, lokale Labels und bedingte Sprünge. Der Compiler löst Label-Offsets auf und integriert sich mit dem Frame-Layout.

Inline-ASM in B64

B64 asm-Block
func main() i64 { asm { mov rax, 100 add rax, 50 mov rcx, 25 sub rax, rcx ' rax = 125 } return 0 }

B64 verwendet asm { ... }-Blöcke für mehrzeilige Assembly. Alle x64-Befehle, Register und Adressierungsmodi werden unterstützt. Der Block wird direkt an den integrierten Assembler übergeben.

Standalone ASM-Dateien

Reine Assembly-Kompilierung
REM Standalone .asm-Datei kompilieren PBXB64 add_two.asm -o add_two.exe add_two.exe REM Assembly mit C-Quelle PBXB64 main.c helper.asm -o program.exe

PBXB64 kann standalone .asm-Dateien direkt kompilieren. Der Assembler produziert COFF-Objekte, die mit C-, PB- und B64-Code verlinkt werden. Voller x64-Befehlssatz mit MASM-ähnlicher Syntax.

Zurück zur Feature-Liste