计算机系统
见证大牛成长之路
这个作者很懒,什么都没留下…
展开
-
计算机系统----为什么要学计算机系统?
不要以为计算机科学与技术就是敲代码无意间看到这篇破壳,里面说的很多东西,可以说是直击我的心灵,我感觉我很受伤,在我大二刚结束的看到这篇文章,希望不会太晚.本来是想直接转载一下的,这样很方便的,但是动动鼠标的嫩而过记住什么?所以我决定摘抄里面比较重要的一些话!我觉得不止我一个人简单的认为计算机技术就是编程技术,而且这种想法还很根深蒂固!我估计不止我自己,肯定有成千上万的人和我一样,认原创 2015-08-07 21:06:02 · 2225 阅读 · 0 评论 -
走进汇编的世界
走进汇编的世界先来说一下问什么要学点汇编?首先来说一下尽管汇编不是我们熟悉的编程语言,但是终归还是语言,起码我们不用再和0,1打交道了!对于大部分,也包括我自己了,平常接触的都是高级语言,比如C#,C,C++,这些语言都是经过了各位大牛们多年的努力,经过多层的封装,才能让我们享受这样的待遇.这样一来,我们在平时的开发过程中,可以省去很多底层的麻烦,试想一下,如果你在写一个方法的时候,你还需要操原创 2015-08-16 18:58:43 · 1163 阅读 · 0 评论 -
浮点数的输入以及浮点数运算
浮点数的输入以及浮点数运算写在前面上一次我们讲解了IEEE的标准,还记得多少?之前我提到过,有很多小数是二进制浮点数无法表示的,因此就难免会遇到舍入的问题.这一点其实在我们平时的计算当中会经常出现,就比如我们之前提到过的0.3,就无法使用浮点小数来准确表示. 我使用C#写了一个程序,打印出0.3的二进制表示,是这样的一个数字:0 01111101 001100110011001原创 2015-08-16 15:47:27 · 6191 阅读 · 0 评论 -
数据格式,访问信息以及操作数指示符
数据格式,访问信息以及操作数指示符前言说好的今天去学车,穿上衣服又脱了,谁到了11点.哈哈,没啥吊事就接着干呗.本次讲的内容可以成为汇编的基础,因为汇编预言大部分时候在操作一些我们平时看不到的东西,因此本文想告诉大家汇编语言都是在操作什么玩意.或者更准确的说,各种汇编指令都是在操作什么样的对象. 汇编层次的对象在平时开发的过程中,CPU处理器的状态对开发者是隐藏的,我们看不到C原创 2015-08-17 13:57:40 · 1749 阅读 · 0 评论 -
数据传送指令详解
数据传送指令详解 前言上一章我们说了汇编语言的基础,包括数据格式,寄存器以及操作数的标识方式,接下来我们就应该去认识一下hiU币按语言当红真难过的格各个指令了.这些指令大部署很简单,但是组合在一起却能模拟出我们程序当中香烟的任何效果,确实很神奇. 数据传送指令 数据传送指令的目的是我了将一个数据从一个位置复制到另一个位置.既然如此,那么数据传送至零就会包含一原创 2015-08-17 15:55:10 · 18653 阅读 · 0 评论 -
算术与逻辑运算指令详解
算术与逻辑运算指令详解前言上一次讲解了数据传送指令,香型大家肯定对此有了一定的认识了.这些简单的汇编指令,却可以将复杂的程序井然有序的执行完毕,实在是让人惊叹. 算术与逻辑运算指令算术逻辑运算包括很多种,各级大家应该能很快想出来,比如常见的加减乘除,与或非,左移右移等等还有一个区地址运算符,大家可能想不到,但是看完下面这一部分之后,就会觉得这个原创 2015-08-18 14:23:36 · 7770 阅读 · 0 评论 -
特殊的算术操作指令详解
特殊的算术操作指令详解前言上一讲,我们说了常见的算术与逻辑运算指令,其中比较有特点的是leal指令,本次我们在介绍几个较特殊的操作指令,这些指令可以让只有32位的寄存器存储64位的数据是不是很吊? 正文 我们来看一下这些指令的大致介绍,如果又仔细看过上一讲的内容,可能会发现这里的指令有些眼熟,但是他们的作用却截然不同.以下是书中的一张概图:原创 2015-08-18 15:06:38 · 5205 阅读 · 0 评论 -
汇编中精妙的流程控制
汇编中精妙的流程控制 前言今天一天挺废啊,百无聊赖啊,唉,也不想学习,看了一天的电视了,不过好在我还是想看看OS中的东西,这次咱们一起来看看一个特别有趣的内容,就是汇编级的语言,如何利用寄存器实现if/for/while这些高级语言的流程控制,这一点十分神奇.保证你绝对想不到在汇编中是这样实现平时的流程控制的. 正文 条件码寄存器这个子原创 2015-08-19 19:15:48 · 1630 阅读 · 0 评论 -
汇编世界当中过程的经典
汇编世界当中过程的经典前言越是难的部分写的就得越详细,排版也得很漂亮,本来男的东西就不好理解,排版不好了更没有人看了.上一章和大家一起探讨了汇编当中对于流程控制的实现,其中12种条件码寄存器的组合比较困难,有付出就会有回报,你好好搞,早晚有一天会成功!程序设计语言发找到几天,过程已经是我们程序设计语言当中必备的功能,它可以使我们的代码结构更加清晰,也原创 2015-08-19 21:20:22 · 1571 阅读 · 0 评论 -
数组,异质结构以及指针的详解
数组,异质结构以及指针的详解前言昨天看了一部韩国电影,老千2,看到凌晨5点,不过发现韩国的棒子们确实养眼,女的贼拉漂亮,还有大尺度哦~咱们上一次分析了过程(方法)的实现,其中精妙的栈帧占据了首要的地位,不知道各位还能否记忆起来.今天咱们一起来看看数组的相关内容,相比之下,数组和流程控制与过程的实现难度差不多,尤其是动态数组可能还要稍微难一些,因为大家做好原创 2015-08-20 16:10:23 · 1717 阅读 · 0 评论 -
X86的孪生兄弟,Y86指令体系结构
X86的孪生兄弟,Y86指令体系结构前言为啥我的排版还是这么丑?排版如人啊,唉.说实话,上一章的内容我没搞明白,先不管了,先放一下,个人比较喜欢鲸吞的学习方式. 正文 Y86指令体系结构Y86是一个指令体系结构(ISA),它是一个写这本书的作者出的指令集.目的是为了让我们更加清晰地了解ISA,就像在读编译原理的时候,作者会教你做个原创 2015-08-20 19:20:35 · 9046 阅读 · 0 评论 -
二进制浮点数,IEEE标准
二进制浮点数,IEEE标准额...啥叫IEEE标准?别着急啊,往后看,这一次我和大家一起学习一下浮点数,这里没有无符号,没有补码,俗话说得好,上帝给你关了一扇门,肯定给你打开一扇窗,没有那种东西饿,肯定有别的.如果你真正进入了浮点数的世界,离着你称霸武林不远了! 写在前面整数运算虽然能解决计算机当中有关信息的一部分分存储,运算等功能,但却仍然是不够的.否则结社我们要做一个超市原创 2015-08-16 13:39:15 · 9128 阅读 · 0 评论 -
二进制整数的加,减运算
二进制整数的加,减运算 前言在平时的编程中,当进行整数运算时,经常会遇到一些奇怪的结果,比如两个正数相加出现了负数,两个负数相加出现了正数,这些都是因为数值表示的有限性导致的.来看一个案例: int a = 0x7FFFFFFF; int b = 0x7FFFFFFF; Conso原创 2015-08-14 14:59:16 · 2932 阅读 · 0 评论 -
与TCP/IP协议的初次见面(一)
与TCP/IP协议的初次见面(一) 前言 今下午刚才女朋友那边回来,唉,算是情人节去找她吧,穷屌丝住不起好酒店,住的打折酒店,不过女朋友来姨妈了,万幸啊,牙还疼得不行,这几天光照顾她了,没空写博客了.回来快补上!因为一直想看TCP/IP的知识,因为感觉网络知识方面的内容一直是我的软肋,其实啥都是我的软肋,穷屌丝一枚,啥都不会.慢慢努力!原创 2015-08-23 20:08:12 · 1078 阅读 · 0 评论 -
高大上的链路层简介
高大上的链路层简介前言这一次主要讨论一下链路层,链路层属于最底层的那一层,还记得链路层相当于整个快递过程的那一部分吗?理解好这一次需要一定的硬件知识,如果你是像我一样笨的屌丝,不明白就不明白吧,没啥大不了的. 链路层到底是什么直观地说,链路层其实就是我们平时接触的网卡和网卡的驱动程序(当然,也可以指其他的网络接口和驱动,比如3G和驱动)原创 2015-08-23 21:50:29 · 1059 阅读 · 0 评论 -
计算机概述
计算机的概述计算机的组成:计算机由硬件和软件组成,这连个部分共同协作完成程序的运行.这两部分如何协作?如何打交道?慢慢来. 信息的表示:信息的表示说到底就是位加上下文.举个例子,比如一串二进制数11011101,在表示整数的时候他表示221,但是在Java的class文件中,它可能代表一个JVM指令. 程序的编译:对于一个简单的C语言的程序来说,一般要经过预处原创 2015-08-11 20:41:45 · 1030 阅读 · 0 评论 -
金字塔形的存储设备,操作系统的抽象概念
金字塔形的存储设备,操作系统的抽象概念系统在数据的创书上花费了大量的时间.硬件开发商(主要是那个做存储介质的人)为了减少这种数据传输的时间成本,此阿勇了以中高速缓存的技术去减少这种时间成本. 高速缓存被置放于处理器中,与处理器中寄存器文件直接进行数据交换,这样大大较少了数据传输的时间成本,使得程序的运行速度可以得到数倍的提升.作为一个搞电脑的,入股可以适当的利用高速缓存去存放一些程序运原创 2015-08-12 20:12:27 · 1651 阅读 · 0 评论 -
布尔代数以及C语言上的位运算
布尔代数以及C语言上的位运算布尔代数是一个数学知识体系,它在0和1的二进制上演化而来. 我们不需要去彻底了解这个知识体系,但是里面定义了集中二进制的运算,却是我们在平时的编程过程中也会遇到的.这四种运算分别是或,与,非,异或.下图展示了布尔代数的知识体系,对这四种运算的定义: 从左到右依次是非,与,或,异或.这个图阐述的是针对一位二进制的运算结果,我们可以将其扩大到N原创 2015-08-13 19:53:49 · 1598 阅读 · 0 评论 -
信息的存储与值的计算
信息的存储与值的计算前言我们很难想象出来,计算机只能识别0和1这样再简单不过的数字,却给人们带来了巨大的变化.对于无法与人脑相比的计算机来所,简单的1和0就是适合他们的数字.不过呢,一个1或者1个0往往代表不了什么意义,,他们必须被赋予上下文,才能有具体的含义.比如,如果我们知道1和0代表的布尔类型的值,那么我们就知道1是true,0是false. 对于二进制所表示的数字来说,主要原创 2015-08-13 19:11:17 · 786 阅读 · 0 评论 -
并发与并行以及抽象的重要性
并发与并行以及抽象的重要性前言并发与并行已知时IT界的热词,大到西天诸佛,小到织席贩履之徒都应该知道吧?并发是指一个同时具有多个活动的系统,并行则是指用并发使得一个系统运行的更快.并发是一种模式,并行是实现这种模式的手段之一.并发是虎,并行是翼. 线程级并发在进程的抽象概念下引入了线程,而线程级并发的概念就是指多个线程在同一时间(并非是绝对同时)活动.OS从单处原创 2015-08-12 20:38:47 · 622 阅读 · 0 评论 -
整数的表示方式精解
整数的表示方式精解这一届比较重要,不对,是很重要.上一次我们说了布尔代数以及C语言的位运算. C语言中的整数类型以及范围以C语言为例,C语言当中提供了多种整数类型,一共始终,位数为1,2,4,8,其中32位机器上,4位的有两种,64位的机器上,8位的有两种.下面是32位OS上,这十种整数的范围: 32位的系统不常见了,来看一下64位OS上的范围: 说实话原创 2015-08-13 21:15:26 · 1562 阅读 · 0 评论 -
C语言的有符号与无符号,二进制整数的扩展与截断
C语言的有符号与无符号,二进制整数的扩展与截断 前一节说了整数的表示方式,,也就是无符号编码与补码编码.这一届说一下二进制整数的扩展与截断,这部分内容与C语言挂钩.so,我们先看以下C语言的有符号和无符号数. C语言中的有符号数和无符号数有符号数和无符号数的本质区别其实就是采用的编码不同,前者采用补码编码,后者采用无符号编码. 在C语言中,有符号数和无符号数原创 2015-08-14 10:31:56 · 5136 阅读 · 0 评论 -
硬件的魅力
硬件的魅力 前言今天睡到了11点,挺嗨啊,下午去找女朋友,估计这几天写不了博客了,等回来了补上吧.本次要介绍的是一点硬件知识和HCL语言的内容. 正文 从疑问开始 首先,在介绍本文的内容之前,我们先来考虑一个考斯简单的问题.众所周知,计算机归根结底是在0和1打交道,那么到底0和1是如何被计算机记住的呢? 怎么样,是不是有点像1+1为啥等于原创 2015-08-21 13:32:46 · 1104 阅读 · 0 评论