本汇编代码对应文章:保户模式下操作系统内核如何加载用户程序并运行中的实际用户程序代码。
- 对应的主引导扇区代码:主引导扇区代码
- 对应的内核代码:内核代码
;代码清单
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
:
总结
以上是生活随笔为你收集整理的【OS学习笔记】二十二 保护模式六:保户模式下操作系统内核如何加载用户程序并运行 对应的汇编代码之用户程序的全部内容,希望文章能够帮你解决所遇到的问题。
如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。