【OS学习笔记】二十九 保护模式八:任务切换对应的汇编代码之用户程序代码

本汇编代码对应以下两篇文章对应的用户程序汇编代码:

  • 【OS学习笔记】二十六 保护模式八:任务门—任务切换
  • 【OS学习笔记】二十七 保护模式八:任务切换的方法之----jmp与call的区别以及任务的中断嵌套

相应的内核程序代码为:内核代码

用户程序代码:

         ;代码清单15-2;文件名:c15.asm;文件说明:用户程序 ;===============================================================================
SECTION header vstart=0program_length   dd program_end          ;程序总长度#0x00head_len         dd header_end           ;程序头部的长度#0x04stack_seg        dd 0                    ;用于接收堆栈段选择子#0x08stack_len        dd 1                    ;程序建议的堆栈大小#0x0c;4KB为单位prgentry         dd start                ;程序入口#0x10 code_seg         dd section.code.start   ;代码段位置#0x14code_len         dd code_end             ;代码段长度#0x18data_seg         dd section.data.start   ;数据段位置#0x1cdata_len         dd data_end             ;数据段长度#0x20
;-------------------------------------------------------------------------------;符号地址检索表salt_items       dd (header_end-salt)/256 ;#0x24salt:                                     ;#0x28PrintString      db  '@PrintString'times 256-($-PrintString) db 0TerminateProgram db  '@TerminateProgram'times 256-($-TerminateProgram) db 0ReadDiskData     db  '@ReadDiskData'times 256-($-ReadDiskData) db 0header_end:;===============================================================================
SECTION data vstart=0                message_1        db  0x0d,0x0adb  '[USER TASK]: Hi! nice to meet you,'db  'I am run at CPL=',0message_2        db  0db  '.Now,I must exit...',0x0d,0x0a,0data_end:;===============================================================================[bits 32]
;===============================================================================
SECTION code vstart=0
start:;任务启动时,DS指向头部段,也不需要设置堆栈 mov eax,dsmov fs,eaxmov eax,[data_seg]mov ds,eaxmov ebx,message_1call far [fs:PrintString]mov ax,csand al,0000_0011Bor al,0x0030mov [message_2],almov ebx,message_2call far [fs:PrintString]call far [fs:TerminateProgram]      ;退出,并将控制权返回到核心 code_end:;-------------------------------------------------------------------------------
SECTION trail
;-------------------------------------------------------------------------------
program_end:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/422972.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

转载并学习实现三重DES加密解密代码(一)

作者:finallyliuyu 出处:博客园 声明:此篇博文代码来自于邹德强先生。由于目前找到的版本是残缺版,所以我又进行了补全。读一份好代码,可以领略到作者的编程风格和语言驾驭能力,同时又能从其中汲取养分。现将我所修改后…

【OS学习笔记】三十 保护模式九:段页式内存管理机制概述

上几篇文章学习了任务切换相关知识,如下: 【OS学习笔记】二十六 保护模式八:任务门—任务切换【OS学习笔记】二十七 保护模式八:任务切换的方法之----jmp与call的区别以及任务的中断嵌套 今天继续学习保护模式下的分页机制。本篇…

真人拳皇项目第六次Scrum总结——史经浩

今天,我们组开始了正式的编码阶段,前期plan的时候天马行空,现在是脚踏实地的coding了。在Scrum上,大家sync了一下各自的进展,如下: 今天 进度 问题及解决 明天 田飞 work item 37528:DirectX动画的de…

【OS学习笔记】三十一 保护模式九:页目录、页表和页三者的关系详解

上一篇文章学习了:保护模式九:段页式内存管理机制概述 本篇文章接着学习以下内容: 页目录概念页表概念页目录、页表与页之间的关系虚拟地址(线性地址)到物理地址的具体变换过程。 1、页目录、页表和页的对应关系 第…

使用某个文件夹下的所有文件去替换另一个文件夹下及其子文件夹下存在的同名文件(Python实现)...

值此新年即将到来之际,在这献上今年最后一篇文章. 产生这个需求是在项目的一次图标替换上,当时给了我一堆新图标要替换原来的老图标,可是原来的老图标分布在某个文件夹下的各个子文件夹下面,而新图标全是在同一个目录下的. 手动替换的话,只能是搜索文件名后替换,但是文件很多太…

【OS学习笔记】三十二 保护模式九:分页机制对应的汇编代码之---内核代码

本片文章是以下两篇文章: 【OS学习笔记】三十 保护模式九:段页式内存管理机制概述【OS学习笔记】三十一 保护模式九:页目录、页表和页三者的关系详解 对应的内核汇编代码。 ;代码清单16-1;文件名:c16_core.asm;文件说明&#xf…

Spring中HibernateTemplate类的使用

实际情况中,对于编程事务的操作最好还是使用org.springframework.transaction.support.TransactionTemplate,因为HibernateTemplate在实际操作中并不是想象的那样,具体如下: 目的:使用HibernateTemplate执行execute&am…

【OS学习笔记】三十三 保护模式九:分页机制对应的汇编代码之---用户程序代码

本片文章是以下两篇文章: 【OS学习笔记】三十 保护模式九:段页式内存管理机制概述【OS学习笔记】三十一 保护模式九:页目录、页表和页三者的关系详解 对应的用户程序汇编代码。 ;代码清单16-2;文件名:c16.asm;文件说明&#xff…

一款研发管理软件的对象标签介绍

如果你了解WIKI,WIKI中的所有信息链接以标签的方式网状关联。TOPO系统中实现了完整的TAG功能,区别于目前市面上的其他类似管理系统,TOPO系统中实现的标签功能更加彻底和全面,例如完全用户自定义TAG,系统中所有管理对象…

【OS学习笔记】三十四 保护模式十:中断和异常区别

上几篇文章学习了分页机制的一些原理: 【OS学习笔记】三十 保护模式九:段页式内存管理机制概述【OS学习笔记】三十一 保护模式九:页目录、页表和页三者的关系详解 今天继续学习保护模式下的关于中断与异常的概念。本文主要学习中断与异常的…

记录一次文件迁移

事情的经过是这样子的!数据库A表添加一条记录,**系统中B目录下就会多出5n个文件。随着系统运行3年多,B目录中的文件数已高达2M多,而这些文件恰恰又是用户高度频繁访问的。于是问题就来了,一方面是用户访问文件速度变慢…

【OS学习笔记】三十五 保护模式十:中断描述符表、中断门和陷阱门

上一篇文章学习了中断与异常的概念:【OS学习笔记】三十四 保护模式十:中断和异常区别 本片文章接着学习以下内容: 中断描述符表中断门陷阱门 1 中断描述符表 我们前面讲了无数次,在实模式下,是由位于低地址的1M内存…

【OS学习笔记】三十六 保护模式十:通过中断发起任务切换----中断任务

上一篇文章学习了:OS学习笔记】三十五 保护模式十:中断描述符表、中断门和陷阱门 本篇文章接着上一篇文章学习中断任务。 我们在前面文章中一直在说通过中断发起任务切换,本文就是将之前没有说明白的内容:通过中断发起任务切换讲…

GC是什么? 为什么要有GC?

答:GC是垃圾收集器。程序员不用担心内存管理,因为垃圾收集器会自动进行管理。要请求垃圾收集,可以调用下面的方法之一: System.gc()Runtime.getRuntime().gc() 转载于:https://www.cnblogs.com/mianshi/archive/2011/01/05/192663…

【OS学习笔记】三十七 保护模式十:中断和异常的处理与抢占式多任务对应的汇编代码----主引导扇区代码

本文是以下几篇文章对应的主引导扇区代码汇编代码: 【OS学习笔记】三十四 保护模式十:中断和异常区别【OS学习笔记】三十五 保护模式十:中断描述符表、中断门和陷阱门【OS学习笔记】三十六 保护模式十:通过中断发起任务切换----中…

过滤JSON中的特殊字符

过滤方法用的是Discuz中的过滤方法&#xff01; /// <summary>/// 加载事件/// </summary>/// <param name"sender"></param>/// <param name"e"></param>protected void Page_Load(object sender, EventArgs e){if(!…

【OS学习笔记】三十八 保护模式十:中断和异常的处理与抢占式多任务对应的汇编代码----微型内核汇代码

本文是以下几篇文章对应的微型内核代码汇编代码&#xff1a; 【OS学习笔记】三十四 保护模式十&#xff1a;中断和异常区别【OS学习笔记】三十五 保护模式十&#xff1a;中断描述符表、中断门和陷阱门【OS学习笔记】三十六 保护模式十&#xff1a;通过中断发起任务切换----中断…

小议传统分层与新式分层,抑或与DDD分层

引言本文提到的分层只是软件架构上的分层。文中的传统分层指的是传统的三层结构&#xff1a;UI&#xff08;界面表现层&#xff09;,BLL&#xff08;业务逻辑层&#xff09;,DAL&#xff08;数据访问层&#xff09;。文中提出的观点也都是个人的一点认识&#xff0c;与任何组织…

【OS学习笔记】三十九 保护模式十:中断和异常的处理与抢占式多任务对应的汇编代码----动态加载的用户程序/任务一代码

本文是以下几篇文章对应的动态加载的用户程序/任务一代码&#xff1a; 【OS学习笔记】三十四 保护模式十&#xff1a;中断和异常区别【OS学习笔记】三十五 保护模式十&#xff1a;中断描述符表、中断门和陷阱门【OS学习笔记】三十六 保护模式十&#xff1a;通过中断发起任务切…

WCF 第八章 安全 客户端认证

一个服务的客户端认证是通过向服务提供一系列信赖的声明。声明可以是任何形式&#xff0c;只要客户端和服务端理解这个格式并信赖它的来源就可以。 如果客户端和服务端共享一个秘密信息&#xff0c;比如一个用户名和密码&#xff0c;只要客户端通过一个合法认证发送数据&#x…