I make Super sound play soulutions softwares. Many users call me "Master piece" "Grand master"
Just this technique code is very storange codes. coz, Jmp Jmp Whay?
But CPU Initialize run. Intel CPU run prepare test before official running code.
Intel admin running code?
Code: Select all
JMP ABCDE
HLT
HLT
ABCDE:
Intialize register
Code: Select all
; Rax,Rbx,Rcx,Rdx,Rsp,Rbp,Rsi,Rdi,R8,R9,R10,R11,R12,R13,R14,R15
; CR0,CR1,CR2,CR3,CR4,CR5,CR6,CR7,CR8,CR9,CR10,CR11,CR12,CR13,CR14,CR15
; DR0,DR1,DR2,DR3,DR4,DR5,DR6,DR7,DR8,DR9,DR10,DR11,DR12,DR13,DR14,DR15
; and FPU registers, etc.
Just this code
Code: Select all
JMP ABCDE
XOR Rsp, Rsp
ABCDE:
Do act from the Result.
How to make?
Select your sample.pb
output PureBasic.asm
Add intialize code
REASM PureBasic.asm , output to "Sample_XXXX.exe"
Code: Select all
; ReAsm sample code 2016/08/24 5:25
; Copyright (c) Hiroyuki Yokota
;
; Ultra low jitter programming "Startup Intialize Process"
; Rax,Rbx,Rcx,Rdx,Rsp,Rbp,Rsi,Rdi,R8,R9,R10,R11,R12,R13,R14,R15
; CR0,CR1,CR2,CR3,CR4,CR5,CR6,CR7,CR8,CR9,CR10,CR11,CR12,CR13,CR14,CR15
; DR0,DR1,DR2,DR3,DR4,DR5,DR6,DR7,DR8,DR9,DR10,DR11,DR12,DR13,DR14,DR15
; and FPU registers, etc.
;
; Improved "Image quality"
; Improved "Sound quality"
#Ver = "Ver 1.0 - 2016.8.24 build"
#File = "ReAsmSampleCode.pb"
Global exeFasm.s{1} = "" ; "!"
Macro FASM
exeFasm +
EndMacro
Global NewMap Register64.s()
Global NewMap Register32.s()
Global NewMap Register16.s()
Global NewMap Register8.s()
;
Register64("Rax") = "Rax"
Register64("Rbx") = "Rbx"
Register64("Rcx") = "Rcx"
Register64("Rdx") = "Rdx"
Register64("Rsp") = "Rsp"
Register64("Rbp") = "Rbp"
Register64("Rsi") = "Rsi"
Register64("Rdi") = "Rdi"
Register64("R8") = "R8"
Register64("R9") = "R9"
Register64("R10") = "R10"
Register64("R11") = "R11"
Register64("R12") = "R12"
Register64("R13") = "R13"
Register64("R14") = "R14"
Register64("R15") = "R15"
;
Register32("Rax") = "Eax"
Register32("Rbx") = "Ebx"
Register32("Rcx") = "Ecx"
Register32("Rdx") = "Edx"
Register32("Rsp") = "Esp"
Register32("Rbp") = "Ebp"
Register32("Rsi") = "Esi"
Register32("Rdi") = "Edi"
Register32("R8") = "R8d"
Register32("R9") = "R9d"
Register32("R10") = "R10d"
Register32("R11") = "R11d"
Register32("R12") = "R12d"
Register32("R13") = "R13d"
Register32("R14") = "R14d"
Register32("R15") = "R15d"
;
Register16("Rax") = "ax"
Register16("Rbx") = "bx"
Register16("Rcx") = "cx"
Register16("Rdx") = "dx"
Register16("Rsp") = "sp"
Register16("Rbp") = "bp"
Register16("Rsi") = "si"
Register16("Rdi") = "di"
Register16("R8") = "R8w"
Register16("R9") = "R9w"
Register16("R10") = "R10w"
Register16("R11") = "R11w"
Register16("R12") = "R12w"
Register16("R13") = "R13w"
Register16("R14") = "R14w"
Register16("R15") = "R15w"
;
Register8("Rax") = "al"
Register8("Rbx") = "bl"
Register8("Rcx") = "cl"
Register8("Rdx") = "dl"
Register8("Rsp") = "spl"
Register8("Rbp") = "bpl"
Register8("Rsi") = "sil"
Register8("Rdi") = "dil"
Register8("R8") = "R8b"
Register8("R9") = "R9b"
Register8("R10") = "R10b"
Register8("R11") = "R11b"
Register8("R12") = "R12b"
Register8("R13") = "R13b"
Register8("R14") = "R14b"
Register8("R15") = "R15b"
Global NewMap Register64A.s()
Global NewMap Register64B.s()
Global NewMap Register32A.s()
Global NewMap Register32B.s()
Global NewMap Register16A.s()
Global NewMap Register16B.s()
Global NewMap Register8A.s()
Global NewMap Register8B.s()
;
Register64A("R14") = "R14"
Register64A("R12") = "R12"
Register64A("R10") = "R10"
Register64A("R8") = "R8"
Register64A("Rbp") = "Rbp"
Register64A("Rdi") = "Rdi"
Register64A("Rbx") = "Rbx"
Register64A("Rcx") = "Rcx"
;
Register64B("R15") = "R15"
Register64B("R13") = "R13"
Register64B("R11") = "R11"
Register64B("R9") = "R9"
Register64B("Rsp") = "Rsp"
Register64B("Rsi") = "Rsi"
Register64B("Rax") = "Rax"
Register64B("Rdx") = "Rdx"
;
Register32A("R14") = "R14d"
Register32A("R12") = "R12d"
Register32A("R10") = "R10d"
Register32A("R8") = "R8d"
Register32A("Rbp") = "Ebp"
Register32A("Rdi") = "Edi"
Register32A("Rbx") = "Ebx"
Register32A("Rcx") = "Ecx"
;
Register32B("R15") = "R15d"
Register32B("R13") = "R13d"
Register32B("R11") = "R11d"
Register32B("R9") = "R9d"
Register32B("Rsp") = "Esp"
Register32B("Rsi") = "Esi"
Register32B("Rax") = "Eax"
Register32B("Rdx") = "Edx"
;
Register16A("R14") = "R14w"
Register16A("R12") = "R12w"
Register16A("R10") = "R10w"
Register16A("R8") = "R8w"
Register16A("Rbp") = "bp"
Register16A("Rdi") = "di"
Register16A("Rbx") = "bx"
Register16A("Rcx") = "cx"
;
Register16B("R15") = "R15w"
Register16B("R13") = "R13w"
Register16B("R11") = "R11w"
Register16B("R9") = "R9w"
Register16B("Rsp") = "sp"
Register16B("Rsi") = "si"
Register16B("Rax") = "ax"
Register16B("Rdx") = "dx"
;
Register8A("R14") = "R14b"
Register8A("R12") = "R12b"
Register8A("R10") = "R10b"
Register8A("R8") = "R8b"
Register8A("Rbp") = "bpl"
Register8A("Rdi") = "dil"
Register8A("Rbx") = "bl"
Register8A("Rcx") = "cl"
;
Register8B("R15") = "R15b"
Register8B("R13") = "R13b"
Register8B("R11") = "R11b"
Register8B("R9") = "R9b"
Register8B("Rsp") = "spl"
Register8B("Rsi") = "sil"
Register8B("Rax") = "al"
Register8B("Rdx") = "dl"
;;
Global NewMap FPU_A.s()
;
FPU_A("0") = "ST0"
FPU_A("2") = "ST2"
FPU_A("4") = "ST4"
FPU_A("6") = "ST6"
;
Global NewMap FPU_B.s()
;
FPU_B("1") = "ST1"
FPU_B("3") = "ST3"
FPU_B("5") = "ST5"
FPU_B("7") = "ST7"
;
Global NewList Buffer.s()
ClearList(Buffer())
Procedure JMPskipRegisterClear(start.i, cycle.i)
Protected pos.i
For pos=start To start+(cycle-1)
AddElement(Buffer()) : Buffer() = FASM "JMP JMPskipRegisterClear"+Str(pos)
AddElement(Buffer()) : Buffer() = FASM "JMPskipRegisterClear_CLD"+Str(pos)+":"
AddElement(Buffer()) : Buffer() = FASM "CLC"
AddElement(Buffer()) : Buffer() = FASM "STC"
AddElement(Buffer()) : Buffer() = FASM "STC"
AddElement(Buffer()) : Buffer() = FASM "STC"
AddElement(Buffer()) : Buffer() = FASM "CLC"
AddElement(Buffer()) : Buffer() = FASM "CLD"
AddElement(Buffer()) : Buffer() = FASM "STD"
AddElement(Buffer()) : Buffer() = FASM "STD"
AddElement(Buffer()) : Buffer() = FASM "STD"
AddElement(Buffer()) : Buffer() = FASM "CLD"
AddElement(Buffer()) : Buffer() = FASM "CLI"
AddElement(Buffer()) : Buffer() = FASM "STI"
AddElement(Buffer()) : Buffer() = FASM "STI"
AddElement(Buffer()) : Buffer() = FASM "STI"
AddElement(Buffer()) : Buffer() = FASM "CLI"
AddElement(Buffer()) : Buffer() = FASM "CLAC"
AddElement(Buffer()) : Buffer() = FASM "STAC"
AddElement(Buffer()) : Buffer() = FASM "STAC"
AddElement(Buffer()) : Buffer() = FASM "STAC"
AddElement(Buffer()) : Buffer() = FASM "CLAC"
AddElement(Buffer()) : Buffer() = FASM "INT 8"
AddElement(Buffer()) : Buffer() = FASM "CLTS"
AddElement(Buffer()) : Buffer() = FASM "JMP JMPskipRegisterClear_CLD"+Str(pos)
ResetMap(Register64A()) : ResetMap(Register32A()) : ResetMap(Register16A()) : ResetMap(Register8A())
ForEach Register64A()
NextMapElement(Register8A())
AddElement(Buffer()) : Buffer() = FASM "XOR "+Register64A()+", "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "XOR "+Register8A()+", "+Register8A()
Next
ResetMap(Register8A())
ForEach Register64A()
NextMapElement(Register8A())
AddElement(Buffer()) : Buffer() = FASM "XOR "+Register64A()+", "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "XOR "+Register8A()+", "+Register8A()
Next
ResetMap(Register8A())
ForEach Register64A()
NextMapElement(Register8A())
AddElement(Buffer()) : Buffer() = FASM "XCHG "+Register64A()+", "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "XCHG "+Register8A()+", "+Register8A()
Next
ResetMap(Register8A())
ForEach Register64A()
NextMapElement(Register8A())
AddElement(Buffer()) : Buffer() = FASM "AND "+Register64A()+", "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "AND "+Register8A()+", "+Register8A()
Next
ResetMap(Register8A())
ForEach Register64A()
NextMapElement(Register8A())
AddElement(Buffer()) : Buffer() = FASM "OR "+Register64A()+", "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "OR "+Register8A()+", "+Register8A()
Next
ResetMap(Register8A())
ForEach Register64A()
NextMapElement(Register8A())
AddElement(Buffer()) : Buffer() = FASM "OR "+Register64A()+", "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "OR "+Register8A()+", "+Register8A()
Next
ResetMap(Register8A())
ForEach Register64A()
NextMapElement(Register8A())
AddElement(Buffer()) : Buffer() = FASM "XOR "+Register64A()+", "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "XOR "+Register8A()+", "+Register8A()
Next
ResetMap(Register64B()) : ResetMap(Register32B()) : ResetMap(Register16B()) : ResetMap(Register8B())
ForEach Register64B()
NextMapElement(Register8B())
AddElement(Buffer()) : Buffer() = FASM "XOR "+Register64B()+", "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "XOR "+Register8B()+", "+Register8B()
Next
ResetMap(Register8B())
ForEach Register64B()
NextMapElement(Register8B())
AddElement(Buffer()) : Buffer() = FASM "XOR "+Register64B()+", "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "XOR "+Register8B()+", "+Register8B()
Next
ResetMap(Register8B())
ForEach Register64B()
NextMapElement(Register8B())
AddElement(Buffer()) : Buffer() = FASM "XCHG "+Register64B()+", "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "XCHG "+Register8B()+", "+Register8B()
Next
ResetMap(Register8B())
ForEach Register64B()
NextMapElement(Register8B())
AddElement(Buffer()) : Buffer() = FASM "AND "+Register64B()+", "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "AND "+Register8B()+", "+Register8B()
Next
ResetMap(Register8B())
ForEach Register64B()
NextMapElement(Register8B())
AddElement(Buffer()) : Buffer() = FASM "OR "+Register64B()+", "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "OR "+Register8B()+", "+Register8B()
Next
ResetMap(Register8B())
ForEach Register64B()
NextMapElement(Register8B())
AddElement(Buffer()) : Buffer() = FASM "OR "+Register64B()+", "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "OR "+Register8B()+", "+Register8B()
Next
ResetMap(Register8B())
ForEach Register64B()
NextMapElement(Register8B())
AddElement(Buffer()) : Buffer() = FASM "XOR "+Register64B()+", "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "XOR "+Register8B()+", "+Register8B()
Next
AddElement(Buffer()) : Buffer() = FASM "JMPskipRegisterClear"+Str(pos)+":"
Next
EndProcedure
Procedure CDRegisterClear(start.i, cycle.i)
Protected pos.i, pos2.i
For pos=start To start+(cycle-1)
AddElement(Buffer()) : Buffer() = FASM "JMP CDRegisterClear_2nd"+Str(pos)
AddElement(Buffer()) : Buffer() = FASM "CDRegisterClear_CLD"+Str(pos)+":"
AddElement(Buffer()) : Buffer() = FASM "CLC"
AddElement(Buffer()) : Buffer() = FASM "STC"
AddElement(Buffer()) : Buffer() = FASM "STC"
AddElement(Buffer()) : Buffer() = FASM "STC"
AddElement(Buffer()) : Buffer() = FASM "CLC"
AddElement(Buffer()) : Buffer() = FASM "CLD"
AddElement(Buffer()) : Buffer() = FASM "STD"
AddElement(Buffer()) : Buffer() = FASM "STD"
AddElement(Buffer()) : Buffer() = FASM "STD"
AddElement(Buffer()) : Buffer() = FASM "CLD"
AddElement(Buffer()) : Buffer() = FASM "CLI"
AddElement(Buffer()) : Buffer() = FASM "STI"
AddElement(Buffer()) : Buffer() = FASM "STI"
AddElement(Buffer()) : Buffer() = FASM "STI"
AddElement(Buffer()) : Buffer() = FASM "CLI"
AddElement(Buffer()) : Buffer() = FASM "CLAC"
AddElement(Buffer()) : Buffer() = FASM "STAC"
AddElement(Buffer()) : Buffer() = FASM "STAC"
AddElement(Buffer()) : Buffer() = FASM "STAC"
AddElement(Buffer()) : Buffer() = FASM "CLAC"
AddElement(Buffer()) : Buffer() = FASM "INT 8"
AddElement(Buffer()) : Buffer() = FASM "CLTS"
AddElement(Buffer()) : Buffer() = FASM "JMP CDRegisterClear_CLD"+Str(pos)
ForEach Register64A()
AddElement(Buffer()) : Buffer() = FASM "XOR "+Register64A()+", "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "XOR "+Register64A()+", "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "AND "+Register64A()+", "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "AND "+Register64A()+", "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "OR "+Register64A()+", "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "OR "+Register64A()+", "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "XOR "+Register64A()+", "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "XOR "+Register64A()+", "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "NOT "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "NOT "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "NOT "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "NOT "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "NOT "+Register64A()
For pos2 = 1 To 5
AddElement(Buffer()) : Buffer() = FASM "MOV CR0, "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "MOV CR1, "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "MOV CR2, "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "MOV CR3, "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "MOV CR4, "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "MOV CR5, "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "MOV CR6, "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "MOV CR7, "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "MOV CR8, "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "MOV CR9, "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "MOV CR10, "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "MOV CR11, "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "MOV CR12, "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "MOV CR13, "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "MOV CR14, "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "MOV CR15, "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "MOV DR0, "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "MOV DR1, "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "MOV DR2, "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "MOV DR3, "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "MOV DR4, "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "MOV DR5, "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "MOV DR6, "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "MOV DR7, "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "MOV DR8, "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "MOV DR9, "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "MOV DR10, "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "MOV DR11, "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "MOV DR12, "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "MOV DR13, "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "MOV DR14, "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "MOV DR15, "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "NOT "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "NOT "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "NOT "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "NOT "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "NOT "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "MOV CR0, "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "MOV CR1, "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "MOV CR2, "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "MOV CR3, "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "MOV CR4, "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "MOV CR5, "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "MOV CR6, "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "MOV CR7, "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "MOV CR8, "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "MOV CR9, "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "MOV CR10, "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "MOV CR11, "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "MOV CR12, "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "MOV CR13, "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "MOV CR14, "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "MOV CR15, "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "MOV DR0, "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "MOV DR1, "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "MOV DR2, "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "MOV DR3, "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "MOV DR4, "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "MOV DR5, "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "MOV DR6, "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "MOV DR7, "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "MOV DR8, "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "MOV DR9, "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "MOV DR10, "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "MOV DR11, "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "MOV DR12, "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "MOV DR13, "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "MOV DR14, "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "MOV DR15, "+Register64A()
Next
Next
ForEach Register64B()
AddElement(Buffer()) : Buffer() = FASM "XOR "+Register64B()+", "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "XOR "+Register64B()+", "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "AND "+Register64B()+", "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "AND "+Register64B()+", "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "OR "+Register64B()+", "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "OR "+Register64B()+", "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "XOR "+Register64B()+", "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "XOR "+Register64B()+", "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "NOT "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "NOT "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "NOT "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "NOT "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "NOT "+Register64B()
For pos2 = 1 To 5
AddElement(Buffer()) : Buffer() = FASM "MOV CR0, "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "MOV CR1, "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "MOV CR2, "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "MOV CR3, "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "MOV CR4, "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "MOV CR5, "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "MOV CR6, "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "MOV CR7, "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "MOV CR8, "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "MOV CR9, "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "MOV CR10, "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "MOV CR11, "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "MOV CR12, "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "MOV CR13, "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "MOV CR14, "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "MOV CR15, "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "MOV DR0, "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "MOV DR1, "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "MOV DR2, "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "MOV DR3, "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "MOV DR4, "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "MOV DR5, "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "MOV DR6, "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "MOV DR7, "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "MOV DR8, "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "MOV DR9, "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "MOV DR10, "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "MOV DR11, "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "MOV DR12, "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "MOV DR13, "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "MOV DR14, "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "MOV DR15, "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "NOT "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "NOT "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "NOT "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "NOT "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "NOT "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "MOV CR0, "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "MOV CR1, "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "MOV CR2, "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "MOV CR3, "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "MOV CR4, "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "MOV CR5, "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "MOV CR6, "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "MOV CR7, "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "MOV CR8, "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "MOV CR9, "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "MOV CR10, "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "MOV CR11, "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "MOV CR12, "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "MOV CR13, "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "MOV CR14, "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "MOV CR15, "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "MOV DR0, "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "MOV DR1, "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "MOV DR2, "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "MOV DR3, "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "MOV DR4, "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "MOV DR5, "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "MOV DR6, "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "MOV DR7, "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "MOV DR8, "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "MOV DR9, "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "MOV DR10, "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "MOV DR11, "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "MOV DR12, "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "MOV DR13, "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "MOV DR14, "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "MOV DR15, "+Register64B()
Next
Next
AddElement(Buffer()) : Buffer() = FASM "CDRegisterClear_2nd"+Str(pos)+":"
AddElement(Buffer()) : Buffer() = FASM "JMP CDRegisterClear"+Str(pos)
ForEach Register16A()
AddElement(Buffer()) : Buffer() = FASM "HLT"
AddElement(Buffer()) : Buffer() = FASM "NOT "+Register16A()
AddElement(Buffer()) : Buffer() = FASM "NOT "+Register16A()
AddElement(Buffer()) : Buffer() = FASM "NOT "+Register16A()
AddElement(Buffer()) : Buffer() = FASM "NOT "+Register16A()
AddElement(Buffer()) : Buffer() = FASM "NOT "+Register16A()
AddElement(Buffer()) : Buffer() = FASM "MOV ES, "+Register16A()
AddElement(Buffer()) : Buffer() = FASM "MOV ES, "+Register16A()
AddElement(Buffer()) : Buffer() = FASM "MOV SS, "+Register16A()
AddElement(Buffer()) : Buffer() = FASM "MOV SS, "+Register16A()
AddElement(Buffer()) : Buffer() = FASM "MOV DS, "+Register16A()
AddElement(Buffer()) : Buffer() = FASM "MOV DS, "+Register16A()
AddElement(Buffer()) : Buffer() = FASM "MOV FS, "+Register16A()
AddElement(Buffer()) : Buffer() = FASM "MOV FS, "+Register16A()
AddElement(Buffer()) : Buffer() = FASM "MOV GS, "+Register16A()
AddElement(Buffer()) : Buffer() = FASM "MOV GS, "+Register16A()
AddElement(Buffer()) : Buffer() = FASM "LLDT "+Register16A()
AddElement(Buffer()) : Buffer() = FASM "LLDT "+Register16A()
AddElement(Buffer()) : Buffer() = FASM "HLT"
AddElement(Buffer()) : Buffer() = FASM "NOT "+Register16A()
AddElement(Buffer()) : Buffer() = FASM "NOT "+Register16A()
AddElement(Buffer()) : Buffer() = FASM "NOT "+Register16A()
AddElement(Buffer()) : Buffer() = FASM "NOT "+Register16A()
AddElement(Buffer()) : Buffer() = FASM "NOT "+Register16A()
AddElement(Buffer()) : Buffer() = FASM "MOV ES, "+Register16A()
AddElement(Buffer()) : Buffer() = FASM "MOV ES, "+Register16A()
AddElement(Buffer()) : Buffer() = FASM "MOV SS, "+Register16A()
AddElement(Buffer()) : Buffer() = FASM "MOV SS, "+Register16A()
AddElement(Buffer()) : Buffer() = FASM "MOV DS, "+Register16A()
AddElement(Buffer()) : Buffer() = FASM "MOV DS, "+Register16A()
AddElement(Buffer()) : Buffer() = FASM "MOV FS, "+Register16A()
AddElement(Buffer()) : Buffer() = FASM "MOV FS, "+Register16A()
AddElement(Buffer()) : Buffer() = FASM "MOV GS, "+Register16A()
AddElement(Buffer()) : Buffer() = FASM "MOV GS, "+Register16A()
AddElement(Buffer()) : Buffer() = FASM "LLDT "+Register16A()
AddElement(Buffer()) : Buffer() = FASM "LLDT "+Register16A()
Next
ForEach Register16B()
AddElement(Buffer()) : Buffer() = FASM "HLT"
AddElement(Buffer()) : Buffer() = FASM "NOT "+Register16B()
AddElement(Buffer()) : Buffer() = FASM "NOT "+Register16B()
AddElement(Buffer()) : Buffer() = FASM "NOT "+Register16B()
AddElement(Buffer()) : Buffer() = FASM "NOT "+Register16B()
AddElement(Buffer()) : Buffer() = FASM "NOT "+Register16B()
AddElement(Buffer()) : Buffer() = FASM "MOV ES, "+Register16B()
AddElement(Buffer()) : Buffer() = FASM "MOV ES, "+Register16B()
AddElement(Buffer()) : Buffer() = FASM "MOV SS, "+Register16B()
AddElement(Buffer()) : Buffer() = FASM "MOV SS, "+Register16B()
AddElement(Buffer()) : Buffer() = FASM "MOV DS, "+Register16B()
AddElement(Buffer()) : Buffer() = FASM "MOV DS, "+Register16B()
AddElement(Buffer()) : Buffer() = FASM "MOV FS, "+Register16B()
AddElement(Buffer()) : Buffer() = FASM "MOV FS, "+Register16B()
AddElement(Buffer()) : Buffer() = FASM "MOV GS, "+Register16B()
AddElement(Buffer()) : Buffer() = FASM "MOV GS, "+Register16B()
AddElement(Buffer()) : Buffer() = FASM "LLDT "+Register16B()
AddElement(Buffer()) : Buffer() = FASM "LLDT "+Register16B()
AddElement(Buffer()) : Buffer() = FASM "HLT"
AddElement(Buffer()) : Buffer() = FASM "NOT "+Register16B()
AddElement(Buffer()) : Buffer() = FASM "NOT "+Register16B()
AddElement(Buffer()) : Buffer() = FASM "NOT "+Register16B()
AddElement(Buffer()) : Buffer() = FASM "NOT "+Register16B()
AddElement(Buffer()) : Buffer() = FASM "NOT "+Register16B()
AddElement(Buffer()) : Buffer() = FASM "MOV ES, "+Register16B()
AddElement(Buffer()) : Buffer() = FASM "MOV ES, "+Register16B()
AddElement(Buffer()) : Buffer() = FASM "MOV SS, "+Register16B()
AddElement(Buffer()) : Buffer() = FASM "MOV SS, "+Register16B()
AddElement(Buffer()) : Buffer() = FASM "MOV DS, "+Register16B()
AddElement(Buffer()) : Buffer() = FASM "MOV DS, "+Register16B()
AddElement(Buffer()) : Buffer() = FASM "MOV FS, "+Register16B()
AddElement(Buffer()) : Buffer() = FASM "MOV FS, "+Register16B()
AddElement(Buffer()) : Buffer() = FASM "MOV GS, "+Register16B()
AddElement(Buffer()) : Buffer() = FASM "MOV GS, "+Register16B()
AddElement(Buffer()) : Buffer() = FASM "LLDT "+Register16B()
AddElement(Buffer()) : Buffer() = FASM "LLDT "+Register16B()
Next
AddElement(Buffer()) : Buffer() = FASM "NOT AH"
AddElement(Buffer()) : Buffer() = FASM "NOT AH"
AddElement(Buffer()) : Buffer() = FASM "NOT AH"
AddElement(Buffer()) : Buffer() = FASM "XCHG AH, AH"
AddElement(Buffer()) : Buffer() = FASM "SAHF"
AddElement(Buffer()) : Buffer() = FASM "SAHF"
AddElement(Buffer()) : Buffer() = FASM "NOT AH"
AddElement(Buffer()) : Buffer() = FASM "NOT AH"
AddElement(Buffer()) : Buffer() = FASM "NOT AH"
AddElement(Buffer()) : Buffer() = FASM "XCHG AH, AH"
AddElement(Buffer()) : Buffer() = FASM "SAHF"
AddElement(Buffer()) : Buffer() = FASM "SAHF"
AddElement(Buffer()) : Buffer() = FASM "NOT AH"
AddElement(Buffer()) : Buffer() = FASM "NOT AH"
AddElement(Buffer()) : Buffer() = FASM "NOT AH"
AddElement(Buffer()) : Buffer() = FASM "XCHG AH, AH"
AddElement(Buffer()) : Buffer() = FASM "SAHF"
AddElement(Buffer()) : Buffer() = FASM "SAHF"
AddElement(Buffer()) : Buffer() = FASM "NOT AH"
AddElement(Buffer()) : Buffer() = FASM "NOT AH"
AddElement(Buffer()) : Buffer() = FASM "NOT AH"
AddElement(Buffer()) : Buffer() = FASM "XCHG AH, AH"
AddElement(Buffer()) : Buffer() = FASM "SAHF"
AddElement(Buffer()) : Buffer() = FASM "SAHF"
AddElement(Buffer()) : Buffer() = FASM "CDRegisterClear"+Str(pos)+":"
Next
EndProcedure
Procedure Startup_Magic_Ace(start.i, cycle.i)
Protected pos.i
For pos=start To start+(cycle-1)
AddElement(Buffer()) : Buffer() = FASM "JMP Startup_Magic_Ace"+Str(pos)
ResetMap(Register64A()) : ResetMap(Register32A()) : ResetMap(Register16A()) : ResetMap(Register8A())
ForEach Register64A()
Debug Register64A()
NextMapElement(Register32A()) : NextMapElement(Register16A()) : NextMapElement(Register8A())
AddElement(Buffer()) : Buffer() = FASM "MOV "+Register16A()+", "+Register16A()
AddElement(Buffer()) : Buffer() = FASM "NOT "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "NOT "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "AND "+Register64A()+", "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "OR "+Register64A()+", "+Register64A()
AddElement(Buffer()) : Buffer() = FASM "NOT "+Register32A()
AddElement(Buffer()) : Buffer() = FASM "NOT "+Register32A()
AddElement(Buffer()) : Buffer() = FASM "AND "+Register32A()+", "+Register32A()
AddElement(Buffer()) : Buffer() = FASM "OR "+Register32A()+", "+Register32A()
AddElement(Buffer()) : Buffer() = FASM "NOT "+Register16A()
AddElement(Buffer()) : Buffer() = FASM "ADD "+Register16A()+", 0"
AddElement(Buffer()) : Buffer() = FASM "SUB "+Register16A()+", 0"
AddElement(Buffer()) : Buffer() = FASM "NOT "+Register16A()
AddElement(Buffer()) : Buffer() = FASM "AND "+Register16A()+", "+Register16A()
AddElement(Buffer()) : Buffer() = FASM "OR "+Register16A()+", "+Register16A()
AddElement(Buffer()) : Buffer() = FASM "XCHG "+Register16A()+", "+Register16A()
Next
ResetMap(Register64B()) : ResetMap(Register32B()) : ResetMap(Register16B()) : ResetMap(Register8B())
ForEach Register64B()
NextMapElement(Register32B()) : NextMapElement(Register16B()) : NextMapElement(Register8B())
AddElement(Buffer()) : Buffer() = FASM "MOV "+Register16B()+", "+Register16B()
AddElement(Buffer()) : Buffer() = FASM "NOT "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "NOT "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "AND "+Register64B()+", "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "OR "+Register64B()+", "+Register64B()
AddElement(Buffer()) : Buffer() = FASM "NOT "+Register32B()
AddElement(Buffer()) : Buffer() = FASM "NOT "+Register32B()
AddElement(Buffer()) : Buffer() = FASM "AND "+Register32B()+", "+Register32B()
AddElement(Buffer()) : Buffer() = FASM "OR "+Register32B()+", "+Register32B()
AddElement(Buffer()) : Buffer() = FASM "NOT "+Register16B()
AddElement(Buffer()) : Buffer() = FASM "ADD "+Register16B()+", 0"
AddElement(Buffer()) : Buffer() = FASM "SUB "+Register16B()+", 0"
AddElement(Buffer()) : Buffer() = FASM "NOT "+Register16B()
AddElement(Buffer()) : Buffer() = FASM "AND "+Register16B()+", "+Register16B()
AddElement(Buffer()) : Buffer() = FASM "OR "+Register16B()+", "+Register16B()
AddElement(Buffer()) : Buffer() = FASM "XCHG "+Register16B()+", "+Register16B()
Next
AddElement(Buffer()) : Buffer() = FASM "Startup_Magic_Ace"+Str(pos)+":"
Next
EndProcedure
Procedure CuresFPU_BasicClear(start.i, cycle.i)
Protected pos.i
For pos=start To start+(cycle-1)
AddElement(Buffer()) : Buffer() = FASM "JMP CuresFPU_BasicClear1_"+Str(pos)
AddElement(Buffer()) : Buffer() = FASM "HLT"
AddElement(Buffer()) : Buffer() = FASM "RET"
ForEach FPU_A()
AddElement(Buffer()) : Buffer() = FASM "FFREE "+FPU_A()
AddElement(Buffer()) : Buffer() = FASM "FFREE "+FPU_A()
AddElement(Buffer()) : Buffer() = FASM "FFREE "+FPU_A()
AddElement(Buffer()) : Buffer() = FASM "FXCH "+FPU_A()
AddElement(Buffer()) : Buffer() = FASM "FFREE "+FPU_A()
AddElement(Buffer()) : Buffer() = FASM "FFREE "+FPU_A()
AddElement(Buffer()) : Buffer() = FASM "FFREE "+FPU_A()
Next
ForEach FPU_B()
AddElement(Buffer()) : Buffer() = FASM "FFREE "+FPU_B()
AddElement(Buffer()) : Buffer() = FASM "FFREE "+FPU_B()
AddElement(Buffer()) : Buffer() = FASM "FFREE "+FPU_B()
AddElement(Buffer()) : Buffer() = FASM "FXCH "+FPU_B()
AddElement(Buffer()) : Buffer() = FASM "FFREE "+FPU_B()
AddElement(Buffer()) : Buffer() = FASM "FFREE "+FPU_B()
AddElement(Buffer()) : Buffer() = FASM "FFREE "+FPU_B()
Next
AddElement(Buffer()) : Buffer() = FASM "FNCLEX"
AddElement(Buffer()) : Buffer() = FASM "FNCLEX"
AddElement(Buffer()) : Buffer() = FASM "FNCLEX"
AddElement(Buffer()) : Buffer() = FASM "FNINIT"
AddElement(Buffer()) : Buffer() = FASM "FNINIT"
AddElement(Buffer()) : Buffer() = FASM "FNINIT"
AddElement(Buffer()) : Buffer() = FASM "CuresFPU_BasicClear1_"+Str(pos)+":"
AddElement(Buffer()) : Buffer() = FASM "JMP CuresFPU_BasicClear2_"+Str(pos)
AddElement(Buffer()) : Buffer() = FASM "HLT"
AddElement(Buffer()) : Buffer() = FASM "RET"
ForEach FPU_A()
AddElement(Buffer()) : Buffer() = FASM "FFREE "+FPU_A()
AddElement(Buffer()) : Buffer() = FASM "FFREE "+FPU_A()
AddElement(Buffer()) : Buffer() = FASM "FFREE "+FPU_A()
AddElement(Buffer()) : Buffer() = FASM "FXCH "+FPU_A()
AddElement(Buffer()) : Buffer() = FASM "FFREE "+FPU_A()
AddElement(Buffer()) : Buffer() = FASM "FFREE "+FPU_A()
AddElement(Buffer()) : Buffer() = FASM "FFREE "+FPU_A()
Next
ForEach FPU_B()
AddElement(Buffer()) : Buffer() = FASM "FFREE "+FPU_B()
AddElement(Buffer()) : Buffer() = FASM "FFREE "+FPU_B()
AddElement(Buffer()) : Buffer() = FASM "FFREE "+FPU_B()
AddElement(Buffer()) : Buffer() = FASM "FXCH "+FPU_B()
AddElement(Buffer()) : Buffer() = FASM "FFREE "+FPU_B()
AddElement(Buffer()) : Buffer() = FASM "FFREE "+FPU_B()
AddElement(Buffer()) : Buffer() = FASM "FFREE "+FPU_B()
Next
AddElement(Buffer()) : Buffer() = FASM "FCLEX"
AddElement(Buffer()) : Buffer() = FASM "FCLEX"
AddElement(Buffer()) : Buffer() = FASM "FCLEX"
AddElement(Buffer()) : Buffer() = FASM "FINIT"
AddElement(Buffer()) : Buffer() = FASM "FINIT"
AddElement(Buffer()) : Buffer() = FASM "FINIT"
AddElement(Buffer()) : Buffer() = FASM "CuresFPU_BasicClear2_"+Str(pos)+":"
Next
EndProcedure
Global dir$, Compiler.i, file$
file$=OpenFileRequester("PB", "*.pb", "*.pb", 0)
dir$ = GetPathPart(file$)
DeleteFile(dir$+"PureBasic.asm")
If FileSize(file$)>0
Compiler = RunProgram(#PB_Compiler_Home+"\Compilers\pbcompiler", Chr(34)+file$+Chr(34)+" /MMX /commented", dir$, #PB_Program_Open | #PB_Program_Read)
dir$+"PureBasic.asm"
Output$ = ""
If Compiler
While ProgramRunning(Compiler)
If AvailableProgramOutput(Compiler)
Output$ + ReadProgramString(Compiler) + Chr(13)
EndIf
Wend
Output$ + Chr(13) + Chr(13)
Output$ + "Exitcode: " + Str(ProgramExitCode(Compiler))
CloseProgram(Compiler)
If IsProgram(Compiler)
KillProgram(Compiler)
EndIf
EndIf
Else
MessageRequester("Error!", "There was an error creating the assembly code file.")
EndIf
MessageRequester("REASM", "Add Initialize code in front of PureBasicStart:")
ClearList(Buffer())
exeFasm = ""
Global callpb.i
If ReadFile(2, dir$)
While Eof(2)=0
AddElement(Buffer())
Buffer() = ReadString(2)
Wend
CloseFile(2)
EndIf
ForEach Buffer()
If FindString(Buffer(), "PureBasicStart:")
Break
EndIf
Next
AddElement(Buffer())
Buffer() = "StartDashPointer0000_0000_00:"
AddElement(Buffer())
Buffer() = "JMP StartDashPointer0000"
AddElement(Buffer())
Buffer() = "NOP"
AddElement(Buffer())
Buffer() = "HLT"
AddElement(Buffer())
Buffer() = "HLT"
AddElement(Buffer())
Buffer() = "HLT"
AddElement(Buffer())
Buffer() = "WAIT"
AddElement(Buffer())
Buffer() = "JMP StartDashPointer0000_0000_00"
AddElement(Buffer())
Buffer() = "StartDashPointer0000:"
AddElement(Buffer())
Buffer() = "JMP StartDashPointer0000_002"
AddElement(Buffer())
Buffer() = "HLT"
AddElement(Buffer())
Buffer() = "HLT"
AddElement(Buffer())
Buffer() = "HLT"
AddElement(Buffer())
Buffer() = "RET"
AddElement(Buffer())
Buffer() = "StartDashPointer0000_002:"
For nn=1 To 4
AddElement(Buffer())
Buffer() = "JMP StartDashPointer"+Str(nn)
AddElement(Buffer())
Buffer() = "NOP"
AddElement(Buffer())
Buffer() = "NOP"
AddElement(Buffer())
Buffer() = "StartDashPointer"+Str(nn)+":"
Next
JMPskipRegisterClear(10, 2)
CDRegisterClear(20, 2)
CuresFPU_BasicClear(30, 2)
Startup_Magic_Ace(40, 4)
JMPskipRegisterClear(50, 4)
AddElement(Buffer())
Buffer() = "JMP StartDashPointer_XOR_AND_Rsp_40_"
For nn=1 To 40
AddElement(Buffer())
Buffer() = "XOR Rsp, Rsp"
AddElement(Buffer())
Buffer() = "XOR Rsp, Rsp"
AddElement(Buffer())
Buffer() = "AND Rsp, Rsp"
AddElement(Buffer())
Buffer() = "AND Rsp, Rsp"
Next
AddElement(Buffer())
Buffer() = "XOR Rsp, Rsp"
AddElement(Buffer())
Buffer() = "XOR Rsp, Rsp"
AddElement(Buffer())
Buffer() = "StartDashPointer_XOR_AND_Rsp_40_:"
For nn=1 To 42
AddElement(Buffer())
Buffer() = "FNOP"
Next
CreateFile(2, dir$)
ForEach Buffer()
WriteStringN(2, Buffer())
Next
CloseFile(2)
file$ = dir$
dir$ = GetPathPart(file$)
Compiler = RunProgram(#PB_Compiler_Home+"\Compilers\pbcompiler", Chr(34)+file$+Chr(34)+" /MMX /UNICODE /REASM /EXE "+Chr(34)+"Sample_"+Str(Random(999999))+".exe"+Chr(34), dir$, #PB_Program_Open | #PB_Program_Read)
If Compiler
While ProgramRunning(Compiler)
If AvailableProgramOutput(Compiler)
Output$ + ReadProgramString(Compiler) + Chr(13)
EndIf
Wend
Output$ + Chr(13) + Chr(13)
Output$ + "Exitcode: " + Str(ProgramExitCode(Compiler))
CloseProgram(Compiler)
EndIf
MessageRequester("Output", Output$)
End