打印

现在终于感觉不怕汇编了

[复制链接]
楼主: Hello_LeeHom
手机看帖
扫描二维码
随时随地手机跟帖
41
zq1987731| | 2011-2-12 15:17 | 只看该作者 回帖奖励 |倒序浏览
那本书是给软件工程师用的,看英文原书名 Computer Systems: A Programmer's Perspective ,并且还是初级导论性质,这个就是差距,当你们还在争论汇编于C,人家已经到内核了,多线程了,集群了

严格说,沉迷于汇 ...
雪山飞狐D 发表于 2011-2-12 14:59


早就跳出汇编和C的怪圈了,“内核了,多线程了,集群了”这些才是所谓“进步”
就是看某些人执迷不悟才跳进来和稀泥,仁者见仁,智者见智。

使用特权

评论回复
42
zq1987731| | 2011-2-12 15:25 | 只看该作者
匠人都出现了,呵呵...

使用特权

评论回复
43
拿起书本| | 2011-2-12 15:30 | 只看该作者
如果你想成为这个行业的参天大树,就学学汇编吧

使用特权

评论回复
44
szriley| | 2011-2-12 15:30 | 只看该作者
楼主的努力是有回报的!

使用特权

评论回复
45
china_fog| | 2011-2-12 16:11 | 只看该作者
一直搞不明白为什么总有那么多人觉得高端的才是好的呢。每种东西在市场存在着说明其在该阶段是有价值的。内核了,多线程了,集群了 也有不适合的地方。就像老有人说51的历史要过去了,在学毫无意义这类话。金字塔不是一天造成的。
就像争论裸奔跟上OS哪个好一样,毫无意义。

使用特权

评论回复
46
lsgd0808| | 2011-2-12 16:27 | 只看该作者
其实汇编也很重要的,有这个基础就可以和C语言混合编程。

使用特权

评论回复
47
windcloud123| | 2011-2-12 16:38 | 只看该作者
不用争,学多点没坏处

使用特权

评论回复
48
程序医人| | 2011-2-12 16:46 | 只看该作者
我倒是和楼主相反,现在终于适应C语言了。

使用特权

评论回复
49
china_fog| | 2011-2-12 16:47 | 只看该作者
现在适应步子跨的大了--可以扯着蛋了

使用特权

评论回复
50
123jj| | 2011-2-12 16:57 | 只看该作者
呵呵!

小孩子学会了点汇编,兴高采烈,发贴祝贺一下。

大人们怎么都扯上蛋啦?

使用特权

评论回复
51
zq1987731| | 2011-2-12 17:00 | 只看该作者
混合编程只是无奈之举,并不上升到“会这么干的就是高手”这个层面
拿51举例的话,C的入口参数如何对应R7~R0,超过4个参数为何要置入堆栈,返回值又在哪,什么时候会栈溢出,什么情况下要“禁止寄存器绝对寻址”,中断ISR后能否不用using X,结构体的对齐方式,大小端处理,很可惜,这种程度的问题都太小儿科,某些人就是喜欢将自己不懂得东西奉若神明...
单片机设计者,以及用单片机快速设计出产品的人才能称得上本事,古语中——滴水穿石,大家都有印象,最后一定能成功,不过...我觉得用王水来代替水滴,效果一定更好!

使用特权

评论回复
52
xiaqingfeng| | 2011-2-12 17:04 | 只看该作者
汇编还是要学的,C也不能丢弃!两者都有各自的优点!

使用特权

评论回复
53
viatuzi| | 2011-2-12 17:12 | 只看该作者
做研发的人,要跟得上技术更新的步伐。
同时要能根据实际情况选择最适合的工具和技术。

使用特权

评论回复
54
china_fog| | 2011-2-12 17:13 | 只看该作者
53楼说的不错

使用特权

评论回复
55
sheriff| | 2011-2-12 17:15 | 只看该作者
底层的东西其实是很重要的,很多人觉得汇编不重要,平时不怎么用的上,很可能是因为中国处于产业链底端,做开发,但开发工具都是别人做的。做OS移植、编译器设计这些工作都需要汇编。

使用特权

评论回复
56
zq1987731| | 2011-2-12 17:20 | 只看该作者
何止底端,我接触的大量所谓“工程师”
帮他们什么都做好,他们拿到代码后编译一下烧进系统能跑起来,对他们而言就是“最好了”,硬件更夸张,两手一摊“你帮我画吧”.......这种人还不少

使用特权

评论回复
57
电子小龙| | 2011-2-12 17:34 | 只看该作者
zq1987731没有理解NE5532的意思说的牛头不对马嘴。

使用特权

评论回复
58
zq1987731| | 2011-2-12 17:49 | 只看该作者
To 电子小龙

呵呵,没有理解?
“语言只是工具,主要还是看人”这一点早就看出来了,我围绕的主题你也没理解

使用特权

评论回复
59
NE5532| | 2011-2-12 18:05 | 只看该作者
本帖最后由 NE5532 于 2011-2-16 20:43 编辑

推广一下,学会降龙十八掌以后,就可以把脚砍了,以后用手走路…………………………

使用特权

评论回复
60
zlg315| | 2011-2-12 19:07 | 只看该作者
本帖最后由 zlg315 于 2011-2-12 19:14 编辑

学习汇编语言的目的不是说一定要用汇编语言来设计产品!

     虽然汇编语言对于大多数开发人员来说几乎不用,但不等于不重要。学习汇编语言能够帮助我们了解“源头活水——从哪里来的”,而应用即是解决“到那里去的问题”,这是一个程序员应有的修养。其实,无论是汇编语言还是C语言,其编程思想是完全相同的。

    熟练掌握汇编语言的开发人员,学习C语言易如反掌,一旦遇到对C语言理解蒙查查的地方,通过对照汇编语言肯定理解到位,这就是掌握汇编语言的优势。

    对于80C51来说,调用一个setjmp()函数,通过SDCC51编译为:
    LCALL  _setjmp;
   
    “return 0;”如何理解,编译一下即可知道,其对应:
    MOV     DPL, #0x00
      RET

      执行“cTmp1=setjmp();”,即就是:
    ;参数赋值
    LCALL   _setjmp
      MOV     A, DPL

      在Keil C51中可以这样写延时程序:
    MOV    R6, #0x80
      DJNZ   R6, $

     但在SDCC51中如果也按照上述格式来写的话,“DJNZ R6, $”会让程序跳转到“0地址”,此时,只要查一下反汇编即可知道,其正确的写法为:
    MOV    R6, #0x80
      DJNZ    R6, .
      
      从某种意义上来说,调试方法同样也很重要!请问:你真的会调试程序吗?这个问题看起来很简单,如果你(泛指)不是高手,你不见得运用自如。

     C语言是好学,但真正搞清楚其中“为什么”的人多吗?比如,定义一个指针函数:
     int *posSem();                            // 它为什么是指针函数?
     因为括号的优先级比*高,所以,“int *posSem();”等价于“int *(posSem());”,很简单吧!如果你没有看过是这样理解的,你不一定“真的懂”。当然,不会这样理解,也会写程序,但你是高手吗?

    你可能天天用C语言,你写的前后台代码可以不用做任何修改,即可直接被“基于操作系统的程序”使用吗?直接调用函数,我们常常称之为“紧耦合”,但你懂得如何实现“隔离”吗?

     变量指针指向的是一块数据,指针指向不同的变量,其获取的是不同的数据。函数指针指向的是一段代码(即函数),指针指向不同的函数,则具有不同的行为。函数指针是实现分层设计与系统抽象,降低耦合度以及使接口与实现隔离的重要手段。
     你善用函数指针吗?否则不是高手。

     你可能天天用C语言,知道“void *data;”的用途吗?你或许从来没有用过,甚至没有听说过。

     我们常常抱怨待遇太低,可能每行代码只有20—50元,除非你的代码能够被他人复用,跨平台无障碍地复用,否则你的代码可能一钱不值。

     大家不要互相贬低,也不要讲歪理,谁有短处谁都有长处,因此,相互学习是最重要的!几个月不上网了,闲来无事瞎说几句罢了。      

      精通汇编语言的开发人员,一定能学好C语言,除非“堕落”到了不想学的地步!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则