关于汇编学习 100分!

来源:百度知道 编辑:UC知道 时间:2024/05/07 17:24:30
首先说下我学汇编的目的,主要是为了:
1.更好的了解计算机的底层和硬件知识
2.能写硬件驱动(硬件驱动是汇编写的吧?)
3.读<<understanding linux kernel>>书需要汇编知识(虽然不需要很多,但是我学东西都要深入学的)
4.如果可能的话,学完之后有能写操作系统的能力(小型的)

我目前的基础:
1.<<Introduction to algorithm>>算法导论这本书的英文版本度过.
2.c,python,javascript,ruby,javaSE(只是为了了解面向对象机制,读的是thinking in java)语言的基础.
3.自己写过一些js的框架,c写过一些小游戏(gobang五子棋大一写的),也就是说我自认为动手能力和理解能力可以
4.会bash shell

我所要问的问题是:
1.首先我知道汇编这东西是很底层的,那么学习汇编首先是否需要一些硬件知识或者说是操作系统知识亦或是一些其他知识,如果是的话,需要了解到什么程度?
2.学这个东西的用处会不会很局限?好像很少有人用汇编些程序的
3.帮忙推荐几本好书,要英文的,与中文的相比,我居然发现英文的居然更好理解点...
我搜索相关资料,发现了一本书:The art of assembly language
http://www.amazon.com/gp/product/1886411972
这本书如何??我想要的就是那种全面的,而且应用面广的那中书.

小弟今年大2,才疏学浅,菜鸟一个,以上说的不知所云的地方还望海涵!望各位高人指点,复制粘贴的你就不稀要那2分了行不???

"学这个东西的用处会不会很局限?好像很少有人用汇编些程序的"这个我知道。其实,用汇编语言也能写windows32位程序。而且,可以直接调用未加任何封装的API,可以很灵活的使用系统资源。像windows下的加密算法,对效率要求比较高,适合使用汇编语言。
硬件知识,当然需要。必须对寄存器的作用等,对操作系统也要有比较深入的了解。我就很喜欢使用汇编。像反编译,病毒分析什么的,都很有意思。

2楼,等待你的经常回答....

汇编要学,但不一定用来写程序,关键是理解计算机的软硬界面,能把他里面的知识和你所学的其他知识融会贯通,关键是一个'悟',自己悟出来的比在哪学到的都要有用.比如,你要知道你的C代码在编译后是什么样子,结构是怎样存储的,至于操作系统,只有最底层和硬件打交道的才用汇编,在linux下只有启动代码,还有一些基本硬件操作比如读写端口等是用汇编来作,其他的都是C. 底层很重要,但是更要知道抽象,如果你写东西都用汇编的话,你反而是浪费时间,因为你的绝对部分时间用在了最基本的操作上,而不是你应该解决的问题.不能说学汇编的就是教授,最厉害的不是知道底层的,而是能上下贯通的.