打印

文不对题,谬之千里,**,贻笑大方

[复制链接]
楼主: 天雨粟
手机看帖
扫描二维码
随时随地手机跟帖
61
dengm| | 2008-10-23 12:51 | 只看该作者 回帖奖励 |倒序浏览

12楼的ASM有bug, 已debug.

使用特权

评论回复
62
zzty| | 2008-10-23 15:41 | 只看该作者

拜读经典,谢谢!!!

使用特权

评论回复
63
HWM| | 2008-10-23 16:01 | 只看该作者

语言有高低级之分,但绝无高低等之分。

说高级,C或C++决不是什么高级的玩意儿,一般都称之为“中级”语言。C/C++具有高低相当大的跨度,这也是为何在嵌入式领域非常偏重使用C/C++的理由。

另外,要求学生以C作为起点学习计算机语言,甚至提倡放弃ASM,并认为这就是所谓的高起点,这种观点个人认为相当的不专业。设想一下,一个计算机相关学科的科班学生连起码的指令系统都未曾谋面,ASM陌如路人,能算是一个合格的学生吗?另外,若不能尽早的了解至少一种(建议熟悉)ASM,恐怕以后去熟悉它的机会会越来越少。因此强烈建议,初学者(特别是学生)至少认真踏实的学习和领会一种ASM。这就象学习其他技艺一样,初学时基础的玩意儿没学好,以后再补就事倍功半了。

最后,关于“层次”,最高层次就是指挥别人为你打工,这才有那么点“人上人”的感觉。

使用特权

评论回复
64
农民讲习所| | 2008-10-23 16:07 | 只看该作者

多少优秀的PC程序员不懂汇编

但他们懂得软件工程,在思想和思维上,就处于高层次。看问题的方法也不限于0,1。
层次,思维的层次,看问题的层次等等。

使用特权

评论回复
65
农民讲习所| | 2008-10-23 16:09 | 只看该作者

汇编这东西,好象一个行业,在这个行业里才合适

MCU设计是一个通用的包括N*N的行业,学生在学校学不学汇编,俺认为无所谓。

使用特权

评论回复
66
农民讲习所| | 2008-10-23 16:11 | 只看该作者

学习起点要高

学会C,看问题看得比学汇编的高出很多高度

使用特权

评论回复
67
农民讲习所| | 2008-10-23 16:14 | 只看该作者

学汇编,很多人会学苯的

典型例子:

“twz8858877 发表于 2008-10-23 14:45 侃单片机 ←返回版面    

28楼: 我的看法不一样 

最好还是从汇编学起,我见过好多高级语言用的不错,却不会计算程序运行时间,不理解外围器件操作时序,要么系统运行不稳定,要么浪费大量时间空等,学会汇编应用其它器件能更容易些。 ”
 

使用特权

评论回复
68
HWM| | 2008-10-23 16:15 | 只看该作者

不是不懂,而是长期不用淡忘了而已。但相关概念还是有的

不能想象一个软件工程师不知道计算机中还有个PC,甚至会问出为何PC中还要有个PC这样的问题。

使用特权

评论回复
69
农民讲习所| | 2008-10-23 16:17 | 只看该作者

汇编研究的是技巧,难以发展出技术

因为技术这个词是有普遍性的,函数代码怎么调用这么一个最最低级的要求,一百个人做这个,有99种写法。

使用特权

评论回复
70
农民讲习所| | 2008-10-23 16:20 | 只看该作者

硬件知识的掌握,和汇编和C都只那么一点点关系

使用特权

评论回复
71
HWM| | 2008-10-23 16:43 | 只看该作者

关于低级和高级语言,我认为作为科班生都要学。

而且在初学阶段(低年级)更要加强。至于会不会越学越笨,这不是人的问题,而是机器的问题。人是去了解机器的,而不是被机器所同化的。

现状是,目前的计算机模型都是基于图灵机模型,若都象人脑那样,也就没必要去学那一大堆非人脑的玩意儿了。至于所谓的“高级”语言,只不过是人们依照自己的理念去试图重塑原先早已熟悉的“计算机模型”,而最终有可能把原先的祖宗给遗忘了。但问题是这个祖宗的基础地位还是那么的坚实。

虽然最终大多数计算机从业着会远离汇编,但还是别把本给忘了。

使用特权

评论回复
72
懒人| | 2008-10-23 16:43 | 只看该作者

又讨论 C pk 汇编了?

使用特权

评论回复
73
dengm| | 2008-10-23 19:05 | 只看该作者

计算机应用软件学生应从高级语言开始学习,

        1. 学习BASIC, FORTRAN 等结构化语言(3G), 学会结构化编程, 有一定的数据处理能力.
        2. 学习中级(2.5G)的C语言, 了解古灵精怪的指针(pointer)等,
        3. 学习面向对象(object)的编程方法, VB 2005 (3.1G) 
        4. asm (2G)
        5. win32 api 等
        6. 还有其他语言: HTML, JAVA 等...

根据应用行业, 不一定要学习所有. 

使用特权

评论回复
74
sodwell| | 2008-10-23 23:42 | 只看该作者

HWM

没有说软件工程师不学或没必要了解汇编,而是没有必要去精通他,卖弄技巧。
一个操作系统里面肯定会有汇编,这足以说明汇编是非常重要的,但是汇编的代码量实在是太少,我问个问题:一个精通汇编的工程师他能从事哪些开发行业的工作,一个精通C/C++的人他能从事哪些开发行业的工作?
汇编的工作必须有人做,但是不需要那么多的人.

使用特权

评论回复
75
aceice| | 2008-10-24 09:55 | 只看该作者

搬凳子看戏

使用特权

评论回复
76
dudongdao| | 2008-10-24 12:20 | 只看该作者

个又个的好啦~

   汇编和C各有各的好~   在学校里当然都学好了,大学里很多时间的,都学也不成问题,都学了肯定是最好的。

使用特权

评论回复
77
一朝成名| | 2008-10-24 12:44 | 只看该作者

看的出来

各个层次各有所需吧,要是说做计算机纯软、应用层,谁知道汇编是什么呵呵

要求实时性高的单片机当然也用不了C++

使用特权

评论回复
78
yzqok| | 2008-10-24 16:16 | 只看该作者

还是要有这个条件。。。

     我很长的时间都没有写了都快忘光了,做的多自能就会精通,时间最能证明一切,程序大了还是C好些。。。

使用特权

评论回复
79
HWM| | 2008-10-24 16:36 | 只看该作者

re 76楼:

首先,就目前而言,几乎不存在“精通汇编的工程师”。原因就在于MCU/MPU和普通CPU的多样性。

我建议的只是,作为学生,必须去熟悉至少一种典型的指令系统和相关汇编。就我的经验,玩汇编这个东西绝对是越年青越好,过了这个阶段就别想再玩了。道理很简单,1)年青**力好,2)学生相对有时间且没什么功利约束。

至于学汇编的必要性就没必要费口舌多说了,计算机科班毕业的都知道其中的道理。而至于学了汇编后会从事什么行业,那我可以告诉你,大学里学的绝大多数课程(特别是基础理论课程)可以说和你所从事的行业既有关系又无关系,看你如何理解了。

最后我要补充的是,我们所面对的是一种完全不同于我们人脑的特殊玩意儿(电脑),它有自己特有的品质。虽然人们现已开发出很多接近于人类的语言去和它交流,但本质上那玩意儿品性还是如故未变。别认为给它穿上件华丽的衣服就具人性了。有人把使用高级语言说成是某种“思想”的飞跃,错啦!那只是“人性”的回归。告诉你吧,高级语言中的那些概念人类语言中早已有之,没什么高深的。咳,实在不想多说了(打字费神),自己体会去吧。

使用特权

评论回复
80
hotpower| | 2008-10-24 19:04 | 只看该作者

虽然没必要精通汇编,但知道比不知道要强~~~

A人比C人更能明白函数的缔造者的意思。

如下图所示,它是WinIo读端口的函数,原型:
bool _stdcall GetPortVal(WORD wPortAddr, PDWORD pdwPortVal, BYTE bSize);


wPortAddr为什么是WORD类型呢???
因为PC规定端口需要用16位的DX寄存器来访问。

pdwPortVal为何为PDWORD类型呢???
因为它需要根据bSize(1-byte 2-word 4-dword)的大小来存放结果。

故为使函数通用,取其最大存储空间即dword。

该函数对应3条指令(下图所示):

in al,dx  (byte)

in ax,dx  (word)

in eax,dx (dword)

图中的3个mov al,1 就是改函数的返回值true,即成功调用该函数

所以,A人在对底层函数的理解方面是要远远比C人的“层次”高多了~~~

C人总是被函数的原创的文档而忽悠~~~

使用特权

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

本版积分规则