最近看了谢恩铭同学的博客“学习汇编对编程有什么帮助”(http://www.jianshu.com/p/ef4b0442b3ce),感觉很有必要系统地学习一下汇编语言,于是把书架上的《汇编语言》(第三版,王爽著)拿了出来,加入了最近的学习计划中。
本系列文章主要分享我在学习过程中的心得和知识点总结,以及课后习题的答案。
除谢恩铭分享的答案外,我还在网上搜到如下答案文档:
http://www.mianfeiwendang.com/doc/f45b265b0724c324a7d3ee5f/3
此外,也分享一个汇编编程论坛:
http://bbs.bccn.net/forum-126-1.html
最后,我是在虚拟机中安装win7 32系统,来运行汇编程序的,下面的链接是配置16汇编的方法:
http://www.cnblogs.com/S-E-P/archive/2011/05/18/2049730.html
本文后续部分将贴出第一章《基础知识》各个监测点习题答案。
监测点1.1
1,13
8kB = 8 * (2 ^ 10) B = 2 ^ 13 B
2,1024 0 1023
1 kB = 2 ^ 10 B = 1024 B
3,8192 1024
简单,不解释
4,2 ^ 30 2 ^ 20 2 ^ 10
简单,不解释
5,64 1 16 4
注意,32位地址总线的寻址能力是4GB
6,1 1 2 2 4
一根线传一个bit,8bits = 1 Byte
7,512 256
1024 / 2 = 512 1024 / 4 = 256
8,二进制
在存储器中,指令和数据没有任何区别,都是二进制信息
知识图谱(chapter 1)
1.1-1.10小结
1,汇编指令是机器指令的助记符,同机器指令一一对应。
2,每一种CPU都有自己的汇编指令集。
3,CPU可以直接使用的信息在存储器中存放。
4,在存储器中,指令和信息没有区别,都是二进制信息。
5,存储单位从零开始编号。
6,一个存储单元可以存储8个bit,即8位二进制数。
7,1Byte = 8bits, 1kB = 1024B, 1MB = 1024kB, 1GB = 1024MB。
8,每一个CPU芯片都有许多管脚,这些管脚和总线相连。也可以说,这些管脚引出总线。一个CPU可以引出3种总线的宽度标志了这个CPU的不同方向的性能:
地址总线的宽带决定了CPU的寻址能力;
数据总线的宽带决定了CPU与其他器件进行数据传送时的一次数据传送量;
数据总线的宽带决定了CPU对系统中的其他器件的控制能力。
9,内存地址空间
从CPU的角度来看,系统中的所有存储器中的存储单元都处于一个统一的逻辑存储器中,它的容量受CPU的寻址能力的限制。这个逻辑存储器即是我们所说的内存地址空间。
这里所说的,与OS层面的地址空间不同。