《汇编语言(第3版)》章节试读

出版日期:2013-9-1
ISBN:9787302333142
作者:王爽
页数:337页

《汇编语言(第3版)》的笔记-2.7 "段地址 16+偏移地址=物理地址"的本质含义 - 2.7 "段地址 16+偏移地址=物理地址"的本质含义

注意,这里讨论的是8086CPU段地址和偏移地址的本质含义,而不是为了解决具体的问题而在本质含义之上引申出来的更高级的逻辑意义。不管以多少种不同的逻辑意义去看待"段地址 16+偏移地址=物理地址"的寻址模式,一定要清楚地知道它的本质含义,这样才能更灵活地利用它来分析、解决问题。如果只拘泥于某一种引申出来的逻辑含义,而模糊本质含义的话,将从意识上限制对这种寻址功能的灵活应用。

《汇编语言(第3版)》的笔记-第四章 - 第四章

本来是做操作系统相关实验,需要了解一些汇编知识,所以才来看这本书的。
然后发现本书的汇编描述是Intel格式的,我之前看的汇编代码是在Linux上用gcc 编译出来的AT&A格式的,和本书上的描述有些出入。开始有点不解,看了好久经同学提醒才发现这个事情。
另外,本书实验和讲解是在MS-DOS环境下运行的,运行cpu是Intel的8086 ,可能是因为成书年代久远。所使用的工具什么的和Linux下有些出入。不过相关理念还是一致的。
还有,本书的叙述重点是汇编语言,所以作者在遇到一些相关的其他方面的知识时,直接说“不是本文论述范围”就强行中断,也不给点线索。觉得这种方式不是很友好。
总的来说,觉得这本书还是挺适合初学者的。

《汇编语言(第3版)》的笔记-第75页 - 实验2 用机器指令和汇编指令编程

Q:为什么2000:0~2000:f中的内容会发生改变?
A:这一段是堆栈,可以看到压入的内容依次有IP,CS。
事实上堆栈里有意义的内容并不止这些。T命令利用的是单步中断,所以中断前需要保护现场。在P249有一些说明。
参见:
http://www.asmedu.net/bbs/pasteinfo.jsp?part=1&level=book&kind=1004&qkSg=2&qID=5489
http://www.cppblog.com/Tim/archive/2012/05/31/176883.html

《汇编语言(第3版)》的笔记-第317页 - 综合研究

P317:
Q:想办法把所有tc.exe对程序simple.obj进行连接生成.exe文件必须用用到的相关文件都找到,拷贝到c:\minic。注意,找的是必须用到的。
A: C0S.OBJ,EMU.OBJ.MATHS.LIB.GRAPHICS.LIB,CS.LIBP319:
Q:为什么这个程序能够打印出main函数在代码段中的偏移地址?
A:用DEBUG查看汇编代码会发现main函数和自定义函数一样都可以理解为汇编中的子程序(都跟以ret指令结束)。main即是标号,代表着地址。P321:
Q:编一个程序,用一条C语句实现在屏幕的中间显示一个绿色的字符“a"。
int main ()
{
*(char far *)0x8b0007d = 0261;
/*定位到屏幕中央02h表示黑底绿色,61为‘a'的ASCII码值。*/
return 0
}Q:C语言将全局变量存放在哪里?将局部变量存放在哪里?每个函数开头的”push bp mov bp sp“有何含义?
A:全局变量在数据段里,局部变量在堆栈里。
在函数运行前将SP内容传给BP,再利用BP在堆栈中取局部变量,函数返回时将BP的内容再传给SP。这样就实现了局部变量的Scope。P322
Q:C语言将函数的返回值放在那里?
A:放在寄存器AX中,如图所示。P324
Q:两个文件中的程序代码有何相似之处?
A:基本相同。在tc目录下的example/里能找到C0S.obj的源码C0.ASM。实验5懒得弄了....在P333的附注4中有提到。
洗洗睡吧。

《汇编语言(第3版)》的笔记-第1页

把前面10来章大致细读了下,讲解的很细致,易懂。
平时的工作用不上汇编,但是看完大部分之后,还是觉得受益匪浅,弥补了很多以前不知道的计算机基础。
有空再看看前面的部分,后面的一些就不打算看了,顺便写一些笔记,方便不时拿出来翻阅。


 汇编语言(第3版)下载


 

外国儿童文学,篆刻,百科,生物科学,科普,初中通用,育儿亲子,美容护肤PDF图书下载,。 零度图书网 

零度图书网 @ 2024