hjthack 发表于 2016-9-9 19:44:02

【参赛】我的汇编学习路

大家好。我是一名有两年工作经验的码农,新加入到鱼c论坛的,主要也是因为汇编才加入的,正好论坛组织这样一次有意义的活动,我就把我学习汇编的经验和过程写给大家。有编程基础但是不会汇编的同学可以走走我的路程,没有编程基础的同学就当看看故事了,大牛请点赞之后再飘过~

汇编其实在大学的时候也学习过,但是说实话,没一点编程思想的同学是很难理解这种语言的。本人当时也比较喜欢打dota,大学汇编学的很差,但是觉得汇编能破解其他的软件,就一直觉得很牛比,所以一直把汇编放在心上。这是我为什么现在会学习汇编的原因。

接下来讲讲学习汇编的过程。毕业两年,大概重新打开汇编书籍的次数为3次,每次看到很难的地方就放弃了,而这个很难的地方都是同一个地方(下一段将具体讲讲什么地方,暂时卖个关子),,因为编程功底不够吧。但是我这么做的并不觉得是浪费时间。读书三遍,其义自见。这三次拿起汇编书籍,都是为了前天的顿悟埋下伏笔。然后,前天晚上看鱼c论坛的http://blog.fishc.com/category/assembly/page/8,看到晚上两点多,顿悟,越看越精神,两年的憋屈啊,无法用语言形容。

重点:个人觉得难点就是寄存器。不理解寄存器为什么这么用,为什么几个寄存器可以保存那么多数据代码而不会出问题,CS,DS,SS,ES这几个段寄存器与通用寄存器的区别。希望我以下的话语能给一些同学带来帮助,如果说错了,请大家指正。

第一种解释方式:用高级编程语言来解释,程序员的方式。我用C++写一个程序,随便写个程序,里面应当由以下击中元素组成:数据(int i = 0),代码(这个不用举例子把),堆栈。DS就是我们要访问的数据基址,CS就是整个代码执行的基址,SS就是堆栈访问的基址。当我要访问数据了,我就给DS+赋值,要执行代码了,就给CS+IP赋值,要保存堆栈了,就给SS+SP赋值。

第二种解释方式等我想好了再添加吧。程序员就是这样,没想好,但是先把坑挖了。

因为不能留下宣传信息,如果大伙有问题想问,就私信我把。

最后再说一句。感谢鱼c论坛,如果没有论坛,都不知道这辈子能不能学会汇编。

hjthack

2016年9月9日 19:37:20

康小泡 发表于 2016-9-12 18:14:09

{:10_250:}和楼主学习汇编的历程很像啊,一边学一边放弃,然后又捡起来
页: [1]
查看完整版本: 【参赛】我的汇编学习路