会员
周边
新闻
博问
闪存
众包
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
Forever Hello World
Oh, my god. Segment fault.
博客园
新随笔
管理
09 2010 档案
汇编语言复习摘要九——转移指令的原理
摘要:1. 可以修改IP,或者同时修改CS和IP的指令称为转移指令。有两种类型转移:1)只修改IP是段内转移,如:jmp ax2)修改CS和IP是段间转移,如:jmp 1000:02. 操作符offset:offset是取得标号的偏移地址,例如:start: mov ax, offset start ; equal to : mov ax, 03. jmp称为无条件转移,可以只修改IP,也可以同时修改...
阅读全文
posted @
2010-09-27 21:03
Linjian
阅读(289)
评论(0)
推荐(0)
今天发现了一个很傻的设计
摘要:今天发现了一个很傻的设计,来自北京公司的不知哪位大哥写的: POS上的三种通讯方式:GPRS, TCP/IP, Modem。POS是一个终端,一般来说进行交易是不止一个主机的。不同主机进行交易的通讯方式可能不一样。于是,你必须通过代码来选择通讯方式,我看了代码,发现有几个地方巨傻: 第一、GPRS本来就写好的,成为一个独立文件。理论上讲,应该是TCP/IP, Modem也各成两个独立的文件,或...
阅读全文
posted @
2010-09-27 14:17
Linjian
阅读(235)
评论(0)
推荐(0)
汇编语言复习摘要八——数据处理的两个基本问题
摘要:1. 8086CPU处理数据的两个基本问题:1)处理的数据存放在哪个地方?2)要处理的数据有多长?2. bx, si, di, bp:这四个寄存器,都可以放在"[...]"来进行内存单元的寻址,其他寄存器都不可以,就是这么规定的,例如:mov ax, [bx]; mov ax, [si]; mov ax, [di+bp]; mov ax, [bp]; 都是合法的;但是:mov ax, [dx]; ...
阅读全文
posted @
2010-09-27 00:26
Linjian
阅读(237)
评论(0)
推荐(0)
汇编语言复习摘要七——更灵活的定位内存地址方法
摘要:1. 以字符形式给出的数据:在汇编程序中,以'...'方式指明的数据是以字符形式给出的,编译器把它们转化为响应的ASCII码。[代码]2. 大小写转换的问题:大小写字母的二进制码其实只有第5个bit(从0开始算起)是不同的,小写的字母第5个bit总是为1,而大写的总是为0. 所以,转换大小写无需判断字母是大写还是小写。and和or指令按位进行与或者或计算。下面是把字符串中的每个字符都转换成小写字母...
阅读全文
posted @
2010-09-26 19:31
Linjian
阅读(352)
评论(0)
推荐(0)
汇编语言复习摘要六——包含多个段的程序
摘要:1. 先考虑这样一个问题:计算以下8个数据的和,结果存放在寄存器ax中:0123h 0456h 0789h 0abch 0defh 0fedh 0cbah 0987h毫无疑问,要累加这些数据,就必须把这些数据先存放在内存单元中,然后循环读取每一个数据,进行累加。从何找到这段连续的内容单元?一般来说,我们无法自己决定使用哪段内存空间,所以把这个任务交给操作系统自己来决定:代码在上面的例子中,dw的意...
阅读全文
posted @
2010-09-25 21:41
Linjian
阅读(795)
评论(0)
推荐(0)
汇编语言复习摘要五——[BX] and loop
摘要:1. [bx]:[0]表示一个内存单元,其地址为:ds:0。同样道理,[bx]也是表示一个内存单元,偏移地址在寄存器bx中。比如:mov ax, [bx]:bx中存放的数据作为偏移地址,把一个内存单元送入ax中。mov [bx], ax:跟上面一样道理,只是把ax的内容送入内存单元[bx]中。2. Loop指令:Loop指令用于循环,其执行分为两个步骤进行:1) (cx) = (cx) - 1;(...
阅读全文
posted @
2010-09-25 00:42
Linjian
阅读(578)
评论(0)
推荐(0)
汇编语言复习摘要四——第一个汇编程序
摘要:1. 程序执行流程:简单说下,编写汇编程序->对程序进行编译和链接(注意,是两个动作)->执行可执行文件。操作系统将依照可执行文件中的描述信息,将可执行文件中的机器码和数据加载入内存,并进行相关的初始化,然后由CPU执行。2. 源程序:先来看看教材中第一个程序:[代码]1) 伪指令:汇编程序中包含两种指令,第一是伪指令,第二是汇编指令。区别在于:汇编指令是有对应的机器码的指令,可以被编...
阅读全文
posted @
2010-09-24 15:48
Linjian
阅读(1025)
评论(0)
推荐(1)
汇编语言复习摘要三——寄存器的内存访问
摘要:1. DS和[address]:8086CPU中寻址是用段地址×16+偏移地址来实现的。8086CPU有一个DS寄存器,通常用来存放要访问数据的段地址。而偏移地址则由[address]来决定。举例:mov bx, 1000Hmov ds, bxmov al, [0]表示寻址到1000:0,把该字节送给寄存器al。注意,不能直接用:mov ds, 1000H。这是硬件上的设计。2. 数据...
阅读全文
posted @
2010-09-24 11:29
Linjian
阅读(844)
评论(0)
推荐(0)
汇编语言复习摘要二——寄存器
摘要:CPU中的主要部件是寄存器,寄存器是CPU中程序员可以用指令来读写的部件。通过改变各种寄存器中的内容来实现对CPU的控制。8086CPU有14个寄存器,这里不一一列举。1. 通用寄存器:8086CPU的所有寄存器都是16位的,也就是可以存放两个字节。四个通用寄存器:AX,BX,CX,DX,通常用来存放一般性的数据。一个16位的寄存器可以存放的最大数值是FFFFH。每个寄存器可分为两个可独立使用的8...
阅读全文
posted @
2010-09-23 21:09
Linjian
阅读(814)
评论(0)
推荐(0)
汇编语言复习摘要一——基础知识
摘要:写点摘要,来自王爽老师那本《汇编语言》,以前大二的时候看过一次,复习一下。1、存储器:也就是我们平常所说的内存,指令和数据都是存放在存储器当中。2、指令和数据:都存储在存储器中。注意,两者只是应用上的概念,其实在存储器中,两者都是以二进制存放的,对于计算机来说,没有区别。3、存储单元:存储器被分成若干个存储单元,每个存储单元从0开始编号,一个存储单元是8个bit,也就是1byte。4、CPU对存储...
阅读全文
posted @
2010-09-23 17:45
Linjian
阅读(264)
评论(0)
推荐(0)
自语
摘要:最近总是感觉没有什么胃口,大餐也吃了不少,山珍海味也提不起我的兴趣,吃饭似乎就成了任务一般,总是不知道自己想吃什么。人也就瘦了下来,身体便自然处于所谓的亚健康状态。 我记得我大学的时候也有好几次出现这种状态,也是不想吃饭,连双腿都懒得移动了。仔细想了一番,经验中,不想吃饭有两种情况:一是这段时间你专注在某一件事上,导致你不想做其他事,甚至连吃饭都不行;二是你百无聊赖,直接导致你没有胃口。我大学的...
阅读全文
posted @
2010-09-22 11:31
Linjian
阅读(173)
评论(0)
推荐(0)
关于接口设计的一点看法
摘要:花了几天时间,我完成了一个静态库。昨天我决定把提供三个接口给应用程序调用,这三个接口其实有着业务流程上的顺序关系,即应用程序必须按照这样的调用顺序:A->B->C。我之所以提供三个接口,而不是抽象为一个,那是因为有些应用程序只需要执行到B这一步就可以满足需求了,而大部分应用程序则需要执行到C这一步才能完成其功能;提供了三个API,让应用程序的选择更加灵活,这是第一个原因;第二个原因,是...
阅读全文
posted @
2010-09-21 22:20
Linjian
阅读(1534)
评论(0)
推荐(0)
破窗户到底要不要容忍?
摘要:《程序员修炼之道》两位作者在书中很早就谈到:不要容忍破窗户。我不知道外国程序员的代码写得如何,但是,我觉得,在中国做程序员,很有可能你是要容忍的,也许你并不情愿,不管这个破窗户是你写的还是别人写的。 之前的项目中有一个最重要也是经常需要更改的模块——POS机的交易模块。因为这方面客户的需求往往是要从这个模块中来更改的,于是,程序员们来来往往几个人改了又改了,到最后这个模块...
阅读全文
posted @
2010-09-20 19:30
Linjian
阅读(250)
评论(0)
推荐(0)
你不是一个人在战斗
摘要:我一直渴望自己身处在这样一个开发团队:他们每个人对编程有很高的激情,对工作有强烈的责任感,对同事有春风般的友善,对困难有坚韧的耐心。是的,我的要求实在太多了。现实中,对于一个项目,我能问的常常只有一两个人,而且,他们有时候也无法帮得上忙,因为,不是每个人在每个方面都有经验。每每这个时候,我时常陷入了苦恼当中:我埋怨过——怎么没人来指导我;我恐惧过——...
阅读全文
posted @
2010-09-20 00:25
Linjian
阅读(224)
评论(1)
推荐(0)
求最大子序列
摘要:一直以来我有个错误的观点,就是数据结构和算法只要学习那些平时工作最常用的就可以了。这是典型的找借口行为。所以我打算开始认真复习好数据结构和算法,我目前熟悉的算法其实只有链表和动态数组,真是可悲。 Mark Allen Weiss那本《数据结构与算法分析》第二章,求最大子序列:-2 11 -4 13 -5 -2 最大子序列为20(11到13)。 题目不难,我也还没有看答案。目前我有个简单的想法:...
阅读全文
posted @
2010-09-15 00:04
Linjian
阅读(262)
评论(0)
推荐(0)
公告