首页
社区
课程
招聘
[旧帖] 怎样才能掌握汇编语言?——IBMPC汇编艰难前进中 0.00雪花
发表于: 2010-4-30 01:55 16566

[旧帖] 怎样才能掌握汇编语言?——IBMPC汇编艰难前进中 0.00雪花

2010-4-30 01:55
16566
小弟电子专业大三学生,处于对专业的需要和逆向的爱好,学习汇编,大二上学期,学完了《微机原理 与汇编语言》(水利水电版本的教材),这本书上课老师讲的就不用说了,完全是皮毛应付考试的。这本书我是从头到尾一字不拉的认认真真看完了。后来又按照看雪叔叔的建议,把中山大学的汇编语言视频课程,认认真真的看完了,做了不少笔记。这学期的单片机老师是用汇编讲的,虽然有些汇编基础,但感觉还是有难度。又借来IBMPC汇编语言来加深巩固汇编,差不多看了一个月的书了,感觉对书里面  一些稍复杂一些的程序  看不懂,不懂程序设计的逻辑是怎样构思了,程序是怎样执行的。比如 折半查找算法,堆栈传递参数,递归子程序,等等。对书中的程序中的一些语句,不明白为什么要用他。正题上把握不起来。整体框架流程感觉特难理解。很多地方看不懂。
怎样才能学好掌握汇编语言呢?各位前辈又是怎样学习汇编语言的呢?怎样才算是掌握了呢??希望各位前辈能和新人分享一下你们的学习历程经验感悟心嘚

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (46)
雪    币: 3
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
多看书,勤发问,自己总结
2010-4-30 08:36
0
雪    币: 429
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
初学的话,建议找本好的教材,那样会事半功倍的,一方面好的教材会由浅入深,循序渐进地让你的知识和技术能够稳步提升,另一方面,它也不会弄很多看似复杂恐怖的概念和专业名词来打击你的自信,对于初学汇编的话我强烈建议王爽的"汇编语言"这本书,王爽不愧是个教育家,对于教程的设置和知识点的讲解都有他的独到之处,能让你在轻松快乐的氛围中得到成长,得到自信,从而向更高峰前进!
    至于那些什么折半查找法,堆栈传参等,你不要听那些书上拿专业名词来糊人,其实你搞明白了原理很简单的,简单来说折半查找法就是在一个从小到大或从大到小有序排列的数组中,要找一个数,一个一个地找过去太慢,于是直接找正中间那个数,如果你要找的数比中间那个数大,你就找比它大的那半边就行了,如果你要找的比它小,你也只用找比它小的那半边,然后在你要找的那半边中再找中间那个数,再找比它大的半边或比它小的半边,这样几次下来就能找到你要走的数了,主要是用来提高效率的.
    函数传参有三种主要的方法,全局变量传参,堆栈传参和寄存器传参,堆栈传参就是函数把要传的参数压入堆栈中,子函数从堆栈中取出参数来用,至于具体函数会使用哪种方式来传参要看它的函数调用约定,这方面好像在王爽那本汇编里有详细讲解.
    递归就是指的是让函数自己来调用自己,刚开始可能是有点难以理解,不过不要着急,慢慢来,谁都不能一口就吃成个胖子,你还很年轻,只要保持这种好学的劲头,多学多问,你也会成为一代大牛的
2010-4-30 09:35
0
雪    币: 17
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
有同感,我们也在上汇编,感觉教的都是皮毛,要深入还要靠自己钻研
2010-4-30 09:51
0
雪    币: 20
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
汇编不难.所谓各种算法,那是数据结构和数论的事,不是学汇编就要学那些,你学C等高级语言一样要学.

我现在的问题提,汇编看得懂,罗先生的32汇编也看得懂.但反汇编过来的就看不懂了.感觉难度至少要比学汇编大五倍.这个有高人指点下怎么学不?
2010-4-30 11:00
0
雪    币: 2015
活跃值: (902)
能力值: ( LV12,RANK:1000 )
在线值:
发帖
回帖
粉丝
6
看老外的汇编教材会让你如梦初醒,国内的一翻译就把精华给丢了。还有就是实践,光看书不能深化你的认识。
2010-4-30 12:13
0
雪    币: 35
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
我也觉得王爽的汇编语言写的很好
2010-4-30 13:13
0
雪    币: 808
活跃值: (10)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
8
看了好多关于汇编的书,王爽的教法最科学。。。就是书内容太少了。把这本书学好了,看其他的书就好多了。。
多练编程,才能理解。
2010-4-30 20:31
0
雪    币: 37
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
如果要学好汇编,最好是先学习C语言,了解里面的函数调用等,因为汇编里有很多call指令。
2010-5-1 09:15
0
雪    币: 270
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
最主要是了解寻址方式,搞定这汇编就好搞了。
2010-5-1 19:12
0
雪    币: 145
活跃值: (87)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
书山有路勤为径 学海无涯苦作舟
学什么都没有捷径  别着急 慢慢学吧
2010-5-1 19:27
0
雪    币: 20
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
现在反汇编最头痛的就是api的常量数值了,很多不知道怎么查,冲天剑有个解释,可有时间不太适合.谁介绍一下怎么查好?

PS:我知道在头定义里查,用名字查数值容易,可反汇编全是数值查名字,太难了.
2010-5-1 22:13
0
雪    币: 49
活跃值: (19)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
学汇编语言建议看王爽的汇编教程
至于什么折半查找算法,堆栈传递参数,递归子程序  这个不属于汇编范畴了
折半查找是数据结构一般使用c语言描述
后面的递归 子程序一般也是C语言
堆栈传递参数可以把汇编语言高清楚在深入看
可以说你后面说的这些东西和汇编语言学习关系并不密切 不要贪多 饭也是一口一口吃的
先熟悉汇编后再学别的
2010-5-2 22:56
0
雪    币: 178
活跃值: (125)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
你对这几个问题的解释,书上也有说,看了,也知道大概是这么一种思想,但是,就是用汇编语言去实现这种思想,就没有头绪了……谢谢你的回复
2010-5-3 20:34
0
雪    币: 178
活跃值: (125)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
嗯!谢谢您对我们新人的引导。大学里面见老师太难了。而我们新人最需要的莫过于老师的引导了。谢谢您
2010-5-3 20:42
0
雪    币: 178
活跃值: (125)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
我大一看完了《疯狂的程序员》就从图书馆借来了《IBMPC汇编语言》来自学,没有老师的引导,我看到寻址方式时,在这里卡住了,直到大二开学《微机原理与汇编语言》才跟着老师学习微机原理。现在又返回来学习IBMPC汇编,对寻址方式的‘理解’到现在我也只能说是知道有这么回事了,让我自己独立写一个小程序,我还是写不出来,写也只能是凭印象“背写”书上的。我觉得最难的是:大概也知道也知道这个小思想比如折半查找  堆栈传参,但就是怎样用汇编语言去实现就跟不上了,看书上的例程不知道为什么该用这个语句,理解不了啊。寻址方式跟  程序的设计  有什么关系呢?你为什么这样说呢?你又是怎样入门迈过这个坎的呢?谢谢回复。
2010-5-3 20:59
0
雪    币: 433
活跃值: (1870)
能力值: ( LV17,RANK:1820 )
在线值:
发帖
回帖
粉丝
17
我之前是看中山大学的汇编视频教程,那套教程还是不错的
2010-5-3 21:09
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
roa
19
错LZ的帖子,学到不少。
汇编学习过程中
2010-5-7 03:39
0
雪    币: 134
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
的确,老外写出很认真的,可惜精品的译版很少。有能力的话多看看老外的书会很有收获的
2010-5-7 07:56
0
雪    币: 230
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
学习汇编,重要的还是先知道硬件有哪些寄存器,然后就是他的存储器结构和如何分配的,再下来就是熟悉他的的指令系统,接着就是他的伪指令啊,当然数据结构和算法这些基本知识还是需要知道的,还有些其它的东西,主要还是先要把它的硬件结构搞清楚,才能写好的程序 的,当这些东西都 知道后就可以开始写程序了,多实践,是学习任何一门的语言的真理,汇编也不例外,再就是告诉你一些我的这方面的经验,就是多去些论坛,比如看雪就不错,多加些QQ群和大家一些讨论,这样是比较好的,好了,不多说了给你介绍个网站,我觉得还可以
http://www2.zzu.edu.cn/qwfw/index.asp
另外要验证你写的程序是否正确,可用微软的masm软件
masm是微软出的汇编编译器,支持8088/8086架构的汇编语言,在DOS下运行,需要下载。
再推荐你个学习算法的书:计算机程序设计艺术
介绍:
《计算机程序设计艺术》重译自Donald E. Knuth(汉名高德纳)的三卷著作:"The Art of Computer Programming: 1. Fundamental Algorithms; 2. Seminumerical Algorithms; 3. Sorting and Searching";三卷中文名为《基本算法》、《半数值算法》及《排序与查找》。本书内容博大精深,作者因为三卷书获得美国计算机协会1974年图灵奖(该奖被国际公认为计算机科学领域的最高奖项)。
下载地址:http://www.verycd.com/topics/2741280/
非常清晰,相当不错,受益匪浅!
2010-5-7 15:17
0
雪    币: 178
活跃值: (125)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
老外的书??推荐本精品?说一下书的名字?或者购买连接最好了,谢谢
2010-6-8 12:02
0
雪    币: 125
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
IBMPC汇编不适合初学者,建议改看王爽的。
2010-6-8 13:26
0
雪    币: 1067
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
你这完全是实践少了,多上机调试 不懂的地方,多单步调试几次就明白了
2010-6-8 13:37
0
雪    币: 84
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
推荐 王爽的汇编  第二版  清华大学的

很适合初学者的!
2010-6-8 13:48
0
游客
登录 | 注册 方可回帖
返回
//