asmエミュレーターの場合、ASMコードを同等の動作コードに変換するために記述しようとしています..最高のコードは、1行または2〜3行で実行できるコードであり、速度は気にしません。
私の理解から。C++ で実行した場合、MOVZX は MOV.. と同じになります。
MOV
変換。
MOV ESI,DWORD PTR [ESP+8]
のようになります
regs.d.esi = *(unsigned int *)(regs.d.esp+0x00000008);
MOVZX
変換。
MOVZX EAX,BYTE PTR DS:[EDI]
のようになります
regs.d.eax = *(unsigned char *)(regs.d.edi);
ほとんど同じことは今までと何の変化もありません。
今MOVSX
、私は単純なCコードへの変換に問題があります..上記の2つと同じようです..可能な限り移動された値の前に完全に設定されたビットを追加しようとします..のように
000000C7
になるFFFFFFC7