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

运城市网站建设_网站建设公司_改版升级_seo优化

旧电脑做php网站服务器,石家庄58同城,公司网站设计 杭州 推荐,东莞网站更详细的讲解和代码调试演示过程#xff0c;请参看视频用java开发C语言编译器如果你对机器学习感兴趣#xff0c;请参看一下链接#xff1a;机器学习#xff1a;神经网络导论我们的操作系统通过增添内核接口导出机制后#xff0c;已经可以作为平台#xff0c;运行应用程序…更详细的讲解和代码调试演示过程请参看视频用java开发C语言编译器如果你对机器学习感兴趣请参看一下链接机器学习神经网络导论我们的操作系统通过增添内核接口导出机制后已经可以作为平台运行应用程序了但目前应用程序的开发有一个不足就是我们只能使用汇编语言开发应用程序用汇编语言开发程序实在太累了如果能使用C语言就好了例如当我们想要开发一个在控制台上输出一个字符的应用程序如果代码能用C语言这么写就好了(app.c)void api_putchar(int c);void main() {api_putchar(C);return;}如果上面的代码能编译成二进制文件并能通过系统加载执行那么在我们的操作系统上开发应用程序就不必要像以前那么痛苦。我们这一节要做的是研究如何使用C语言开发运行在我们系统之上的应用程序。实际上我们用C语言开发内核的步骤可以平移到开发应用程序上。我们开发内核时实际上遵循着的基本逻辑是这样的用汇编开发底层接口然后用C语言调用汇编语言导出的接口实现业务逻辑。然后把C代码编译成二进制文件接着使用objconv 工具把C语言反编译成汇编语言下一步就是把原来的用汇编开发的代码跟反编译后得到的汇编代码合二为一最后用汇编编译器把整合起来的汇编代码编译成一个统一的二进制可执行文件。我们用C语言开发应用程序也遵循上面的逻辑。首先我们用汇编语言导出内核API接口用C语言调用汇编语言导出的接口完成业务逻辑的编写接着把C语言代码编译成二进制再使用objconv反汇编最后把两个汇编语言代码合二为一统一编译成一个可执行的二进制文件。基于上面的逻辑步骤我们第一步要做的就是用汇编语言导出api_putchar函数调用的接口实现代码如下(api_call.asm)[SECTION .s32]BITS 32call mainretfapi_putchar:mov edx, 1mov al, [esp 4]int 02Dhret%include app.asm我们先看api_putchar部分前面我们讲过内核所有api都对应一个编号向控制台输出一个字符的api编号就是1要调用对应api时只要把对应编号放入寄存器edx, 同时把参数提交给指定寄存器最后调用2D号中断就可以了。在代码的前面我们首先执行语句call main, 也就直接调用main函数这意味着用C语言开发程序时主入口函数必须是main, 所有C语言开发的程序代码编译成二进制文件后然后反汇编成汇编程序反汇编后的程序文件就是app.asm,通过include指令把app.asm的代码整合到api_call.asm中来最后使用汇编编译器nasm 编译 api_call.asm 所得到的二进制文件就是用C语言开发的应用程序。因此我们通过以下步骤就可以使用C语言来开发应用程序了1 完成api_call.asm 在里面导出C语言程序所需要使用的接口2 使用C语言通过接口调用完成业务逻辑的开发例如完成前面所述的app.c3 使用命令gcc -m32 -fno-asynchronous-unwind-tables -s -c -o app.o app.c 来编译C语言代码4, 使用objconv 反汇编步骤3所得到的二进制文件 ./objconv -fnasm app.o app_u.asm5使用我们早先开发的java工具对反汇编得到的app_u.asm进行预处理去掉app_u.asm 里面一些无用的指令6使用nasm编译api_call.asm , nasm -o hlt.bat api_call.asm 得到二进制可执行文件hlt.bat7, 把hlt.bat的二进制数据加载到系统中执行便是执行了用C语言开发的应用程序。具体的操作步骤请参看视频上面的步骤是一系列步骤精简后的过程更详实的讲解和代码运行调试过程请参看视频。经过上述步骤后把得到的二进制文件加载到系统进行执行后所得结果如下这里写图片描述可见运行hlt命令后C语言开发的程序逻辑被执行字符C正确的显示到了控制台窗口里由此可见经过上述步骤我们是可以使用C语言在我们的系统内核基础上开发应用程序的。更详细的讲解还请参看视频。更多技术信息包括操作系统编译器面试算法机器学习人工智能请关照我的公众号这里写图片描述
http://www.ihoyoo.com/news/51914.html

相关文章:

  • 网站策划与建设阶段应该做什么汉中市建设工程信息价查询
  • 做印刷的有什么网站易企秀网站开发
  • 电商网站开发人员人数广告设计需要学什么
  • wordpress设置网页seo的概念是什么
  • 一定seo自己网站吗wordpress优化分析
  • html表单的完整代码外包seo服务收费标准
  • 涿鹿县建设局网站装修网站有哪些
  • 网站建设的工作人员php开源网站管理系统
  • 婚庆网站源码网站开发用php好吗
  • 方圆网通网站建设公司对外宣传推广方案
  • 给自己家的公司做网站好做吗搜索引擎优化分析
  • 我的世界充钱网站怎么做网站速度
  • 域名做违法网站wordpress程序网站
  • 网站开发设计论文有没有免费代理项目
  • 建设银行网上营业厅官方网站下载龙岩做网站开发哪家做的好
  • wordpress 做企业网站一个外国人做的汉子 网站
  • 响应式网站是做列表淘宝客网站做的好的
  • 如何把网站和域名绑定商城网站建设高端
  • 付公司网站建设费用会计分录让网站打开更快
  • 长沙手机网站首页设计公司公司网公司网页设计制作
  • 海口有哪几家是做网站的电子商务网站建设论文
  • 最新有限公司网站怎么用vps做网站
  • 上海企业网站建设公司名专业推广app团队
  • 网站用什么布局食品配送做网站需要什么功能
  • 网站开发包含的项目和分工备案备公司名跟网站名
  • 做cf网站天猫店铺怎么开店
  • 呼市做无痛人流z首大网站软件开发外包要多少钱
  • 移动端网站网络存储上做网站
  • 为女朋友做的表白网站网站成品作业
  • 京东可以做特效的网站传奇类网页游戏排行榜