王爽《汇编语言》第2版学习心得与习题详解(第一章)

来源:互联网 发布:云主机怎么绑定域名 编辑:程序博客网 时间:2024/06/05 17:18
 

本人最近打算学好汇编语言,为今后的程序设计、操作系统原理的研究打好基础。

本人挑选的教材是比较经典的王爽《汇编语言》第2版,并将自己的笔记和对每道习题的详细分析post出来,供大家参考。不妥之处请不吝指正。本教程分章连载,大家可以用博客的搜索功能找到各章。

汇编语言学习相关资料下载(包括王爽《汇编语言》第2版)  

【学习心得】
1.1机器语言:
     学习汇编语言的目的:因为机器语言难记难用,而汇编语言是对机器语言的助记。注意这里强调汇编语言并非是一种全新创造出来的机器语言,而只不过是对机器语言的一种抽象表示罢了。汇编语言与机器语言一一对应

1.3汇编语言的组成
    汇编语言的指令分为3类,其中只有汇编指令最终会被计算机执行,而伪指令与运算符等其它符号(主要是指那些用于汇编程序书写格式的符号)则只被编译器识别,无与之对应的机器码,更不会被计算机执行。

1.4存储器
    存储器大体上讲分为2类:一类叫内存储器(也就是我们平常所说的内存),用于指令和数据的临时存储。其特点是速度较快,但保存的数据断电后即消失。另一类叫外存储器(也就是我们平常所说的硬盘、光盘、软盘、磁带等存储介质),主要用于程序代码和数据的长期存储。其特点是保存的数据断电后很长一段时间内不会消失(通常硬盘、U盘可达10年以上数据保存时间,光盘由于暴露在空气中,存储时间是要打一些折扣的,不过理论上,这些个介质的存储时间都是永久的),但速度较慢。因而,我们平时所下的MP3歌曲、装的软件、写的word文档,其实都存放在外存储器里。内存储器不仅容量相比外存储器要小很多(目前民用的内存条单条最大容量也就4G,而硬盘至少都上500G了)而且价格高昂。然而,这两种存储器都是计算机正常运作所必须的。

1.5指令和数据
    指令和数据在计算机中的表示没有任何区别,只不过计算机在处理时对它俩进行区别对待罢了。

1.6存储单元
    在8086/8088 IBM PC兼容机中,一个存储单元的大小是一字节(1 Byte),1 Byte = 8 bit(字位,即一个二进制位)。计算机以1024为跨度计量Byte以上的各存储单位,如1 KiloByte(KB,即千字节) = 1024 Byte, 1 MegaByte(MB,即1兆)= 1024 KiloByte,1 GegaByte(GB,即1吉)= 1024 MB,而存储器厂商的计量单位则是以1000为跨度的,即1 KB = 1000B,1 MB = 1000 KB, 以此类推。因而我们买到手的硬盘、U盘往往并没有标注容量的那么大,这并非是所买的硬盘有问题,而是由于这种诡异的计量跨度不同所造成的“误会”。当然,如果厂商在硬盘中预装了数据,那么拿到手时,实际可用容量还会减小。

1.7 CPU对存储器的读写
    CPU对存储器的读写大体是这样进行的:首先通过地址总线告诉存储器所要读写的存储单元的地址,然后通过控制总线告诉存储器是要执行读操作还是写操作。如果是读操作,则存储器会通过数据总线返回CPU所要的数据;如果是写操作,则CPU会通过数据总线传送所要写入的数据给存储器。

1.8地址总线
    注意图中的二进制数据由低位至高位应当从上往下读,每4位一断表示一个16进制数。

1.15内存地址空间
    CPU对于计算机上的各存储器采用统一的编址,即将RAM(主要是指CPU内的高速缓存和扩展插槽上的内存)、ROM等看作一个虚拟的统一逻辑存储器。CPU对于个存储器容量的支持能力取决于CPU的寻址能力,对于超出CPU寻址能力的存储空间CPU无法利用,这就是为什么内存的容量不能无限扩展(当然内存自身的制作工艺也是一个主要因素,但就目前来看还是主要受限于CPU和主板的带宽)。
而且,CPU有4GB寻址能力并不代表该机支持4GB的内存条。从上述结论可知,CPU的一部分地址空间要用于其它RAM、ROM的使用,因而实际可调用内存将小于4GB。有关这方面的更多探讨参见我转载的一篇博文:认识4G地址空间的局限—-MMIO内存映射的问题

【习题详解】
检查点1.1:
(1)答案是13。寻址能力为8192B = 2^13B,即总线宽度为13.
(2)第1空答案是1024,因为1KB = 1024B,一个存储单元的大小是1B。第2、3空答案是0、1023,因为存储单元是从0开始编号的。
(3)第1空2^20,第2空2^10
(4)略,见之前的学习心得
(5)第1空:64KB (2^6 * 2^10B). 第2空:1MB. 第3空:16MB. 第4空:4GB
(6)从1到5空依次是:1,1,2,2,4。注意此处要区别一次传送数据与第5题中寻址能力的不同。
(7)第1空:512.  第2空:256
(8)答案是二进制

原创粉丝点击