学习集会方言值得吗?
我的目标是专注于软件应用程序开发,也许是Web应用程序开发,但最有可能是桌面应用程序。我正走上一条对C / C ++更加熟悉的道路,但我应该比这要低得多吗?还是我的长期目标不会受益?
解决方案
回答
我不会开始学习ASM。如果我们想学习C / C ++,请从此开始。随着代码质量的成熟,我们可能会发现需要ASM。我们有99%的时间不会这样做,但有时可能会需要它。
同样,从了解C / C ++幕后工作的角度来讲,了解ASM确实有帮助。但是,再次,直到我们变得更高级,我们可能将不再需要它。
回答
我做到了,并且我认为当时对我有帮助。它对我的日常工作不再有帮助,但是我认为这将取决于工作。
20年前,我在Commodore上学习了汇编程序,然后又在IBM大型机上在大学学习了汇编程序。我不能说这对我目前的工作有帮助。
回答
除非我们直接为其申请,否则它可能不会带来很多好处。如果我们需要一般知识,那么C / C ++是一个不错的起点。
也就是说,组装带来的挑战非常有趣,完成工作需要完全不同的思维方式。
我花了一些时间通过对TI-86计算器进行编程来学习Z80组装。 Z80指令集很小,并且在汇编中对计算器进行编程的新颖性非常有趣。
ticalc.org在TI汇编编程方面有很多很好的资源。
回答
我同意马克的看法。我认为这类似于使用C#,VB.NET或者其他.NET语言编写时学习MSIL。这有助于了解幕后情况,但是我们可以一生创建可运行的应用程序,而永远不需要它。
回答
不。除非我们想娱乐,否则我们真的不需要学习汇编。
我们需要了解汇编的一些内容,例如驱动程序创建,OS开发,漏洞利用开发,但是除此之外,我个人认为我们可以永远快乐地编写代码,而无需了解。
如果我们确实需要学习汇编,那么我们会知道,为了学习它,我不会学习它。
回答
如果我们正在编写非托管的C ++,那么至少了解基本的x86汇编程序,二进制数字系统等是无价的。我主要从事C / C ++开发,有时我需要调试生产代码以解决机器特有的错误。编译器生成的-code表示法是查找并修复错误的唯一方法是读取反编译的程序集,并确定编译器为何如此生成它。
有关汇编的更多信息,请参见以下问题:学习汇编的最佳方法是什么?特别是针对那些具有动态语言经验的人。
回答
G'day,
当我选出我时,我就学习了PDP汇编程序。 。在70年代后期获得学位。我真正使用的汇编程序的最后一种方言具有四种不同的内存寻址模式。我看过的上一种方言有17种模式!
不确定如今的学习汇编程序真正为我们提供了什么。当时这是我选一个CS流的重要组成部分。 eng。程度。
至于学习C ++,我会坐下来学习" Accelerated C ++",它以自己的方式使用C ++,而不是"其他语言的C"。
至于C,我只是研究最新版本的" C编程语言"(又称K'n'R)
希望这可以帮助。
干杯,
抢
现在,如果我们想问一下纳米编程...(-:
回答
我不建议学习"现代汇编语言"。
但是,对MOS 6510汇编器有所了解,并浏览了拆解的C64内核(又名OS和BASIC解释器),这有助于我从很多方面了解计算机内部的内容,例如中断和内存页面。
这可能会提示如何用其他语言编写优化的代码。但是,很多事情已经由现代编译器完成,因此,我只建议我们如果对黑匣子内部发生的事情感兴趣的话。
回答
"学习集会方言值得吗?"
我已经对装配进行了专业编程。 M68k运行传真机和扫描仪。 Windows VxD(虚拟设备驱动程序)也要在拥有真正内核的3 / 3.1天后才返回Windows。
当我们编写汇编代码以执行普通的软件类型的任务(复制内存,连接字符串,调用中断处理程序等)时,会很有趣。有时,我们编写的程序集将由C代码调用,以在给定的处理器上尽快执行某些专门的任务。这可能会更有趣,因为我们正在寻找利用处理器提供的每个周期的方法。我们关心的是处理器的L1高速缓存中的内容。我们关心的是对齐内存中的数据以避免高速缓存行命中(如果我还记得这个词的话)。我们关心双流水线处理器架构,并以正确的顺序使用正确的2或者3或者4条指令,以使单个时钟滴答(处理器XgHz中的HZ之一)发生2或者3或者4件事。
当我们编写汇编代码以驱动自定义硬件时,现在我们正在执行诸如填充16字节内存缓冲区,设置DMA操作并将该数据发送到控制器的操作,该控制器正在执行诸如驱动激光打印机硒鼓的操作。鼓在转动,无法停止,并希望在接下来的5us内释放其下一个16个字节。当然可以用C或者C ++完成。但是例子无穷无尽。
我也许会简化我们问题的后半部分:"学习汇编方言值得吗?"并使其成为"值得学习吗?"
如果我们喜欢编程,那么如何定义"价值"涉及到对编程的热爱。从这个意义上说,我从未在编程中学到过什么,也不认为这是值得的。即使我没有使用很多后记。
从同样的意义上说,我几乎要说的是,学习越难,就越"有价值"。
但是,撇开所有这些蓬松的废话,我相信至少拥有-someassembly背景是值得的。继续前进,弄清楚如何编写程序集以替换一些简单的stdlib例程,例如strcpy,memmove等。然后尝试对其进行优化,并在计时C时对其进行一百万次调用。
回答
组装不是很困难。熟悉C之后,花一两天的时间学习基本的汇编语言。它在调试方面的帮助是巨大的,此外,它的乐趣在于它能够编写比C语言等效速度快10、15或者更多倍的代码。
回答
看到如此多的"否"答案,我感到非常惊讶。我认为我们应该学习汇编。
我不希望我们将装配直接用作工作的一部分。但这并不意味着我们不应该学习它。
学习程序集将教我们有关计算机内部发生的情况的信息。它将了解软件的实际功能。
这真的是关于专业精神。我们要成为专业的软件工程师吗?还是我们将成为复制粘贴黑客?当然,后者可能会支付账单,但是成为一名专业人士要令人满意得多。
听到有人说"不,不要打扰学习装配",在我耳边听起来像是"这里是建造桥梁的食谱。我们无需学习物理或者工程知识即可建造桥梁。只需遵循以下食谱即可。 "不,谢谢。