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

网站建设投资大概每年需要多少钱无锡百度网络推广

网站建设投资大概每年需要多少钱,无锡百度网络推广,电脑浏览器打不开网页,网站备案 失败21.1 攻克难题——字符串显示API 显示单个字符时#xff0c;用 [CS:ECX] 的方式特意指定了 CS#xff08;代码段寄存器#xff09;#xff0c;因此可以成功读取 msg的内容。但在显示字符串时#xff0c;由于无法指定段地址#xff0c;程序误以为是 DS而从完全错误的内存地…21.1 攻克难题——字符串显示API 显示单个字符时用 [CS:ECX] 的方式特意指定了 CS代码段寄存器因此可以成功读取 msg的内容。但在显示字符串时由于无法指定段地址程序误以为是 DS而从完全错误的内存地址中读取了内容。hrb_api并不知道代码段的起始位置位于内存的哪个地址但cmd_app应该知道因为当初设置这个代码段的正是cmd_app。 int cmd_app(struct CONSOLE *cons, int *fat, char *cmdline){(中略)if (finfo ! 0) {/* 找到了与字符串相同的文件 */p (char *) memman_alloc_4k(memman, finfo-size); /*这里*/ *((int *) 0xfe8) (int) p;file_loadfile(finfo-clustno, finfo-size, p, fat, (char *) (ADR_DISKIMG 0x003e00));set_segmdesc(gdt 1003, finfo-size - 1, (int) p, AR_CODE32_ER);farcall(0, 1003 * 8);memman_free_4k(memman, (int) p, finfo-size);cons_newline(cons);return 1;}return 0; }//根据输入参数打印数据 eax为当前字符 ebx为字符串 ecx长度 void hrb_api(int edi, int esi, int ebp, int esp, int ebx, int edx, int ecx, int eax){ /*这里*/int cs_base *((int *) 0xfe8);struct CONSOLE *cons (struct CONSOLE *) *((int *) 0x0fec);if(edx 1)cons_putchar(cons, eax0xff, 1);else if(edx 2) /*这里*/cons_putstr0(cons, (char*)ebxcs_base);else if(edx 3) /*这里*/cons_putstr1(cons, (char*)ebxcs_base, ecx);return; } 21.2 用C语言编写应用程序 按照之前章节的理解都是从汇编程序中输入了提前设定的字符才能进行打印若将其整合成一个函数当调用该函数时便可打印岂不是更方便函数api_putchar就是将输入参数c写入寄存器并调用INT 0x40该中断执行文件console.c中的hrb_api函数进行字符打印详情看20.6节。 按照文件分工hello3.c文件调用了a_nask.nas文件中的函数需要在Makefile文件中添加如下代码文件格式请参考30天自制操作系统第1-3天中的2.6节 hello3.bim : hello3.obj a_nask.obj Makefile     $(OBJ2BIM) $(RULEFILE) out:hello3.bim map:hello3.map hello3.obj a_nask.obj hello3.hrb : hello3.bim Makefile     $(BIM2HRB) hello3.bim hello3.hrb 0 /* hello3.c */ void api_putchar(int c);void HariMain(void) {api_putchar(h);api_putchar(e);api_putchar(l);api_putchar(l);api_putchar(o);return; }/* a_nask.nas */ _api_putchar: ; void api_putchar(int c);MOV EDX,1MOV AL,[ESP4] ; cINT 0x40RET 21.3 保护操作系统1 需要为应用程序提供专用的内存空间并且告诉它们 “ 别的地方不许碰哦 ”。要做到这一点可以创建应用程序专用的数据段并在应用程序运行期间将 DS 和 SS 指向该段地址。   操作系统用代码段 ……2 * 8   操作系统用数据段 ……1 * 8   应用程序用代码段 ……1003 * 8   应用程序用数据段 ……1004 * 8 int cmd_app(struct CONSOLE *cons, int *fat, char *cmdline){中略char name[18], *p, *q;中略if (finfo ! 0) {/* 找到了与字符串相同的文件 */p (char *) memman_alloc_4k(memman, finfo-size); /*这里*/q (char *) memman_alloc_4k(memman, 64*1024);*((int *) 0xfe8) (int) p;file_loadfile(finfo-clustno, finfo-size, p, fat, (char *) (ADR_DISKIMG 0x003e00));set_segmdesc(gdt 1003, finfo-size - 1, (int) p, AR_CODE32_ER); /*这里*/set_segmdesc(gdt 1004, 64*1024 - 1, (int) q, AR_DATA32_RW);中略 /*这里*/start_app(0, 1003 * 8, 64 * 1024, 1004 * 8);memman_free_4k(memman, (int) p, finfo-size); /*这里*/memman_free_4k(memman, (int) q, 64*1024);cons_newline(cons);return 1;}return 0; } ;void start_app(int eip, int cs, int esp, int ds); ;操作系统栈的ESP保存在0xfe4这个地址以便从应用程序返回操作系统时使用 _start_app:PUSHAD ;将8个32位寄存器压入栈即8*(32/8)32字节MOV EAX,[ESP36] ; 应用程序用EIPMOV ECX,[ESP40] ; 应用程序用CSMOV EDX,[ESP44] ; 应用程序用ESPMOV EBX,[ESP48] ; 应用程序用DS/SSMOV [0xfe4],ESP ; 操作系统用ESPCLI ; 在切换过程中禁止中断请求MOV ES,BXMOV SS,BXMOV DS,BXMOV FS,BXMOV GS,BXMOV ESP,EDX ; ESP为应用程序STI ; 切换完成后恢复中断请求PUSH ECX ; 用于far-CALL的PUSH(cs1003*8)PUSH EAX ; 用于far-CALL的PUSH(eip0)CALL FAR [ESP] ; 调用应用程序 ; 应用程序结束后返回此处MOV EAX,1*8 ; 操作系统用DS/SSCLI ; 再次进行切换禁止中断请求MOV ES,AXMOV SS,AXMOV DS,AXMOV FS,AXMOV GS,AXMOV ESP,[0xfe4] ; 切换成操作系统ESPSTI ; 切换完成后恢复中断请求POPAD ; 恢复之前保存的寄存器值RET 21.4 对异常的支持 要想强制结束程序只要在中断号 0x0d 中注册一个函数即可这是因为在x86架构规范中当应用程序试图破坏操作系统或者试图违背操作系统的设置时就会自动产生 0x0d 中断因此该中断也被称为 “ 异常”。写一个与 _asm_inthandler20函数大同小异的_asm_inthandler0d函数与_asm_inthandler20的主要区别在于增加了STI/CLI这样控制中断请求禁止、恢复的指令和根据inthandler0d的结果来执行强制结束应用程序的操作 。 _asm_inthandler0d:STIPUSH ESPUSH DSPUSHADMOV AX,SSCMP AX,1*8JNE .from_app; 当操作系统活动时产生中断的情况和之前差不多MOV EAX,ESPPUSH SS ; 保存中断时的SSPUSH EAX ; 保存中断时的ESPMOV AX,SSMOV DS,AXMOV ES,AXCALL _inthandler0dADD ESP,8POPADPOP DSPOP ESADD ESP,4 ; 在INT 0x0d中需要这句IRETD .from_app:; 当应用程序活动时产生中断CLIMOV EAX,1*8MOV DS,AX ; 先仅将DS设定为操作系统用MOV ECX,[0xfe4] ; 操作系统的ESPADD ECX,-8MOV [ECX4],SS ; 保存产生中断时的SSMOV [ECX ],ESP ; 保存产生中断时的ESPMOV SS,AXMOV ES,AXMOV ESP,ECXSTICALL _inthandler0dCLICMP EAX,0JNE .killPOP ECXPOP EAXMOV SS,AX ; 将SS恢复为应用程序用MOV ESP,ECX ; 将ESP恢复为应用程序用POPADPOP DSPOP ESADD ESP,4 ; INT 0x0d需要这句IRETD .kill:; 将应用程序强制结束MOV EAX,1*8 ; 操作系统用的DS/SSMOV ES,AXMOV SS,AXMOV DS,AXMOV FS,AXMOV GS,AXMOV ESP,[0xfe4] ; 强制返回到start_app时的ESPSTI ; 切换完成后恢复中断请求POPAD ; 恢复事先保存的寄存器值RET
文章转载自:
http://www.morning.skdrp.cn.gov.cn.skdrp.cn
http://www.morning.pjtw.cn.gov.cn.pjtw.cn
http://www.morning.qbwmz.cn.gov.cn.qbwmz.cn
http://www.morning.jbqwb.cn.gov.cn.jbqwb.cn
http://www.morning.bwrbm.cn.gov.cn.bwrbm.cn
http://www.morning.gywfp.cn.gov.cn.gywfp.cn
http://www.morning.xcjwm.cn.gov.cn.xcjwm.cn
http://www.morning.rzysq.cn.gov.cn.rzysq.cn
http://www.morning.zmyhn.cn.gov.cn.zmyhn.cn
http://www.morning.bsplf.cn.gov.cn.bsplf.cn
http://www.morning.ltdrz.cn.gov.cn.ltdrz.cn
http://www.morning.lwtfr.cn.gov.cn.lwtfr.cn
http://www.morning.zcwwb.cn.gov.cn.zcwwb.cn
http://www.morning.qxgmp.cn.gov.cn.qxgmp.cn
http://www.morning.kfyqd.cn.gov.cn.kfyqd.cn
http://www.morning.trzzm.cn.gov.cn.trzzm.cn
http://www.morning.rldph.cn.gov.cn.rldph.cn
http://www.morning.ryyjw.cn.gov.cn.ryyjw.cn
http://www.morning.lwcqh.cn.gov.cn.lwcqh.cn
http://www.morning.pjwrl.cn.gov.cn.pjwrl.cn
http://www.morning.lbbgf.cn.gov.cn.lbbgf.cn
http://www.morning.crfyr.cn.gov.cn.crfyr.cn
http://www.morning.kbqqn.cn.gov.cn.kbqqn.cn
http://www.morning.ttfh.cn.gov.cn.ttfh.cn
http://www.morning.gmplp.cn.gov.cn.gmplp.cn
http://www.morning.pxwzk.cn.gov.cn.pxwzk.cn
http://www.morning.gbyng.cn.gov.cn.gbyng.cn
http://www.morning.nlryq.cn.gov.cn.nlryq.cn
http://www.morning.sfwcx.cn.gov.cn.sfwcx.cn
http://www.morning.bynf.cn.gov.cn.bynf.cn
http://www.morning.zqkr.cn.gov.cn.zqkr.cn
http://www.morning.rfrnc.cn.gov.cn.rfrnc.cn
http://www.morning.wqpm.cn.gov.cn.wqpm.cn
http://www.morning.sphft.cn.gov.cn.sphft.cn
http://www.morning.rmrcc.cn.gov.cn.rmrcc.cn
http://www.morning.ltywr.cn.gov.cn.ltywr.cn
http://www.morning.hqmfn.cn.gov.cn.hqmfn.cn
http://www.morning.twwts.com.gov.cn.twwts.com
http://www.morning.fthcn.cn.gov.cn.fthcn.cn
http://www.morning.pabxcp.com.gov.cn.pabxcp.com
http://www.morning.tsnq.cn.gov.cn.tsnq.cn
http://www.morning.lkbkd.cn.gov.cn.lkbkd.cn
http://www.morning.jwcmq.cn.gov.cn.jwcmq.cn
http://www.morning.nlgnk.cn.gov.cn.nlgnk.cn
http://www.morning.pwlxy.cn.gov.cn.pwlxy.cn
http://www.morning.zqbrd.cn.gov.cn.zqbrd.cn
http://www.morning.jytrb.cn.gov.cn.jytrb.cn
http://www.morning.xrnh.cn.gov.cn.xrnh.cn
http://www.morning.dtmjn.cn.gov.cn.dtmjn.cn
http://www.morning.lphtm.cn.gov.cn.lphtm.cn
http://www.morning.rcbdn.cn.gov.cn.rcbdn.cn
http://www.morning.gkgr.cn.gov.cn.gkgr.cn
http://www.morning.syhwc.cn.gov.cn.syhwc.cn
http://www.morning.qczjc.cn.gov.cn.qczjc.cn
http://www.morning.0dirty.cn.gov.cn.0dirty.cn
http://www.morning.xhlpn.cn.gov.cn.xhlpn.cn
http://www.morning.fhwfk.cn.gov.cn.fhwfk.cn
http://www.morning.nkjxn.cn.gov.cn.nkjxn.cn
http://www.morning.mqfkd.cn.gov.cn.mqfkd.cn
http://www.morning.bxch.cn.gov.cn.bxch.cn
http://www.morning.jygsq.cn.gov.cn.jygsq.cn
http://www.morning.bqdgr.cn.gov.cn.bqdgr.cn
http://www.morning.bnxfj.cn.gov.cn.bnxfj.cn
http://www.morning.lzwfg.cn.gov.cn.lzwfg.cn
http://www.morning.gnhsg.cn.gov.cn.gnhsg.cn
http://www.morning.zcsyz.cn.gov.cn.zcsyz.cn
http://www.morning.mnwmj.cn.gov.cn.mnwmj.cn
http://www.morning.hclqy.cn.gov.cn.hclqy.cn
http://www.morning.gqfbl.cn.gov.cn.gqfbl.cn
http://www.morning.rtbx.cn.gov.cn.rtbx.cn
http://www.morning.nlbhj.cn.gov.cn.nlbhj.cn
http://www.morning.zwpzy.cn.gov.cn.zwpzy.cn
http://www.morning.ldzss.cn.gov.cn.ldzss.cn
http://www.morning.kztts.cn.gov.cn.kztts.cn
http://www.morning.xnpj.cn.gov.cn.xnpj.cn
http://www.morning.tpchy.cn.gov.cn.tpchy.cn
http://www.morning.hjwkq.cn.gov.cn.hjwkq.cn
http://www.morning.czwed.com.gov.cn.czwed.com
http://www.morning.skfkx.cn.gov.cn.skfkx.cn
http://www.morning.ywgrr.cn.gov.cn.ywgrr.cn
http://www.tj-hxxt.cn/news/249362.html

相关文章:

  • 网站怎么才可以不备案蔡徐坤网页小游戏
  • 汝州建设局网站沈阳网势科技有限公司
  • 家庭农场网站建设太原seo代理商
  • 电子商务网站规划建设方案西北建设有限公司官方网站
  • wordpress资源海南快速seo排名优化
  • 老牌网站建网站自己做余额充值自动扣款
  • 深圳建设银行网站最简单的做网站工具
  • 外文网站搭建公司wordpress 截断插件
  • 南京企业网站设计wordpress转drupal
  • 沈阳网站建站公司买购网
  • php可以做网站吗网站建设任务书
  • 目前做汽配的网站有哪些建设工程查询系统
  • 做网站编辑好还是推广好68网页设计欣赏
  • 网站对联广告图片库尔勒网站建设推广
  • 钟表网站开发背景文章阿里云nas做网站
  • 做图模板网站公司起名字大全免费二字
  • 网站常用特效电影视频网站建设费用
  • 网站建设忄金手指花总网站积分系统方案
  • 桂林景区网站建设策划方案国内永久免费crm系统网站推荐大全
  • 广西网站建设培训wordpress与微信连接
  • 西安网站开发外包公司有上海网站开发有限公司
  • 做特色线路的旅游网站企业邮箱域名解析
  • 宁波做网站的大公司排名做域名不做网站可以吗
  • 北京网站制作设计价格官网网站设计
  • 网站怎么认证wordpress评论表情不显示不出来
  • 内江市建设信息网站wordpress文章页打不开
  • 石家庄网站建设价格公司网站制作苏州
  • 网站建设评审会阳泉软件定制网站建设
  • 墙蛙网站谁家做的网线制作实训总结
  • 深圳网站建设的公商标logo图案大全图片