Download Pelles C here: http://www.pellesc.se
include movbeCheck.inc
.data
m1 db 'The processor does not support the instruction movbe.',0
m2 db 'The processor supports the instruction movbe.',0
StrTable dq OFFSET m1,OFFSET m2
.code
start:
sub rsp,8+4*8
call main
invoke ExitProcess,0
main PROC PARMAREA=4*SIZEOF QWORD
LOCAL _rax:QWORD
xor rax,rax
mov _rax,rax
mov rax,1
cpuid
bt rcx,22
mov rax,_rax
adc rax,0
mov rdx,OFFSET StrTable
lea rcx,[rdx+8*rax]
invoke printf,QWORD PTR [rcx]
ret
main ENDP
END start
include movbeCheck.inc
.data
m1 db 'The processor does not support the instruction movbe.',0
m2 db 'The processor supports the instruction movbe.',0
StrTable dd OFFSET m1,OFFSET m2
.code
start:
call main
invoke ExitProcess,0
main PROC
xor eax,eax
push eax
mov eax,1
cpuid
bt ecx,22
pop eax
adc eax,0
mov edx,OFFSET StrTable
lea ecx,[edx+4*eax]
invoke printf,DWORD PTR [ecx]
ret
main ENDP
END start
C:\dev\XecronixEngine\FBIPursuit>tree /F
Folder PATH listing
Volume serial number is 73AB-A1AE
C:.
│ env_pelles32.bat
│ FBIPursuit.exe
│ FBIPursuit.geany
│ FBIPursuit.tags
│ main.c
│ project.bat
│ raylib.dll
│ RaylibWin32.ppj
│ RaylibWin32.ppx
│ RaylibWin32.tag
│ README.md
│ tags.bat
│
├───assets
│ │ scores
│ │
│ └───level1
│ astronaut12-energy-gaming-electro-trap-301124.mp3
│ astronaut12-ultimate-gaming-soundtrack-for-legends_astronaut-272122.mp3
│ astronaut12-victory-awaits-in-the-gaming-universe_astronaut-265184.mp3
│ baddie1.pdn
│ baddie1.png
│ civ1.pdn
│ civ1.png
│ click.wav
│ click_heavy.wav
│ damage.wav
│ explode.wav
│ fassounds-level-up-energetic-gaming-rock-music-251284.mp3
│ hero.png
│ hit.wav
│ hitslab-retro-retro-synthwave-gaming-music-270173.mp3
│ level.map
│ mroneilovealot-neon-overdrive-cyberpunk-gaming-edm-415723.mp3
│ sapan4-edm-gaming-music-335408.mp3
│ shot.wav
│ shots.png
│ song1.mp3
│ stereo-complete-in-dash.png
│ tiles.png
│
├───deps
│ │ MANIFEST.txt
│ │
│ ├───include
│ │ raylib.h
│ │ raymath.h
│ │ rlgl.h
│ │
│ └───lib
│ raylib.dll
│ raylib.lib
│ raylibdll.lib
│
├───output
│ actor.obj
│ actor_manager.obj
│ actor_templates.obj
│ game_sim.obj
│ gfx_manager.obj
│ high_score_sim.obj
│ main.obj
│ pause_sim.obj
│ settings_sim.obj
│ sfx_manager.obj
│ start_sim.obj
│ xx_input.obj
│
├───project_notes
│ │ game_rules.txt
│ │
│ ├───designIdeas
│ │ initialRoughEngineIdea.txt
│ │
│ └───milestones
│ milestones.txt
│ milestones_fbi_pursuit_v1_2026_02_27.md
│
└───src
│ actor.c
│ actor_manager.c
│ actor_templates.c
│ game_sim.c
│ gfx_manager.c
│ high_score_sim.c
│ pause_sim.c
│ settings_sim.c
│ sfx_manager.c
│ start_sim.c
│ xx_input.c
│
└───include
actor.h
actor_manager.h
actor_templates.h
game_sim.h
gfx_manager.h
high_score_sim.h
pause_sim.h
settings_sim.h
sfx_manager.h
start_sim.h
xx_conf.h
xx_input.h
xx_types.h
Coreinfo64.exe -fMOVBE * Supports MOVBE instructionQuote from: Pelle on March 15, 2026, 06:39:56 PMSee https://www.pellesc.se/, Download and Changes.
Of course that neglects about 1 billion device in phones . . . .ModLoad: 00000001`3f7c0000 00000001`3fb5c000 poide.exe
...
ModLoad: 000007fe`e2bc0000 000007fe`e2bec000 C:\code\PellesC14rc1\Bin\Wizards64\wininst.dll
(8964.84dc): Illegal instruction - code c000001d (first chance)
(8964.84dc): Unknown exception - code c000041d (!!! second chance !!!)
*** WARNING: Unable to verify checksum for poide.exe
*** ERROR: Symbol file could not be found. Defaulted to export symbols for poide.exe -
poide!WizScanForDependenciesA+0xe2846:
00000001`3f293d46 660f38f1442430 movbe word ptr [rsp+30h],ax ss:00000000`009eebd0=0000
ModLoad: 00000001`3f8f0000 00000001`3f935000 image00000001`3f8f0000
...
(8958.8a30): Illegal instruction - code c000001d (first chance)
(8958.8a30): Illegal instruction - code c000001d (!!! second chance !!!)
*** WARNING: Unable to verify checksum for image00000001`3f8f0000
*** ERROR: Module load completed but symbols could not be loaded for image00000001`3f8f0000
image00000001_3f8f0000+0x1984:
00000001`3f8f1984 0f38f14608 movbe dword ptr [rsi+8],eax ds:00000000`00222220=baadf00d
polib failBuilding zlib.lib.
POLIB: fatal error: An internal error occurred.
#include <intrin.h>
void __cdecl exit(int status);
int printf(const char * restrict format, ...);
#pragma comment(lib, "msvcrt.lib")
//#pragma comment(linker,"/subsystem:console,5.1")
void __cdecl mainCRTStartup(void)
{
int __cdecl main(void);
void __cdecl exit(int status);
exit(main());
}
// CPUID.(EAX=01H, ECX=0H):ECX.MOVBE[bit 22]
// EAX, EBX, ECX and EDX
// 0, 1, 2, 3
int GetCPUFeature(void)
{
int r[4]; // EAX, EBX, ECX and EDX
int rc = 0;
_cpuid(r, 0); // Highest Function Parameter and Manufacturer ID
if (r[0] != 0x500) { //
_cpuid(r, 1); // Processor Info and Feature Bits
rc = _bittest((const long int *)&r[2], 22);
}
return rc;
}
int main(void)
{
printf("CPU options: %d\n", GetCPUFeature());
exit(0);
}
Page created in 0.066 seconds with 15 queries.