【OS学习笔记】二十二 保护模式六:保户模式下操作系统内核如何加载用户程序并运行 对应的汇编代码之用户程序

本汇编代码对应文章:保户模式下操作系统内核如何加载用户程序并运行中的实际用户程序代码。

  • 对应的主引导扇区代码:主引导扇区代码
  • 对应的内核代码:内核代码
         ;代码清单13-3;文件名:c13.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    buffer times 1024 db  0         ;缓冲区message_1         db  0x0d,0x0a,0x0d,0x0adb  '**********User program is runing**********'db  0x0d,0x0a,0message_2         db  '  Disk data:',0x0d,0x0a,0data_end:;===============================================================================[bits 32]
;===============================================================================
SECTION code vstart=0
start:mov eax,dsmov fs,eaxmov eax,[stack_seg]mov ss,eaxmov esp,0mov eax,[data_seg]mov ds,eaxmov ebx,message_1call far [fs:PrintString]mov eax,100                         ;逻辑扇区号100mov ebx,buffer                      ;缓冲区偏移地址call far [fs:ReadDiskData]          ;段间调用mov ebx,message_2call far [fs:PrintString]mov ebx,buffer call far [fs:PrintString]           ;too.jmp far [fs:TerminateProgram]       ;将控制权返回到系统 code_end:;===============================================================================
SECTION trail
;-------------------------------------------------------------------------------
program_end:

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

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

相关文章

评教有感

上个星期学校组织了对教师的评比,用的是坤哥和六期师哥师姐做的评教系统。自己不但参与了评教的工作,还去五楼值班维持秩序。在值班的过程中碰到了米老师,再次认识到自己的不足。学习应该是无处不在的,就算是值班过程中也是可以学…

【OS学习笔记】二十三 保护模式七:保护模式下任务的隔离与任务的特权级概念

上一篇文章学习了保护模式下操作系统内核如何加载程序并运行:点击链接查看上一篇文章 本篇文章接着上一篇文章学习保护模式下任务的隔离。 包括以下学习内容: 任务的全局空间和局部空间任务的TSS任务的LDT任务的特权级概念等 1、回顾 在保护模式下&…

[Drupal] How to add the js file and js code block in Drupal

Drupal 6:代码//This will add a JS file to your head (specifically the $scripts variable in page.tpl.php)drupal_add_js(drupal_get_path(module,my_module) ./my_module.js); //This add inline JS to the head of the documentdrupal_add_js(alert("Hello!"…

【OS学习笔记】二十四 保护模式七:调用门与依从的代码段----特权级保护

学习交流加 个人qq: 1126137994个人微信: liu1126137994学习交流资源分享qq群: 962535112 上一篇文章学习了保护模式下的任务与任务隔离,以及简单介绍了保护模式下的特权级的概念。点击链接查看上一篇文章:任务与任务隔…

在虚拟机中安装和配配置 MOSS2007 全过程

1. 首先在计算机上安装 VMware 虚拟机软件2. 在虚拟机中安装WIN2003 SP2企业版3. 进入添加删除程序 Windows 添加组件向导 添加以下组件 a. 网络服务中的域名系统(DNS) b. 电子邮件服务中的POP3服务 c. 应用程序服务器中的 IIS d. ASP.NET e. 还有IIS中的SMTP service4. 如…

【OS学习笔记】二十五 保护模式七:任务和特权级保护对应的汇编源代码

本汇编代码是以下两篇文章讲解的内容的内核代码; 【OS学习笔记】二十三 保护模式七:保护模式下任务的隔离与任务的特权级概念【OS学习笔记】二十四 保护模式七:调用门与依从的代码段----特权级保护 需要先学习上述两篇文章的内容,方能看懂下…

MOSS/Sharepoint 如何更改一台已经安装了SharePoint的服务器名称

似乎许多朋友遇到这样的问题:服务器上已经安装了SharePoint Server 2007,但需要改掉这个服务器的名称。直接改的话,总是会导致网站无法访问的情况。 具体做法可参考如下步骤: 第一步:在SharePoint3.0管理中心中修改“替…

【OS学习笔记】二十六 保护模式八:任务门---任务切换

上一篇文章学习了:保护模式七:调用门与依从的代码段----特权级保护 主要学习了以下内容: 描述符特权级(目标对象的特权级)DPL 描述符特权级(目标对象的特权级)DPL 当前特权级CPL 低特权级的应…

腾讯微博应用

腾讯微博开放平台提供了一些官方微博应用,供开发者借鉴和利用,其中包括: 一键转播——嵌入一键转播到你的网站里,访客便能将网页信息直接传播至腾讯微博。分享资讯的同时,用户通过来源链接可进入你的网站,从…

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

上一篇文章学习了任务门的概念:任务门—任务切换。主要学习了以下内容: 使用任务门进行任务切换的一般工作原理(和中断有关的任务切换) 本篇文章接着上一篇文章学习以下内容: 利用jmp进行任务切换利用call进行任务切…

Windows Phone 7 开发 31 日谈——第22日:应用?还是 游戏?

本文是“Windows Phone 7 开发 31 日谈”系列的第22日。 昨天,我发了一篇极长的关于Silverlight Toolkit for Windows Phone的文章。今天的会短一些,但却非常珍贵。我会讨论你的应用程序设置中非常细微但很重要的设置:类别(Genre&…

【OS学习笔记】二十八 保护模式八:任务切换对应的汇编代码之内核代码

本汇编代码对应以下两篇文章对应的内核汇编代码: OS学习笔记】二十六 保护模式八:任务门—任务切换【OS学习笔记】二十七 保护模式八:任务切换的方法之----jmp与call的区别以及任务的中断嵌套 相应的用户程序代码为:用户程序代码…

《Advanced .NET Debugging》 读书笔记 Listing 3-6: 使用sxe在程序载入mscorwks之后停下来载入sos...

1. 在WinDbg下载入01MDASample.exe 2. 执行 sxe ld mscorwks.dll 该命令的作用是在进程载入mscorwks之后停下来 3. 执行 g 可见程序在载入mscorwks.dll 之后停下来了 4. 执行 .loadby sos.dll mscorwks 转载于:https://www.cnblogs.com/charrli/archive/2010/12/25/1916964.h…

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

本汇编代码对应以下两篇文章对应的用户程序汇编代码: 【OS学习笔记】二十六 保护模式八:任务门—任务切换【OS学习笔记】二十七 保护模式八:任务切换的方法之----jmp与call的区别以及任务的中断嵌套 相应的内核程序代码为:内核代…

转载并学习实现三重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…