- 可执行程序包括BSS段、数据段、代码段。 在类UNIX系统下可使用size命令查看可执行文件的段大小信息。如size a.out: ~/Desktop/MyC$ size a.out text data bss dec hex filename 1672 600 8 2280 8e8 a.out 123 1.数据段存放已初始化的全局变量和静态变量,数据段属于静态内... 可执行程序包括BSS段、数据段、代码段。 在类UNIX系统下可使用size命令查看可执行文件的段大小信息。如size a.out: ~/Desktop/MyC$ size a.out text data bss dec hex filename 1672 600 8 2280 8e8 a.out 123 1.数据段存放已初始化的全局变量和静态变量,数据段属于静态内...
- 预处理:修改代码。用#include指令添加相关的头文件,编译器可能还需要根据实际情况跳过程序中的某些代码或补充一些代码,可以用#define和#ifdef来实现。编译:转换成汇编代码。计算机只能理解更低层的机器代码指令。而生成机器代码的第一步就是把C语言源代码转化为汇编语言代码。汇编:生成目标代码。编译器把这些汇编代码(都是些符号代码)汇编成机器代码或目标代码,即CP... 预处理:修改代码。用#include指令添加相关的头文件,编译器可能还需要根据实际情况跳过程序中的某些代码或补充一些代码,可以用#define和#ifdef来实现。编译:转换成汇编代码。计算机只能理解更低层的机器代码指令。而生成机器代码的第一步就是把C语言源代码转化为汇编语言代码。汇编:生成目标代码。编译器把这些汇编代码(都是些符号代码)汇编成机器代码或目标代码,即CP...
- 我们通过编译一个程序test.c,代码如下,来了解编译程序的过程。 #include <stdio.h> int main(){ printf("Hello world!"); return 0; } 1234567 1.预处理(Preprocessing) ~/Desktop/test$ gcc -E test.c -o test.i ~/Des... 我们通过编译一个程序test.c,代码如下,来了解编译程序的过程。 #include <stdio.h> int main(){ printf("Hello world!"); return 0; } 1234567 1.预处理(Preprocessing) ~/Desktop/test$ gcc -E test.c -o test.i ~/Des...
- 反汇编一个简单的C程序并分析 C 源码: int g(int x) { return x+1; } int f(int x) { return g(x); } int main(void) { return f(2) + 3; } 1234567891011121314 汇编源码: 1 g: 2 pushl %ebp 3 movl %esp, %... 反汇编一个简单的C程序并分析 C 源码: int g(int x) { return x+1; } int f(int x) { return g(x); } int main(void) { return f(2) + 3; } 1234567891011121314 汇编源码: 1 g: 2 pushl %ebp 3 movl %esp, %...
- 写在最前 笔者在动手写此操作系统时是一名大学本科大二的学生,可能文章中会有好多地方我没有解释清楚,可能也会有许多地方出现错误,我恳请各位读者能提出质疑和纠正我的错误,谢谢! 参考书籍: 《30天自制操作系统》川合秀实《ORANGE’S:一个操作系统的实现》 开发环境 笔者采用以下开发环境 Apple Macbook AirUbuntu 12.04 ... 写在最前 笔者在动手写此操作系统时是一名大学本科大二的学生,可能文章中会有好多地方我没有解释清楚,可能也会有许多地方出现错误,我恳请各位读者能提出质疑和纠正我的错误,谢谢! 参考书籍: 《30天自制操作系统》川合秀实《ORANGE’S:一个操作系统的实现》 开发环境 笔者采用以下开发环境 Apple Macbook AirUbuntu 12.04 ...
- 上几篇文章,我们一直在讨论的都是 GDT 相关的一些问题,现在我们知道在系统在从实模式向保护模式跳转时,GDT 是必须要准备的结构。在介绍这一跳转之前,这篇文章我们来介绍两个概念:一致代码段和非一致代码段。 首先,我们先来看几个问题: 一致代码段和非一致代码段是什么?为什么要有一致代码段和非一致代码段?系统提供怎样的机制来使用户程序访问内核数据?程序如何在... 上几篇文章,我们一直在讨论的都是 GDT 相关的一些问题,现在我们知道在系统在从实模式向保护模式跳转时,GDT 是必须要准备的结构。在介绍这一跳转之前,这篇文章我们来介绍两个概念:一致代码段和非一致代码段。 首先,我们先来看几个问题: 一致代码段和非一致代码段是什么?为什么要有一致代码段和非一致代码段?系统提供怎样的机制来使用户程序访问内核数据?程序如何在...
- 内核编程语言和环境 1. as86汇编器 语法: as[option] –o objfile srcfile .表示编译过程中的位置计数器 Objfile分为三个段(区):正文段(.text):程序的执行代码和只读数据 数据段(.data):可读/写的数据 未初始化数据段(.bss... 内核编程语言和环境 1. as86汇编器 语法: as[option] –o objfile srcfile .表示编译过程中的位置计数器 Objfile分为三个段(区):正文段(.text):程序的执行代码和只读数据 数据段(.data):可读/写的数据 未初始化数据段(.bss...
- 在上一篇文章《环境搭建以及第一个Hello-World》中,笔者讲了如何安装 bochs 以及运行一个 helloworld 操作系统,但是使用上一篇文章中的方法安装的 bochs 是不支持调试的,下面我讲介绍如何使用源码编译的方法来安装 bochs,以及使用 bochs 来调试操作系统。 编译安装 Bochs 下载 bochs 源码 http://so... 在上一篇文章《环境搭建以及第一个Hello-World》中,笔者讲了如何安装 bochs 以及运行一个 helloworld 操作系统,但是使用上一篇文章中的方法安装的 bochs 是不支持调试的,下面我讲介绍如何使用源码编译的方法来安装 bochs,以及使用 bochs 来调试操作系统。 编译安装 Bochs 下载 bochs 源码 http://so...
- 关于系统架构你不知道的那些事之架构设计的历史背景 前言机器语言(1940 年之前)汇编语言(20世纪40年代)高级语言第一次软件危机与结构化程序设计(20 世纪 60 年代~20 世纪 70 年代)第二次软件危机与面向对象(20 世纪 80 年代)软件架构的历史背景总结 前言 我认为,如果想要深入理解一个事物的本质,最好的方式就是去追寻这个事物出现... 关于系统架构你不知道的那些事之架构设计的历史背景 前言机器语言(1940 年之前)汇编语言(20世纪40年代)高级语言第一次软件危机与结构化程序设计(20 世纪 60 年代~20 世纪 70 年代)第二次软件危机与面向对象(20 世纪 80 年代)软件架构的历史背景总结 前言 我认为,如果想要深入理解一个事物的本质,最好的方式就是去追寻这个事物出现...
- 在Windows上,通过Cygwin编译的c程序在运行时,若有内存错误也会产生类似Linux上的core文件,但是该文件一般是以stackdump为后缀的文本文件,且文件提供的信息有限,只包含了程序coredump时函数调用的栈信息,不能像Linux一样使用gdb调试。所以,在Windows平台调试Cygwin编译的c程序不太方便。本文介绍一种方法,通过反汇编c程序,结合程序coredump... 在Windows上,通过Cygwin编译的c程序在运行时,若有内存错误也会产生类似Linux上的core文件,但是该文件一般是以stackdump为后缀的文本文件,且文件提供的信息有限,只包含了程序coredump时函数调用的栈信息,不能像Linux一样使用gdb调试。所以,在Windows平台调试Cygwin编译的c程序不太方便。本文介绍一种方法,通过反汇编c程序,结合程序coredump...
- 本节书摘来自华章计算机《汇编程序设计与计算机体系结构:软件工程师教程》一书中第2章,第2.7节,作者是布莱恩·R. 霍尔(Brian R. Hall)[美] 凯文·J.斯隆卡(Kevin J. Slonka),爱飞翔 译。 本节书摘来自华章计算机《汇编程序设计与计算机体系结构:软件工程师教程》一书中第2章,第2.7节,作者是布莱恩·R. 霍尔(Brian R. Hall)[美] 凯文·J.斯隆卡(Kevin J. Slonka),爱飞翔 译。
- 本节书摘来自华章计算机《汇编程序设计与计算机体系结构:软件工程师教程》一书中第1章,第1.5节,作者是布莱恩·R. 霍尔(Brian R. Hall)[美] 凯文·J.斯隆卡(Kevin J. Slonka),爱飞翔 译。 本节书摘来自华章计算机《汇编程序设计与计算机体系结构:软件工程师教程》一书中第1章,第1.5节,作者是布莱恩·R. 霍尔(Brian R. Hall)[美] 凯文·J.斯隆卡(Kevin J. Slonka),爱飞翔 译。
- 本节书摘来自华章计算机《计算机组成与体系结构(原书第4版)》一书中第2章,第2.4.2节,作者是[美] 琳达·纳尔(Linda Null)朱莉娅·洛博(Julia Lobur)宾夕法尼亚州立大学,张 钢 魏继增 李雪威天津大学 李春阁 何 颖天津大学仁爱学院 译。 本节书摘来自华章计算机《计算机组成与体系结构(原书第4版)》一书中第2章,第2.4.2节,作者是[美] 琳达·纳尔(Linda Null)朱莉娅·洛博(Julia Lobur)宾夕法尼亚州立大学,张 钢 魏继增 李雪威天津大学 李春阁 何 颖天津大学仁爱学院 译。
- 本节书摘来自华章计算机《计算机组成与体系结构(原书第4版)》一书中第1章,第1.6节,作者是[美] 琳达·纳尔(Linda Null)朱莉娅·洛博(Julia Lobur)宾夕法尼亚州立大学,张 钢 魏继增 李雪威天津大学 李春阁 何 颖天津大学仁爱学院 译。 本节书摘来自华章计算机《计算机组成与体系结构(原书第4版)》一书中第1章,第1.6节,作者是[美] 琳达·纳尔(Linda Null)朱莉娅·洛博(Julia Lobur)宾夕法尼亚州立大学,张 钢 魏继增 李雪威天津大学 李春阁 何 颖天津大学仁爱学院 译。
- 本节书摘来自华章计算机《Python语言程序设计》一书中第1章,第1.1.1节,作者是王恺 王志 李涛 朱洪文。 本节书摘来自华章计算机《Python语言程序设计》一书中第1章,第1.1.1节,作者是王恺 王志 李涛 朱洪文。
上滑加载中
推荐直播
-
昇腾云服务ModelArts深度解析:理论基础与实践应用指南
2024/12/03 周二 14:30-16:30
Alex 华为云学堂技术讲师
如何快速创建和部署模型,管理全周期AI工作流呢?本期直播聚焦华为昇腾云服务ModelArts一站式AI开发平台功能介绍,同时结合基于ModelArts 的实践性实验,帮助开发者从理论到实验更好地理解和使用ModelArts。
回顾中 -
深度解析鸿蒙应用入门级开发者认证
2024/12/04 周三 16:00-18:00
Edi 华为云学堂技术讲师
本期直播将为开发者带来HCCDA-HarmonyOS&Cloud Apps认证课程系统介绍、详细阐述HarmonyOS 技术架构、理解HarmonyOS 技术理念,通过实例带领开发者应用快速上手。
去报名 -
鸿蒙应用入门:轻松掌握ArkTS开发语言
2024/12/05 周四 16:00-18:00
Edi 华为云学堂技术讲师
本期直播课旨在让开发者了解ArkTS语法、轻松掌握ArkUI组件开发,带你零门槛入门鸿蒙开发,掌握状态管理实验和渲染控制实验。
即将直播
热门标签