在引导阶段有部分代码是在实模式下运行的,这部分代码是16位的。如果在引导阶段没有尽快进入保护模式,或者都进入内核执行了,还没有进入保护模式的话,代码也还都是16位的,所以可能在进入内核之后一段时间执行的代码都是16位模式的。所以需要这部分代码涉及到16位编程。
这里使用的gcc编译器。gcc现在并不支持16位编程,不支持gcc,现在所有的新型编译器都已经不再支持16位编程了。支持16位编程都已经是那些老编译器了。比如TC什么的。
这里描述的是在gcc下进行16位c程序的编写和编译。
编译选项
gcc -D arch=16 -m32 -I$(root) -I$(root)/klibc/include -I$(root)/kernel/include -I$(root)/mm/include -c ./mm/mm.c -o ./mm/mm.o
或者
gcc -D arch=16 -D gcc -m32 -I$(root) -I$(root)/klibc/include -I$(root)/kernel/include -I$(root)/mm/include -c ./mm/mm.c -o ./mm/mm.o
生成的汇编代码:
.file "mm.c"
/APP
.code16gcc
/NO_APP
.text
.globl _kmalloc
.def _kmalloc; .scl 2; .type 32; .endef
_kmalloc:
pushl %ebp
movl %esp, %ebp
相关推荐
三肿C#实用编程速查宝典 整理目的:为了让更多朋友加入学习C#的行列 特别感谢: 史莱姆 ( QQ:54488**** ) Rabbit ( QQ:54487**** ) 度娘 谷哥 注意: 1:本文档内所有代码均在WIN764位平台下测试通过,...
在16位的系统中系统中只有一个消息队列,所以系统必须等待当前任务处理消息后才可以发送下一消息到相应程序,如果一个程序陷如死循环或是耗时操作时系统就会得不到控制权。这种多任务系统也就称为协同式的多任务系统...
3.0版本提供了简单的插件开发包,便于有编程基础的朋友自己编写或将其他调试通过的代码修改为X-Scan插件。另外Nessus攻击脚本的翻译工作已经开始,欢迎所有对网络安全感兴趣的朋友参与。需要“Nessus攻击脚本引擎”...
二、接口类代码问题 第43页 1、对函数参数进行有效性检查 第43页 【案例2.1.1】 第43页 【案例2.1.2】 第43页 【案例2.1.3】 第44页 【案例2.1.4】 第46页 【案例2.1.5】 第47页 【案例2.1.6】 第48页 2、注意多出口...
3.0版本提供了简单的插件开发包,便于有编程基础的朋友自己编写或将其他调试通过的代码修改为X-Scan插件。另外Nessus攻击脚本的翻译工作已经开始,欢迎所有对网络安全感兴趣的朋友参与。需要“Nessus攻击脚本...
这是DS小龙哥编写整理的,Python3入门指南.pdf,总共10章,可以当做入门书籍、平时的参考书籍,文中代码都可以复制粘贴。后续资源包会持续更新。 这是书籍的目录 编辑: DS小龙哥 1 Python3入门指南 1 一、 Python...
天风编程,python入门,python基础语法。 一、输入输出 print()函数 input()函数 关键字 if…elif…else,条件后记得加冒号:。 二、数据类型 数据类型转换 字符串拼接 数学运算 数据语法 列表list 字典dict 产生布尔...
第2章 01 上节课复习 02 arp协议复习 03 字符编码 第3章 01 网络基础和dos命令 02 为何学习linux 03 课程内容介绍 04 操作系统内核与系统调用 05 操作系统安装原理 06 linux操作系统安装 07 初识linux命令 08 ...
当然,开发环境毕竟是第二位的,书中讲述的内容以及涉及的代码跟第一版都是一致的。本书的下篇全部都是新鲜内容,主要是增加了进程间通信、文件系统和内存管理。跟第一版的做法相同,下篇仍然不仅关注结果,更加致力...
当然,开发环境毕竟是第二位的,书中讲述的内容以及涉及的代码跟第一版都是一致的。本书的下篇全部都是新鲜内容,主要是增加了进程间通信、文件系统和内存管理。跟第一版的做法相同,下篇仍然不仅关注结果,更加致力...
这里的IDE设备包括了IDE硬盘和IDE光驱,第一、第二组设备是指主板上的第一、第二根IDE数据线,一般来说靠近芯片的是第一组IDE设备,而主设备、从设备是指在一条IDE数据线上接的两个设备,大家知道每根数据线上可以接...
二、利用生成的第一步生成的Excel文件,做成绩分析,保存成绩分析表格。 三、利用成绩分析表格,做成绩分析动态图。 下面是部分源代码: 1、成绩整理与合并 import glob import os import pandas as pd from ...
第2周 本节鸡汤 模块初识 pyc是什么 python数据类型 bytes数据类型 列表的使用 元组与购物车程序练习 购物车程序练习实例 字符串常用操作 字典的使用 三级菜单实例 本周作业-购物车优化 第3周 作业 上节内容回顾 ...
os 操作系统 random 随机 queue 队列 time 时间 threading 线程 multiprocessing 进程 第三方库: Django Flask这两个也算 requests selenium scrapy celery等 2__init__和__new__ 的区别? __init__ 在对象创建后...
第2章 磁盘管理 49 2.1 磁盘分区与格式化 49 2.1.1 硬盘分区 49 2.1.2 磁盘格式化 51 2.1.3 Windows Server 2008系统分区 52 2.1.4 format——磁盘格式化 53 2.1.5 chkntfs——NTFS分区检查 55 2.1.6 convert——...