【OS学习笔记】二十二 保护模式六:保户模式下操作系统内核如何加载用户程序并运行 对应的汇编代码之用户程序
发布日期:2021-07-01 00:05:45
浏览次数:2
分类:技术文章
本文共 2887 字,大约阅读时间需要 9 分钟。
本汇编代码对应文章:中的实际用户程序代码。
- 对应的主引导扇区代码:
- 对应的内核代码:
;代码清单13-3 ;文件名:c13.asm ;文件说明:用户程序 ;===============================================================================SECTION header vstart=0 program_length dd program_end ;程序总长度#0x00 head_len dd header_end ;程序头部的长度#0x04 stack_seg dd 0 ;用于接收堆栈段选择子#0x08 stack_len dd 1 ;程序建议的堆栈大小#0x0c ;以4KB为单位 prgentry dd start ;程序入口#0x10 code_seg dd section.code.start ;代码段位置#0x14 code_len dd code_end ;代码段长度#0x18 data_seg dd section.data.start ;数据段位置#0x1c data_len dd data_end ;数据段长度#0x20 ;------------------------------------------------------------------------------- ;符号地址检索表 salt_items dd (header_end-salt)/256 ;#0x24 salt: ;#0x28 PrintString db '@PrintString' times 256-($-PrintString) db 0 TerminateProgram db '@TerminateProgram' times 256-($-TerminateProgram) db 0 ReadDiskData db '@ReadDiskData' times 256-($-ReadDiskData) db 0 header_end:;===============================================================================SECTION data vstart=0 buffer times 1024 db 0 ;缓冲区 message_1 db 0x0d,0x0a,0x0d,0x0a db '**********User program is runing**********' db 0x0d,0x0a,0 message_2 db ' Disk data:',0x0d,0x0a,0data_end:;=============================================================================== [bits 32];===============================================================================SECTION code vstart=0start: mov eax,ds mov fs,eax mov eax,[stack_seg] mov ss,eax mov esp,0 mov eax,[data_seg] mov ds,eax mov ebx,message_1 call far [fs:PrintString] mov eax,100 ;逻辑扇区号100 mov ebx,buffer ;缓冲区偏移地址 call far [fs:ReadDiskData] ;段间调用 mov ebx,message_2 call far [fs:PrintString] mov ebx,buffer call far [fs:PrintString] ;too. jmp far [fs:TerminateProgram] ;将控制权返回到系统 code_end:;===============================================================================SECTION trail;-------------------------------------------------------------------------------program_end:
转载地址:https://lyy-0217.blog.csdn.net/article/details/84996807 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
第一次来,支持一个
[***.219.124.196]2024年04月16日 12时37分07秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Html2Servlet--Html代码转换为Servlet小程序
2019-05-01
HTTP认证方式
2019-05-01
图书商城:分类模块
2019-05-01
图书商城:订单模块
2019-05-01
开源全能播放器Vitamio的使用
2019-05-01
使用ViewPager加载页面出现空白
2019-05-01
ImageView scaleType
2019-05-01
RecyclerView notifyItem闪屏问题
2019-05-01
dubbo学习笔记 十二 dubbo-cluster
2019-05-01
dubbo学习笔记 十三 dubbo-filter
2019-05-01
dubbo学习笔记 十一 dubbo-rpc之模块
2019-05-01
motan学习笔记 五 opentracing学习入门
2019-05-01
爬取博客园博客
2019-05-01
什么是Docker?
2019-05-01
一个基于百度云和图灵的人工智能程序
2019-05-01
用两个栈实现队列
2019-05-01
求列表最长子序列
2019-05-01
字符串的排序
2019-05-01
内存分配(mallloc,calloc,realloc,new)
2019-05-01