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?
BearbeitenDas 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
Bearbeitenbyte 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.