`
lobin
  • 浏览: 383314 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

关于os的一些整理:第二篇:3、16-位编程

 
阅读更多

在引导阶段有部分代码是在实模式下运行的,这部分代码是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

 

0
0
分享到:
评论

相关推荐

    C#编程速查宝典 20140416

    三肿C#实用编程速查宝典 整理目的:为了让更多朋友加入学习C#的行列 特别感谢: 史莱姆 ( QQ:54488**** ) Rabbit ( QQ:54487**** ) 度娘 谷哥 注意: 1:本文档内所有代码均在WIN764位平台下测试通过,...

    C++MFC教程

    在16位的系统中系统中只有一个消息队列,所以系统必须等待当前任务处理消息后才可以发送下一消息到相应程序,如果一个程序陷如死循环或是耗时操作时系统就会得不到控制权。这种多任务系统也就称为协同式的多任务系统...

    X-Scan v3.1

    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、注意多出口...

    X-Scan

    3.0版本提供了简单的插件开发包,便于有编程基础的朋友自己编写或将其他调试通过的代码修改为X-Scan插件。另外Nessus攻击脚本的翻译工作已经开始,欢迎所有对网络安全感兴趣的朋友参与。需要“Nessus攻击脚本...

    Python3入门指南_v2.4.pdf

    这是DS小龙哥编写整理的,Python3入门指南.pdf,总共10章,可以当做入门书籍、平时的参考书籍,文中代码都可以复制粘贴。后续资源包会持续更新。 这是书籍的目录 编辑: DS小龙哥 1 Python3入门指南 1 一、 Python...

    【第一关奖励】Python语法整理.pdf

    天风编程,python入门,python基础语法。 一、输入输出 print()函数 input()函数 关键字 if…elif…else,条件后记得加冒号:。 二、数据类型 数据类型转换 字符串拼接 数学运算 数据语法 列表list 字典dict 产生布尔...

    python入门到高级全栈工程师培训 第3期 附课件代码

    第2章 01 上节课复习 02 arp协议复习 03 字符编码 第3章 01 网络基础和dos命令 02 为何学习linux 03 课程内容介绍 04 操作系统内核与系统调用 05 操作系统安装原理 06 linux操作系统安装 07 初识linux命令 08 ...

    自己动手写操作系统(含源代码).part2

    当然,开发环境毕竟是第二位的,书中讲述的内容以及涉及的代码跟第一版都是一致的。本书的下篇全部都是新鲜内容,主要是增加了进程间通信、文件系统和内存管理。跟第一版的做法相同,下篇仍然不仅关注结果,更加致力...

    自己动手写操作系统(含源代码).part1

    当然,开发环境毕竟是第二位的,书中讲述的内容以及涉及的代码跟第一版都是一致的。本书的下篇全部都是新鲜内容,主要是增加了进程间通信、文件系统和内存管理。跟第一版的做法相同,下篇仍然不仅关注结果,更加致力...

    计算机应用技术(实用手册)

    这里的IDE设备包括了IDE硬盘和IDE光驱,第一、第二组设备是指主板上的第一、第二根IDE数据线,一般来说靠近芯片的是第一组IDE设备,而主设备、从设备是指在一条IDE数据线上接的两个设备,大家知道每根数据线上可以接...

    高中学校利用Python做成绩分析.rar

    二、利用生成的第一步生成的Excel文件,做成绩分析,保存成绩分析表格。 三、利用成绩分析表格,做成绩分析动态图。 下面是部分源代码: 1、成绩整理与合并 import glob import os import pandas as pd from ...

    最新Python3.5零基础+高级+完整项目(28周全)培训视频学习资料

    第2周 本节鸡汤 模块初识 pyc是什么 python数据类型 bytes数据类型 列表的使用 元组与购物车程序练习 购物车程序练习实例 字符串常用操作 字典的使用 三级菜单实例 本周作业-购物车优化 第3周 作业 上节内容回顾 ...

    Python 小题整理

    os 操作系统 random 随机 queue 队列 time 时间 threading 线程 multiprocessing 进程 第三方库: Django Flask这两个也算 requests selenium scrapy celery等 2__init__和__new__ 的区别? __init__ 在对象创建后...

    精通windows server 2008 命令行与powershell 电子书PDF单文件完整版

    第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——...

Global site tag (gtag.js) - Google Analytics