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

网站数据库 mysql中国装饰公司十大排名

网站数据库 mysql,中国装饰公司十大排名,教务管理系统密码忘了怎么办,网站建设怎么把代码放入网站上使用TSS来在任务切换时保护现场和恢复现场 内核任务#xff1a;单纯由内核组成的任务#xff0c;和其他用户程序组成其他任务 内核任务的创建 ;为内核任务创建任务控制块TCB mov ecx, 0x46 call sys_routine_seg_sel:allocate_memory call append_to_tcb_link ;将此TCB添加… 使用TSS来在任务切换时保护现场和恢复现场 内核任务单纯由内核组成的任务和其他用户程序组成其他任务 内核任务的创建 ;为内核任务创建任务控制块TCB mov ecx, 0x46 call sys_routine_seg_sel:allocate_memory call append_to_tcb_link ;将此TCB添加到TCB链上 mov esi, ecx;为内核任务的TSS分配内存空间 mov ecx, 104 ;为内核任务的TSS分配内存 call sys_routine_seg_sel:allocate_memory mov [es:esi0x14], ecx ;在内核TCB中保存TSS基地址;在内核任务的TSS中设置必要的项目 mov word [es:ecx96],0 ;没有LDT。处理器允许没有LDT的任务。 mov word [es:ecx102],103 ;没有I/O许可位图。0特权级事实上不需要。 mov word [es:ecx0],0 ;反向链0不使用硬件任务切换不产生任务链 mov dword [es:ecx28],0 ;登记CR3(PDBR) mov word [es:ecx100],0 ;T0;不需要0、1、2特权级堆栈。0特级不会向低特权级转移控制。IO许可位图 当任务的CPL特权级高于数值小于他的EFLAGS中的IOPL字段那么这个任务可以访问任何硬件端口0特权级可访问任何硬件端口 修改IOPL需要先把EFLAGS/FLAGS压栈在栈中修改然后出栈 在16位操作尺寸下也可以压入32位的EFLAGS只需要使用PUSHFD翻转操作数尺寸即可但在32位操作尺寸下PUSHF和PUSHFD作用相同 POPF同理 PUSHF/PUSHFD和POPF/POPFD的执行不受特权级限制但是标志寄存器压栈后IOPL字段的读写状态受特权级影响若CPL不为0则栈中的IOPL类似只读状态 当然也不是说一旦CPL特权级低于IOPL所有硬件端口就禁止访问 TSS描述符中的段界限包含了IO许可位映射区的大小 任务切换 协同式任务切换 ;创建内核任务的TSS描述符并安装到GDT中 mov eax,ecx ;TSS的起始线性地址mov ebx,103 ;段长度界限mov ecx,0x00408900 ;TSS描述符特权级0call sys_routine_seg_sel:make_seg_descriptorcall sys_routine_seg_sel:set_up_gdt_descriptormov [prgman_tss0x04],cx ;保存程序管理器的TSS描述符选择子 ;任务寄存器TR中的内容是任务存在的标志该内容也决定了当前任务是谁。;下面的指令为当前正在执行的0特权级任务“程序管理器”后补手续TSS。ltr cx ;现在可认为内核任务正执行中创建用户程序 mov ecx,0x46call sys_routine_seg_sel:allocate_memorycall append_to_tcb_link ;将此TCB添加到TCB链中 push dword 50 ;用户程序位于逻辑50扇区push ecx ;压入任务控制块起始线性地址 call load_relocate_program ;主动发起任务切换 initiate_task_switch: ;主动发起任务切换pushadpush dspush esmov eax, core_data_seg_selmov es, eaxmov eax, mem_0_4_gb_seg_selmov ds, eaxmov eax, [es:tcb_chain]; 搜索状态为忙当前任务的节点.b0:cmp word [eax0x04], 0xffffcmove esi, eaxjz .b1;从当前节点继续搜索就绪任务的节点.b1:mov ebx, [eax]or ebx, ebxjz .b2 ;到表尾也没找到就从头找cmp word [ebx0x04], 0x0000cmove edi, ebx ;找到就绪节点edi节点线性地址jz .b3mov eax, ebxjmp .b1.b2:mov ebx, [es:tcb_chain].b20:cmp word [ebx0x04], 0x0000cmove edi, ebxjz .b3mov ebx, [ebx]or ebx, ebxjz .return ;表中不存在空闲任务返回jmp .b20;就绪任务的节点已找到准备切换.b3:not word [esi0x04] ;将忙状态的节点改为就绪not word [edi0x04] ;将就绪节点改为忙jmp far [edi0x14] ;任务切换.return:pop espop dspopadretf;用户任务进行任务切换 call far [fs:InitTaskSwitch];用户任务退出 call far [fs:TerminateProgram]terminate_current_task: ;终止当前任务;注意执行此例程时当前任务仍在运行中。此例程其实也是当前任务的一部分 mov eax, core_data_seg_selmov es, eaxmov eax, mem_0_4_gb_seg_selmov ds, eaxmov eax, [es:tcb_chain] ;eax首节点的线性地址;搜索状态为忙当前任务的节点.s0:cmp word [eax0x04]jz .sl ;找到忙节点eax节点的线性地址mov eax, [eax] jmp .s0;将状态为忙的节点改成终止状态.s1:mov word [eax0x04], 0x3333;搜索就绪状态的任务mov ebx, [es:tcb_chain] ;ebx链表首节点线性地址.s2:cmp word [ebx0x04], 0x0000jz .s3 ;已找到就绪节点ebx节点的线性地址mov ebx, [ebx]jmp .s2;就绪任务的节点已经找到准备切换到该任务.s3:not word [ebx0x04]jmp far [ebx0x14]抢占式任务切换 抢占式任务切换需要依赖硬件中断 中断与异常是并列关系 异常根据发生原因可分为 异常根据性质可分为 实模式下直接访问IVT获取中断处理代码地址 保护模式下需要获取描述符 创建并安装中断门 general_interrupt_handler: ;通用的中断处理过程push eaxmov al,0x20 ;中断结束命令EOI out 0xa0,al ;向从片发送 out 0x20,al ;向主片发送pop eaxiretd;------------------------------------------------------------------------------- general_exception_handler: ;通用的异常处理过程mov ebx,excep_msgcall flat_4gb_code_seg_sel:put_stringhlt ;------------------------------------------------------------------------------- rtm_0x70_interrupt_handle: ;实时时钟中断处理过程pushadmov al,0x20 ;中断结束命令EOIout 0xa0,al ;向8259A从片发送out 0x20,al ;向8259A主片发送mov al,0x0c ;寄存器C的索引。且开放NMIout 0x70,alin al,0x71 ;读一下RTC的寄存器C否则只发生一次中断;此处不考虑闹钟和周期性中断的情况call sys_routine_seg_sel:initiate_task_switch ;请求任务切换popadiretdmov ecx, core_data_seg_selmov ds, ecx ;ds指向核心数据段mov ecx, mem_0_4_gb_seg_selmov es, ecx ;es指向4G数据段;创建中断描述符表IDT;其余为保留或硬件使用的中断向量mov eax,general_exception_handler ;公共异常处理代码在段内偏移地址mov bx,flat_4gb_code_seg_sel ;代码所在段的选择子mov cx,0x8e00 ;中断门高32位部分的低16位0特权级call flat_4gb_code_seg_sel:make_gate_descriptor ;构建门描述符mov ebx,idt_linear_address ;中断描述符表的线性地址xor esi,esi.idt0:mov [es:ebxesi*8],eaxmov [es:ebxesi*84],edxinc esicmp esi,19 ;安装前20个异常中断处理过程jle .idt0;除了0~20是公共的中断门还有32~255为为保留或硬件使用的中断向量mov eax,general_interrupt_handler ;门代码在段内偏移地址mov bx,flat_4gb_code_seg_sel ;门代码所在段的选择子mov cx,0x8e00 ;32位中断门0特权级call flat_4gb_code_seg_sel:make_gate_descriptormov ebx,idt_linear_address ;中断描述符表的线性地址.idt1:mov [es:es:ebxesi*8],eaxmov [es:ebxesi*84],edxinc esicmp esi,255 ;安装普通的中断处理过程jle .idt1;设置实时时钟中断处理过程mov eax,rtm_0x70_interrupt_handle ;门代码在段内偏移地址mov bx,flat_4gb_code_seg_sel ;门代码所在段的选择子mov cx,0x8e00 ;32位中断门0特权级call flat_4gb_code_seg_sel:make_gate_descriptormov ebx,idt_linear_address ;中断描述符表的线性地址mov [es:ebx0x70*8],eaxmov [es:ebx0x70*84],edx加载中断描述符表寄存器IDTR pidt dw 0dd 0;准备开放中断mov word [pidt],256*8-1 ;IDT的界限mov dword [pidt2],idt_linear_addresslidt [pidt] ;加载中断描述符表寄存器IDTR8259A主片默认使用0x08 ~ 0x0F中断向量号但是处理器已经把0x08 ~ 0x0F设置成异常了向量号冲突需要重新设置 初始化命令字ICW1 ~ 4可发给主片和从片先把ICW1发给主片的0X20和从片的0XA0根据其内容决定让主片0X21和从片0XA1是否期待后续 ;设置8259A中断控制器mov al,0x11out 0x20,al ;ICW1边沿触发/级联方式mov al,0x20out 0x21,al ;ICW2:起始中断向量mov al,0x04out 0x21,al ;ICW3:从片级联到IR2mov al,0x01out 0x21,al ;ICW4:非总线缓冲全嵌套正常EOImov al,0x11out 0xa0,al ;ICW1边沿触发/级联方式mov al,0x70out 0xa1,al ;ICW2:起始中断向量mov al,0x04out 0xa1,al ;ICW3:从片级联到IR2mov al,0x01out 0xa1,al ;ICW4:非总线缓冲全嵌套正常EOI;设置和时钟中断相关的硬件 mov al,0x0b ;RTC寄存器Bor al,0x80 ;阻断NMIout 0x70,almov al,0x12 ;设置寄存器B禁止周期性中断开放更out 0x71,al ;新结束后中断BCD码24小时制in al,0xa1 ;读8259从片的IMR寄存器and al,0xfe ;清除bit 0(此位连接RTC)out 0xa1,al ;写回此寄存器mov al,0x0cout 0x70,alin al,0x71 ;读RTC寄存器C复位未决的中断状态sti ;开放硬件中断中断和异常处理时的特权级保护 不检查RPL不检查门的DPL除了int n、int3和into中断描述符描述的目标代码段的特权级必须高于等于当前代码特权级 中断和异常发生时的栈切换过程 与任务切换类似都是在任务的TSS中找到中断处理过程段的对应特权级的栈寄存器然后压栈各种寄存器保护现场 有些异常产生时处理器会在栈中压入错误代码
http://www.hkea.cn/news/14387588/

相关文章:

  • php网站开发招聘需求开源站群cms
  • 哪个网站做h5比较好兰州市政建设集团办公网站
  • 自己电脑做网站用备案网站建设 模版
  • 塘厦仿做网站wordpress分类页置顶信息
  • 峡江网站建设jquery网站模板
  • 关于新闻管理的网站建设报告河北省建设项目环保备案网站
  • html5手机网站教程wordpress怎么制作网站主页
  • 网站怎么做抽奖外贸做网站建设公司
  • 济南哪里有建网站源码管理 网站
  • 哪家做网站公司好网站集约化建设流程
  • 设计网站怎么收费东莞网站推广优化公司
  • 自住房车各项建设部网站做网站需要写配置文件吗
  • 后台网站模板下载网站建设需要哪些常用技术
  • 西安公司网站制作要多少钱企业网站建设 知乎
  • 网站建设了推广方案python在线编程翻译器
  • 为什么有些公司却没有自己的网站惠州手工外发加工网
  • 惠州网站推广排名建设银行网站无法登陆
  • 建设银行集团网站首页注册安全工程师
  • 模板式网站建设宁波网站优化
  • 网站设计主流尺寸芜湖网络科技有限公司
  • 太原网站制作优化seo公司加强门户网站建设通知
  • 营销型网站网站设计做微商在哪个网站打广告好
  • 做网站哪种域名好记网站建设的建议和意见
  • 申请免费网站空间网站开发哪家公司电话
  • 网站添加定位怎么做深圳注册公司需要哪些材料和流程
  • 手机网站建设推广软文wordpress打开好慢
  • 登录功能网站怎么做电商网站服务排名
  • 织梦如何做汽车贸易网站做网销的一天都在干嘛
  • 网站服务器在本地是指免费地方域名注册
  • 装修公司网站怎么做的网站建设兼职劳务协议书