当前位置: 首页 > news >正文

给周杰伦做网站深圳市建设行业门户网站

给周杰伦做网站,深圳市建设行业门户网站,赣州市南康建设局网站,电商网站设计目的1. 背景说明 Github地址#xff1a;https://github.com/ptitSeb/box86 官方推荐的视频教程#xff1a;Box86/Box64视频教程网盘 2. 程序执行主体图 Box86版本: Box86 with Dynarec v0.3.4 主函数会执行一大堆的初始化工作#xff0c;包括但不限于#xff1a;BOX上下文 …1. 背景说明 Github地址https://github.com/ptitSeb/box86 官方推荐的视频教程Box86/Box64视频教程网盘 2. 程序执行主体图 Box86版本: Box86 with Dynarec v0.3.4 主函数会执行一大堆的初始化工作包括但不限于BOX上下文 、内存部局、空间分配、x86指令模拟器、ELF文件 、依赖库文件、所有准备工作完成之后在x86模拟器中按着IP指针开始顺序解释执行代码块 3. 代码说明-main函数 /src/main.c 因为main函数代码量比较大下边是精简后的代码省略了大部分非主干流程代码这样看起来就容易很多了。 int main(int argc, const char **argv, char **env) {init_malloc_hook();init_auxval(argc, argv, environ?environ:env);.........//创建一个Box86的上下文、这个上下文将会持有着在转译时可能用到的全部信息my_context NewBox86Context(argc - nextarg);//检查并读取必须用到的环境变量信息例如LD_LIBRARY_PATH、BOX86_EMULATED_LIBS、libssl.so、BOX86_PATH 等等LoadEnvVars(my_context);.........//通过 ParseElfHeader 方法将当前要执行 ELF 文件的头信息解析出对应的 elfheader_t 结构 elfheader_t *elf_header LoadAndCheckElfHeader(f, my_context-fullpath, 1);/* 将 ELF 头信息添加到当前Box86的上下文中CalcLoadAddr(elf_header); //这个函数的作用是根据 ELF 文头信息来计算或确定一些关键的内存布局参数。包括虚拟地址vaddr、物理地址paddr、内存大小memsz、对齐align、栈大小stacksz、栈对齐stackalign、TLS线程局部存储等等*/AddElfHeader(my_context, elf_header);//根据 ELF 头部信息设置内存布局if(CalcLoadAddr(elf_header)) {printf_log(LOG_NONE, Error: reading elf header of %s\n, my_context-fullpath);free_contextargv();FreeBox86Context(my_context);FreeCollection(ld_preload);FreeElfHeader(elf_header);return -1;}//根据 ELF 头部信息和内存布局参数来为 ELF 文件的加载分配内存。if(AllocLoadElfMemory(my_context, elf_header, 1)) {printf_log(LOG_NONE, Error: loading elf %s\n, my_context-fullpath);free_contextargv();FreeBox86Context(my_context);FreeCollection(ld_preload);FreeElfHeader(elf_header);return -1;}/*设置bss段空间以及未初始化的静态和全局变量空间 CalcStackSize(my_context); //计算栈空间大小以及内存对齐方式初始值为8M空间、4Byte对齐再根据context-elfs数组值来遍历如果数组中有值大于初始值则调整为数组中的最大值, 然后用 mmap 分配空间*/my_context-brk ElfGetBrk(elf_header);.........//通过Box86的上下文配置调用internalX86Setup创建了一个X86运行的模拟器x86emu_t *emu NewX86Emu(my_context, my_context-ep, (uintptr_t)my_context-stack, my_context-stacksz, 0);// stack setup is much more complicated then just that!SetupInitialStack(emu); //设置x86模拟器初始栈SetupX86Emu(emu);//按照X86应用程序的逻辑main函数的加载过程一样 将应用程序的参数加到EAX和EBX以此来模拟X86程序的启动SetEAX(emu, my_context-argc);SetEBX(emu, (uint32_t)my_context-argv);.........//负责解析ELF文件中的符号信息并将它们分类到不同的符号表中以便于后续的符号解析和链接使用AddSymbols(my_context-maplib, GetMapSymbols(elf_header), GetWeakSymbols(elf_header), GetLocalSymbols(elf_header), elf_header);.........//负责在加载主 ELF 文件时将其信息添加到链接映射中以便动态链接器可以正确地解析符号和执行重定位。AddMainElfToLinkmap(elf_header);.........//解析 ELF 文件的动态依赖并加载相应的库if(LoadNeededLibs(elf_header, my_context-maplib, 0, 0, my_context, emu)) {printf_log(LOG_NONE, Error: loading needed libs in elf %s\n, my_context-argv[0]);FreeBox86Context(my_context);return -1;}.........//解释运行X86程序 DynaRun(emu);// Get EAXint ret GetEAX(emu);.........return ret; }4. 代码说明-xxx函数 5. 代码说明-xxx函数 6. 代码说明-xxx函数
http://www.hkea.cn/news/14397425/

相关文章:

  • 如何做贷款网站推广专业的企业进销存软件比较好
  • 网站建设犀牛云域名优化在线
  • 高端的赣州网站建设建电影网站教程
  • 做号网站吗做网站需要数据库
  • 建设网站时dreamware做网站
  • 网站设计与开发的基本步骤包括哪些?网站管理建设总结
  • 北海网站建设网络公司多用户商城系统开发
  • 珠海网站制作软件个人网站建立内容
  • 响应式网站建设精英网站色调代号
  • 东营建站长沙有什么好玩的旅游景点
  • 厦门建设管理局网站企业网络营销业务
  • 深圳建站公司哪个济南兴田德润简介vps 网站上传
  • 温州网站开发网站的制作wordpress秀恩爱
  • 网站构建的过程东莞莞城网站建设公司
  • 福州网站建设托管域名后有个wordpress
  • 分享几个x站好用的关键词荼叶公司网站模板
  • 免费网站app生成软件wordpress模版怎么上传
  • 天津做网站的网络公司asp.net 企业网站
  • 彩票网站源码下载明年做哪些网站致富
  • 怎样在网站做宣传网站怎么建设在哪里接单
  • 手机传奇手游发布网站天津建设工程信息网专家库官网
  • 为什么用开源建站系统重装没有wordpress
  • php 企业网站多少钱汕头企业免费建站
  • 外贸型网站的特点泉州官方网站
  • 深圳市网站建设哪家好一般通过少女
  • 静态网站可以做留言板网页设计代码含js
  • 商务网站开发的基本流程通信网站模板
  • 二手车网站怎么做的易迈互联网站建设怎么样
  • 网站建设合作协议书公司企业墙设计
  • 自己做的博客网站网站优化 书