代码拉取完成,页面将自动刷新
#include <stdio.h>
#include "funconfig.h"
#include "util.h"
#include "register.h"
#include "instruct.h"
natives funList[]={initfunc(print)};
instruct inst[]={instructInit(jmp),
instructInit(mov),
instructInit(push),
instructInit(pop),
instructInit(add),
instructInit(sub),
instructInit(mul),
instructInit(call),
instructInit(cmp),
instructInit(div),
instructInit(load),
instructInit(store)
};
char code[1024*2]={0};
int console=0;
int main(int argc,char**argv){
int size=loadCode(argv[1],code);
int *p=(int*)code;
Register R;
R.code=code;
R.RPC=*p;
R.funList=&funList;
R.funSize=sizeof(funList)/sizeof(natives);
char opt=0;
char isRun=0;
int optSize=sizeof(inst)/sizeof(instruct);
printf("----------start------------\r\n");
while(1){
opt=code[R.RPC];
if(console==1){
printf("AX:%04X BX:%04X CX:%04X DX:%04X\r\n"
"EX:%04X BP:%04X SS:%04X SP:%04X\r\n"
"PC:%08X\r\n",R.RAX,R.RBX,R.RCX,R.RDX,R.REX,R.RBP,
R.RSS,R.RSP,R.RPC);
printf("opt:%02XH\r\n",opt);
}
isRun=0;
for(int i=0;i<optSize;i++){
if(inst[i].isRun(opt)>0){
inst[i].parseRun(&R);
isRun=1;
}
}
if(isRun==0){
break;
}
}
printf("progrom exit...\r\n");
return 0;
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。