汇编语言-深入机器的内核

在学习汇编语言之前,虽然作为计算机专业的学生,但对于基础的计算机知识只能说是小白,对于计算机的认知还是很缺少理解的。
   了解到汇编语言的产生与发展后,我深感汇编语言作为直接和机器打交道的语言,有Face to Face的交流,这使汇编语言不像其他大多数的程序设计语言一样被广泛用于程序设计。在今天的实际应用中,它通常被应用在底层,硬件操作和高要求的程序优化的场合。
   初步了解汇编的基础知识,了解了计算机对于源代码,指令和数据,cpu和存储器之间的协作合同关系。理解了信息在计算机内的传递与分享。
   然而并不是每一位学习计算机的同学都是要做最核心、底层的工作。学习汇编语言程序设计,更大的意义,是将它作为学习计算机的一个途径,目标是理解计算机,对于学习计算机,能起到一种非常独特的作用。汇编语言能够直击计算机系统的核心,学习汇编语言程序的原理,阅读、编写和运行汇编语言程序,可以使我们加深对计算机原理、操作系统的理解,进而,理解整个的计算机系统体系。通过学习和使用汇编语言,就有机会钻到计算机的最核心部件中去,向上理解各种软件系统的原理,打下软件技术的理论基础,而向下呢,感知、体会和理解到机器内部硬件的底层逻辑功能。学习汇编语言程序设计,要编程序,要调试,我们将在这个学习过程当中,学会底层的程序调试和错误分析的方法,练这样的功夫,机会并不是很多的。大学中的很多课程,尽量不要死记硬背,只图通过考试,这样的话,我们才能够学到用于解决领域问题的相关知识,同时,得到深入到学科核心的钥匙。 
    汇编语言,让我认识到对于问题本质的探求,是要深入问题内核,而汇编语言便是操作计算机的原核心,掌握到这种语言。才能在原有的基础上进行创新,从而得到新理解,很好地认识这个物质与信息的世界。

时间: 2024-10-13 08:48:24

汇编语言-深入机器的内核的相关文章

查看linux机器配置&内核版本

[[email protected] bin]# uname  -a   Linux hadoop1 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux [[email protected] bin]#  cat /proc/version Linux version 2.6.32-431.el6.x86_64 ([email protected].bsys.dev.ce

如何参与Linux内核开发(转)

本文来源于linux内核代码的Document文件夹下的Hoto文件.Chinese translated version of Documentation/HOWTO If you have any comment or update to the content, please contact theoriginal document maintainer directly.  However, if you have a problemcommunicating in English yo

编写最简单的内核:HelloWorld

内核是操作系统最核心的内容,主要提供硬件抽象层.磁盘及文件系统控制.多任务等功能,由于其涉及非常广泛的计算机知识,很少被人们所熟悉,因而披上了一层神秘的面纱. 本文将从零开始实现一个最简单的内核,其可以通过x86系统的GRUB引导启动,并向屏幕输出"Hello World!"字符串.该内核代码非常简短,并且在本人的Debian 7系统中可以正常运行. x86机器启动过程 在具体实现这个内核之前,我们先看看机器具体是怎么启动并且把控制权交给内核的. x86的CPU固定地在物理地址为[0x

Linux0.11内核剖析–内核体系结构 ©Fanwu

Linux0.11内核剖析–内核体系结构 ©Fanwu <Linux内核完全注释>下载:http://files.cnblogs.com/files/HanBlogs/linux-kernel.pdf(进入pdf后要点击右下角保存喔^_^) 一个完整可用的操作系统主要由 4 部分组成:硬件.操作系统内核.操作系统服务和用户应用程序,如下图所示: 用户应用程序是指那些字处理程序. Internet 浏览器程序或用户自行编制的各种应用程序: 操作系统服务程序是指那些向用户所提供的服务被看作是操作系

一站式linux0.11内核head.s代码段图表详解

阅读本文章需要的基础: 计算机组成原理:针对8086,80386CPU架构的计算机硬件体系要有清楚的认知,我们都知道操作系统是用来管理硬件的,那我们就要对本版本的操作系统所依赖的硬件体系有系统的了解,有了系统的了解后才能全面的管理它,我们对8086,80386CPU架构的计算机硬件体系如果有非常深刻的认识,我们看源代码内核的时候,就可以更可能的以一种开发者的角度去思考代码的作用,先从全局的角度去思考问题,而不是采用一种众人摸象的思维从头看到末尾. 计算机编程C语言基础:linux内核基本都是用C

[转载] 内核代号101 — 动手写自己的内核

原文: http://www.geekfan.net/8663/ 有点意思的小文章, 揭开内核神秘的面纱. 本文由 极客范 - 何伟寰 翻译自 Arjun Sreedharan.欢迎加入极客翻译小组,同我们一道翻译与分享.转载请参见文章末尾处的要求. Hi, 大家好. 在这篇文章中,我们将从零开始,动手编写一个可以用GRUB来引导的简单x86内核,该内核会在屏幕上打印一条信息后挂起. 一个人写一个内核是一件简单的事情 X86机器是怎样启动的? 在我们思考怎样写一个内核之前,让我们先看一下x86机

Linux内核调试方法总结

一  调试前的准备 二  内核中的bug 三  内核调试配置选项 1  内核配置 2  调试原子操作 四  引发bug并打印信息 1  BUG()和BUG_ON() 2  dump_stack() 五  printk() 1  printk函数的健壮性 2  printk函数脆弱之处 3  LOG等级 4  记录缓冲区 5  syslogd/klogd 6  dmesg 7 注意 8 内核printk和日志系统的总体结构 9  动态调试 六  内存调试工具 1  MEMWATCH 2  YAMD

如何通过编译Linux内核打开IPVS(LVS)的debug模式

前言 为了定位keepalived VIP的问题, 一步一步定位到IPVS, IPVS默认是没有打开Debug模式的, 若需要打开Debug模式需要重新编译IPVS模块加载后才行, 最好的方式当然是仅仅编译IPVS模块就行, 但是实践过程中发现单独编译IPVS模块存在诸多问题, 暂且先放一放, 后续再整理整理单独编译IPVS模块的文章. 编译 查看编译机器Linux内核版本 先查看本地主机内核版本, 这一步主要是为了防止应用切换内核版本后不兼容, 故编译的内核尽量确保跟原本内核版本一致 [[em

内核启动时在挂载ubi文件系统时提示UBIFS error (ubi0:0 pid 1): ubifs_read_superblock: min. I/O unit mismatch

一.背景 1.1 笔者机器的内核错误信息如下: UBIFS error (ubi0:0 pid 1): ubifs_read_superblock: min. I/O unit mismatch: 2048 in superblock, 8 real 1.2 笔者为ubi文件提供的flash分区大小为32MiB 二.解决方法 修改在制作ubi文件系统时的页面大小参数 mkfs.ubifs的-m是用来指定页面大小参数的,当然其它参数也是需要适当调整的 如笔者原来的参数为:-m 2048 -e 12