Zum Inhalt springen

FreeBasic: Welche Asm-Befehle und -Optionen stecken in fbc.exe?

Aus Wikibooks

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.