FreeBasic: Welche Asm-Befehle und -Optionen stecken in fbc.exe?
Ein kleines Programm in freeBASIC ist recht hilfreich gewesen um einmal zu sehen, welche Assemblerbefehle fbc.exe (=der FB-Compiler) erkennt und welche Optionen / Anweisungen der InlineAssembler von FBC annimmt.
Was macht dieses Programm?
[Bearbeiten]Das Programm macht nichts anderes als die fbc.exe binär zu öffnen und nach Text zu scannen. Dieser erkannte Text, mindestens 2 Zeichen lang, wird dann in der Datei asmtxt.txt abgespeichert. Das Ergebnis kanst du dir dann mit einem Texteditor ansehen.
Option Explicit
Dim x as ubyte Ptr
Dim i As Integer, f As Integer, flen As Integer, b As Integer
Dim text As String
f = FreeFile
Open "fbc.exe" For Binary As #f
flen = lof(f)
Dim membuff(flen-1) As UByte
Get #f, 1, membuff()
Close #f
f = FreeFile
Open "asmtxt.txt" For Output As #f
text=""
x=@membuff(0)
For i = 324000 To flen-1
b = x[ i ]
Select Case b
Case 0 To 31,34,127 To 255
If Len(text)>1 Then
Print #f, text
End if
text=""
Case 32,33,35 to 126
text=text+CHR$(b)
End Select
Next
Close #f
Print "Verdisch..."
Sleep
Ergebnisse
[Bearbeiten]byte word dword qword ptr offset void ptr byte ptr word ptr dword ptr qword ptr .byte .short .int .quad .float .double .ascii .asciz
und die Asm-Befehle komplett, "IA-32 instruction set, including MMX/SSE/SSE2" sowie "AMD x86 additions, including 3DNow!/Ext.3DNow!" zu viel um sie hier aufzuzählen. Sind auch in "fbc-v0.13b-src.zip", Datei "emit_x86.bas" aufgeführt.