荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: Mill (</font><script></script><font>), 信区: Program
标  题: ASM教学二
发信站: BBS 荔园晨风站 (Sun Oct 18 15:48:29 1998), 站内信件

※  对初学者而言,MASM 的功能太强了,它的许多命令太复杂,
   以致常会妨碍了我们学习组合语言的兴致与效果。
※  某些高明的指令事实上只对颇有经验的组合语言程式师有用
   ,对我们而言,是太过高深了。
※  事实上,使用 MASM 就好像在开 747 一样,只有 DEBUG 才有
   螺旋桨飞机的味道;因为,在 DEBUG 上面的控制全部都跟组合
   语言有直接的关系。
※  如果您觉得组合语言蛮有趣的,终究您必须要用到 MASM。
※  为了使学习组合语言程式有个好的开始,您必须要先排除那些
   华丽复杂的命令,将心力集中在最重要的几个命令上。
※  随著您对 MASM 技巧的成长,最後您一定会感觉它是您在组合
   语言程式设计上的左右手。

※  数字系统是电脑最常用的『思考模式』,也是
   我们和电脑沟通的最佳工具,您一定得认识它。
※  同时,您也会知道中/英文内码的结构。

※  硬体是个人电脑的躯壳,您绝对不能忽视硬体
   五大部门之间的关系。
※  记忆体与中央处理    的正确观念是组合语言
   必修的入门课程,您一定要熟悉它。
※  作业系统模组化的完整概念是组合语言的基础
   ,您一定要彻底  解它。
※  在远古时代,人类就懂得使用『符号』来表示物体的数量。
※  起初,这些符号只是口述的。
※  例如∶一头长毛象、二块石头、三个人 ...。
※  後来逐渐演化出较进步的数字系统,如: 结绳、画线 ...。
※  随著人类文明的演进,人们所要计算的数量愈来愈大,发现
   这些方法不太方便。
※  罗马人尝试以单独的符号来表示 ⒈ 以外的数值,例如∶
   V代表 ⒌,X 代表 ⒈0 等。
※  虽然後来证明仍不切实际,但已为近代的数字系统,
   开启了新的方向。

※  随著经验的累积,阿拉伯人归纳出了一些基本原则∶
1.某个数值以下的数以单独的符号表示。
2.超过该数值时,则在另一行重新开始。
3.使用一个特殊符号来表示『空』行。
※  於是,阿拉伯人以人类的手指数,为分行的基准数值,创
   造出了大家所熟悉的阿拉伯数字 0,1,2,3,4,5,6,7,8,9。
※  在组合语言中,我们常在数值後面加上『d』,表示其为
   十进位(Decimal)数。

※  由於人类有十根手指,所以藉由扳手指的便利,我们逐渐
   习惯了十进位的数字系统。

※  上帝以其形体创造人类,同样的,人类也以自己的形体付与
   电脑生命。
※  电脑本身也具有实体躯壳与思考的灵魂。
※  电脑的躯壳就是我们常见的『硬体』,包含五大单元∶

                   算术逻辑单元
    输入单元             控制单元          输出单元
                     记忆单元

※  电脑的灵魂就是 MS-DOS,用来控制这五大部门的运作。
※  『 组合语言 』就是用来撰写 MS-DOS 的基本语言。

※  『中央处理单元,CPU』主要是指微处理机,是可以执行
   电脑所有算术/逻辑运算与基本 I/O 控制功能的单一晶片。
※  组合语言与特定的微处理机晶片之间的关系牢不可分,也就
   是说,不同的微处理机其组合语言的指令语法亦不相同。
※  个人电脑由 1981 年推出至今,其主要微处理机之发展过程
   为∶ 8088 → 80286 → 80386 → 80486。
※  愈後面出来的微处理机,其功能愈强,指令亦愈复杂,但其
   必能包含前面微处理机的功能。
※  为了确保您的组合语言程式可以适用於各种机型,所以仍以
   使用 8088 的组合语言,其相容性最佳。
※  『 组合语言入门 』亦以解说 8088 组合语言为主。

※  像人类的脑细胞一样,电脑使用IC(内含无数个电晶体)
   当『 主记忆体』 。
※  记忆体是电脑运作中的关键成分,也是电脑在工作当中储存
   资讯的地方。
※  主记忆体的组织有如许多可存放数值的储存位置,各以一个
   『位址』来识别。
※  个人电脑所使用的储存位置是由『8 个位元』所组成,称作
   『位元组』,是个大小恰好可以放进一个字元的资讯单位。
※  以一个组合语言程式设计师的观念而言,『记忆体』就是电
   脑内部可以用来存放『位元组』的地方。

※  每一记忆体位置都有一个用来定位的位址。
※  位址是一个数字,从零开始,往最高位址增加。
※  由於位址是数字,电脑便能用其算术能力来计算与处理记忆
   体位置,而且各种电脑的设计都有其位址大小的限制。
      0100      10010000
      0101      00000010
      0102      11000011
      0103      00000000
      位址    有效的资料

※   8088 系列的个人电脑采开放式的硬体架构,以『扩充槽』
   与其他周边装置互通讯息。
※  每个扩充槽上有 62 条通道(I/O channel),其中分配 20 条
   给记忆体用。
※  亦即,在 8088 中,位址有 20 个位元长,所以微处理机拥
   有达⒉ 的定址空间,相当於⒈M(1024K,1K=1024)Byte
   ,这也是 MS-DOS 的有效控制范围。
※  大多数 8088 能做的算术都限於处理 16 位元的字元,其范
   围从⒉ ~⒉ ,即 0 到 64K。
※  所以,必须用『分段式定址』的观念才能控制整个位址。

※  完整的 20 位元位址可分成两部份,皆由 16 个位元组成∶
1.区段部分(Segment)∶原来 16 个位元後面加上四个二进位0
                (一个 16 进位的0),变成 20 个位元
                ,可设定至 1 M 中任何一个 64K 区段。
2.相对部份 (Offect)∶直接使用 16 个位元来接著区段部份,
                指向该区段中的任何一个位址。
※  实际上,区段部份常成为相对部份能够定址 64K 工作区域
   的一个『基础位址』。
※  在组合语言中,您常会看到分段式定址写成∶『2222:3333』
   ,其实际的 20 位元位址值为∶

※  暂存器(Register)∶是电脑内部的一个实体元件,有点像
   记忆体的一个位址;不过,由於它是微处理机晶片的一部分
   ,而不是记忆晶片的一部分,所以在暂存器之间的资料传送
   非常快速。
※   8088 指令还可以在暂存器上做许多在记忆位置上无法做到
   的事,例如∶
1.可将暂存器内的资料执行算术及逻辑运算。
2.存於暂存器内的位址可用来指向记忆体的某个位置。
3.暂存器可以用来读写资料到电脑的周边设备。

※  8088 有 8 个 8 位元的『一般暂存器』,分别是∶
   AH 与 AL,BH 与 BL,CH 与 CL,DH 与 DL。
※  这些 8 位元暂存器可配对组成 16 位元暂存器∶
AH AL =  AX  『累加暂存器』常用於运算。
BH BL =  BX  『基底暂存器』常用於位址索引。
CH CL =  CX  『计数暂存器』常用於计数。
DH DL =  DX  『资料暂存器』常用於资料传递。

※  为了运用所有的位址,8088 也设定了四个『区段暂存器』,
   专门用来保存位址的区段部份∶
 CS  用於设定程式码区段(Code Segment)的位址。
 DS  用於设定资料区段(Data Segment)的位址。
 SS  用於设定堆叠区段(Stack Segment)的位址。
 ES  用於设定额外区段(Extra Segment)的位址。
※  当一个程式要执行时,DOS 就要来决定程式码、资料和堆叠
   各要用到那些位置,而设定区段暂存器 CS,DS,SS 来指向
   这些起始位置。

※  通常程式语言处理机都是将『资料区段暂存器-DS』固定,
  而根据需要修改『程式码区段暂存器-CS』。
※  所以,DOS 和『程式语言处理机』可以在可定址资料空间小
   於 64K 的情况下,让程式可写成任意大小。
※  一般而言,BASIC 直译器(Interpreter)就是程式处理机,
   而您所认为的 BASIC 程式,其实只是其资料的一部分。
※  所以,您的程式和其资料组合起来的大小,限制在 DS 所同
   时涵盖的 64K 内。
※  这就是一般 BASIC 程式和 COM 档案不得大於 64K 的原因。
※  8088 以记忆体做为工作场所,却使用暂存器做为草稿纸,以
   加速工作。

※  除了前面所提的暂存器外,还有一些特殊功能的暂存器∶
 IP 指令指标(Intruction Pointer)暂存器
    与 CS 配合使用,可追踪程式的执行过程。
 SP 堆叠指标(Stack Pointer)暂存器
    与 SS 配合使用,可指向目前的堆叠位置。
 BP 基础指标(Base Pointer)暂存器
    可用作 SS 区段的一个相对基础位置。
 SI 来源索引(Source Index)暂存器
    可用来提供相对於 DS 区段之来源指标 。
 DI 目的索引(Destination Index)暂存器
    可用来提供相对於 ES 区段之目的指标 。

--

--
                         ┏━━━━━━━━━━━━━┯┓
                         ┃ 弃我去者,昨日之日不可留, ╚┫
                         ┃ 乱我心者,今日之日多烦忧.   ┃
                         ┗━━━━━━━━━━━━━━┛

                                                Waiting For You...

※ 来源:.BBS 荔园晨风站 bbs.szu.edu.cn.[FROM: 192.168.0.167]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店