⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 x86test1.cpp

📁 一个任天堂掌上游戏机NDS的源代码
💻 CPP
字号:
#include "x86.h"int main(){/*    printf("add eax,edx = "); x86::dp_reg_reg(XMOP_ADD, eax, edx);    printf("\nadd eax,[edx] = "); x86::dp_reg_mem(XMOP_ADD, eax, edx);    printf("\nadd eax,[FFFEh] = "); x86::dp_reg_mem(XMOP_ADD, eax, (u32)0x0000FFFE);    printf("\nadd eax,[edx+FFFEh] = "); x86::dp_reg_mem(XMOP_ADD, eax, edx, (u32)0x0000FFFE);    printf("\nadd eax,[ecx*8+edx+FFFEh] = "); x86::dp_reg_mem(XMOP_ADD, eax, edx, ecx, 8, (u32)0x0000FFFE);    printf("\nadd eax,[ecx+edx+FFFEh] = "); x86::dp_reg_mem(XMOP_ADD, eax, edx, ecx, 1, (u32)0x0000FFFE);    printf("\nadd [eax],0xAA55 = "); x86::dp_mem_imm(XMOP_ADD, eax, (u32)0x0000AA55);    printf("\nadd [eax+0xFFFE],0xAA55 = "); x86::dp_mem_imm(XMOP_ADD, eax, (u32)0x0000FFFE, (u32)0x0000AA55);    printf("\nadd [edx*8+esi+0xFFFE],0xAA55 = "); x86::dp_mem_imm(XMOP_ADD, esi, edx, 8, (u32)0xFFFE, (u32)0xAA55);    printf("shl eax,1 = "); x86::shft_reg_imm(XMOP_SHL, eax, 1);    printf("\nshl eax,4 = "); x86::shft_reg_imm(XMOP_SHL, eax, 4);    printf("\nshl dword [ecx*8+edx+0xFFFE],1 = "); x86::shft_memd_imm(XMOP_SHL, edx, ecx, 8, (u32)0xFFFE, 1);    printf("\nshl dword [ecx*8+edx+0xFFFE],4 = "); x86::shft_memd_imm(XMOP_SHL, edx, ecx, 8, (u32)0xFFFE, 4);    printf("\nror esi,cl = "); x86::shft_reg_reg(XMOP_ROR, esi);    printf("\nrcl dword [esi*4+eax+0xFFFE],cl = "); x86::shft_memd_reg(XMOP_RCL, eax, esi, 4, (u32)0xFFFE);*/    x86::imp(XOP_CLI);    printf("\n"); x86::dp_reg_reg(XMOP_XOR, eax, eax);    printf("\n"); x86::MOV_seg_reg(ss, ax);    printf("\n"); x86::MOV_reg_imm(esp, (u32)0xFFF0);    printf("\n"); x86::imp(XOP_STI);    printf("\n"); x86::MOV_seg_reg(es, ax);    printf("\n"); x86::MOV_seg_reg(ds, ax);     printf("\n"); x86::MOV_reg_imm(esi, (u32)0x7C00);    printf("\n"); x86::MOV_reg_imm(edi, (u32)0xE000);    printf("\n"); x86::imp(XOP_CLD);    printf("\n"); x86::MOV_reg_imm(ecx, (u32)0x0100);    printf("\n"); x86::emit8(PREFIX_REPNE); x86::imp(XOP_MOVSD);    printf("\n"); x86::JMP(0,0xE01E);    printf("\n"); x86::emit8(PREFIX_OP); x86::dp_reg_reg(XMOP_XOR, eax, eax);    printf("\n"); x86::emit8(PREFIX_OP); x86::MOV_mem_reg(0xE191, eax);    printf("\n"); x86::MOV_mem_reg(0xE195, al);    printf("\n"); x86::MOV_reg_imm(ah, 0x41);    printf("\n"); x86::MOV_reg_imm(ebx, 0x55AA);    printf("\n"); x86::INT(0x13);    printf("\n"); x86::Jcc(CC_C, 0x0E);    printf("\n"); x86::dp_reg_imm(XMOP_CMP, ebx, (u32)0xAA55);    printf("\n"); x86::Jcc(CC_NZ, 0x08);    printf("\n"); //test cl,1    printf("\n"); //setnz [E195h]    printf("\n"); x86::MOV_reg_imm(al, 1);    printf("\n"); x86::dp_reg_reg(XMOP_XOR, ebx, ebx);    printf("\n"); x86::MOV_seg_reg(es, bx);    printf("\n"); x86::MOV_reg_imm(ebx, (u32)0x1000);    printf("\n"); x86::MOV_reg_reg(esi, ebx);    printf("\n"); x86::MOV_mem_imm(esi, (u32)0x0);    printf("\n"); x86::MOV_mem_imm(esi, (u8)2, (u32)0x1);    printf("\n"); x86::CALL(0x00B2);    printf("\n"); x86::Jcc(CC_C, 0x08);    printf("\n"); x86::MOV_reg_imm(edi, 0x11BE);    printf("\n"); x86::MOV_reg_imm(ah, 0);    printf("\n"); x86::CALL(0x000F);    printf("\n"); //inc dl    printf("\n"); //test dl,4    printf("\n"); x86::Jcc(CC_Z, 0xAF);    printf("\n"); x86::MOV_reg_imm(esi, 0xE17B);    printf("\n"); x86::CALL(0x00F6);    printf("\n"); x86::JMP((u8)0xFE);    printf("\n"); x86::PUSH(ecx);    printf("\n"); x86::PUSH(esi);     printf("\n"); x86::dp_mem_imm(XMOP_CMP, edi, (u8)0x40, (u32)0xAA55);    printf("\n"); //jnz near 0x008B    printf("\n"); x86::MOV_reg_reg(esi, edi);    printf("\n"); x86::MOV_reg_imm(ecx, 4);    printf("\n"); x86::dp_mem_imm(XMOP_CMP, esi, (u8)4, (u8)0xAB);     printf("\n"); x86::Jcc(CC_Z, 0x0F);    printf("\n"); x86::dp_mem_imm(XMOP_CMP, esi, (u8)4, (u8)0xA8);     printf("\n"); x86::Jcc(CC_Z, 0x09);    printf("\n"); x86::dp_mem_imm(XMOP_CMP, esi, (u8)4, (u8)0xAF);     printf("\n"); x86::Jcc(CC_Z, 0x03);    printf("\n"); x86::JMP((u32)0x002B);    printf("\n"); x86::MOV_reg_imm(al, 1);    printf("\n"); x86::MOV_reg_imm(ebx, 0);    printf("\n"); x86::MOV_seg_reg(es, bx);    printf("\n"); x86::MOV_reg_imm(ebx, 0x7C00);    printf("\n"); x86::CALL(0x0067);    printf("\n"); x86::Jcc(CC_C, 0x1C);    printf("\n"); x86::dp_mem_imm(XMOP_CMP, ebx, (u32)0x01FE, (u32)0xAA55);        printf("\n");    return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -