我的目标主要集中在软件应用程序开发,也许是Web应用程序开发,但最有可能的是桌面应用程序。我正在走上一条更加熟悉C/C++的道路,但是我应该远远低于C/C++,进入汇编阶段?或者我对我的长期目标没有好处?学习装配方言是否值得?
回答
除非你有直接的应用程序,否则它可能不会有很多好处。如果你需要一般的知识,C/C++是一个很好的开始。
也就是说,大会构成的挑战非常有趣,它需要一个完全不同的思维方式来完成任务。
我花了一点时间学习Z80大会编程TI-86计算器。 Z80指令集非常小,在程序集中编程计算器的新颖性非常有趣。
ticalc.org在TI assembly programming上有很多很好的资源。
我不会开始学习ASM。如果你想学习C/C++,那就从那开始吧。随着代码质量的成熟,您可能会发现您需要ASM。 99%的时间你不会,但时不时你可能需要它。
此外,它在了解C/C++在幕后做什么方面知道ASM是有帮助的。但是,再次,直到你更先进,你可能不需要它。
我做到了,我认为这对我有帮助。它不再帮我一天一天,但我认为这取决于你的工作。
20年前,我在Commodore学习汇编,并在IBM大型机上学习了大学。我不能说这对我目前的工作有帮助。
我同意马克。我认为这与使用C#,VB.NET或其他.NET语言编写代码时学习MSIL类似。它有助于了解引擎盖下发生了什么,但是您可以在整个生命周期内创建适用并且从不需要的应用程序。
不,除非你想要好玩,否则你真的不需要学习装配。
有一些事情你需要知道的程序集,如驱动程序的创建,操作系统开发,利用开发,但除此之外,我个人认为你可以非常高兴地编码永远不知道它。
如果你确实需要学习汇编,你就会知道它 - 我不会了解它,学习它的目的..
如果你正在编写托管C++,它是无价偶尔要知道最基本的x86程序集,二进制数字系统等。我主要进行C/C++开发,而且偶尔需要调试生产代码中的错误,这些错误对于编译器生成的机器代码表示非常特定,只有这样才能找到,然后修复这个错误就是读取反编译后的程序集,并确定编译器为什么会这样生成它。
有关装配的更多信息,请参阅问题:What is the best way to learn Assembly? Specifically, for someone who has experience in dynamic languages。
G'day,
我学习了PDP汇编器时,我做了我的选举。工程。 70年代后期。我真正使用的汇编程序的最后一种方言有四种不同的内存寻址模式。我嘟at的最后一种方言有17种模式!
不确定现在什么样的学习汇编程序真的给你带来了什么。那时候它是我选择的CS流的重要组成部分。工程。度。
至于学习C++我刚刚坐下来,通过工作“Accelerated C++"这本身就是接近C++而不是‘与其他位’C。
至于C,我只是工作,通过最新版本"C Programming Lanuage"(AKA)K'n'R
希望这有助于的
欢呼声, 罗布
现在,如果你问起纳米progrmming ...( - :
“是否值得去学习一个组装方言?”
我有专业的程序集。运行传真机和扫描仪的M68k。另外,Windows VxDs(虚拟设备驱动程序)在拥有真实内核之前的3/3.1天内回到Windows。
当你编写程序集来完成普通的软件-y类任务(复制内存,连接字符串,调用中断处理程序等)时,这很有趣。有时候你可以用C代码来调用汇编,以便在给定的处理器上尽可能快地执行一些特定的任务。这可能会更有趣,因为您正在寻找利用处理器给予您的每个周期的方法。您关心处理器L1缓存中的内容。你关心对齐内存中的数据以避免缓存线命中(如果我记得这个术语)。您关心的是双流水线处理器架构,并以正确的顺序使用正确的2或3或4条指令,以便在单个时钟周期(处理器的XgHz中的那些HZ中的一个)内发生2或3或4种情况。
当您编译程序集来驱动自定义硬件时,现在您正在执行诸如填充16byte内存缓冲区,设置DMA操作并将该数据发送到控制器,该控制器正在执行某些操作,如驱动激光打印机鼓。鼓正在转动,并且不能停止,并希望在接下来的5us内接下来的16个字节。当然,这可以用C或C++来完成。但是这些例子是无止境的。
我也许会修剪你问题的最后一部分“学习装配方言是否值得?”让它“值得它学习吗?”
如果你喜欢编程,你如何定义“价值”涉及编程爱的一些组成部分。从这个意义上说,我从来没有学过编程方面的东西,并不认为这是值得的。即使我没有用过多的后缀。
从同样的意义上说,我几乎可以说学得越难,就越“值得”。
但是,所有那些蓬松的垃圾放在一边,我相信它是值得的,至少得到一些组装背景。继续研究如何编写程序集来替换一些简单的stdlib例程(如strcpy,memmove等),然后尝试优化它们,并在计时时调用它们一百万次。
装配不是很困难。一旦你熟悉C,花一两天学习基本程序集。它在调试方面的帮助非常大,而且它的乐趣在于能够编写代码,使速度方面的C等效速度提高10倍,15倍甚至更多。
我真的很惊讶看到这么多“没有”这个问题的答案。我想你应该学会大会。
我不指望你会永远使用程序集直接作为您的工作的一部分。但是这并不意味着你不应该学习它。
学习大会将教你关于计算机内部正在发生什么。它将帮助您了解软件实际在做什么。
这实际上是关于专业。你会成为一名专业的软件工程师吗?或者你会成为一个复制粘贴黑客?当然,后者可能会支付账单,但作为一名专业人士则更加令人满意。
听到有人说,“不要打扰学习大会”,听起来像我的耳朵,“这是建桥的食谱,你不需要学习物理或工程学建桥。遵循这些食谱。“不,谢谢。
- 1. 学习汇编语言是否值得?
- 2. 是否Telerik openaccess ORM值得学习?
- 3. 学习Python之前是否值得学习C/C++?
- 4. 学习序言
- 5. 是COBOL仍然值得我们学习
- 6. 学习序言练习2.3
- 7. 值得学习SharePoint 2007吗?
- 8. Haxe值得学习吗?
- 9. Tkinter值得学习吗?
- 10. GroupLayout:它值得学习吗?
- 11. 值得学习PDO吗?
- 12. 您是否需要学习语言以学习SQL以外的Tableau?
- 13. 学习C++语言
- 14. 当我知道Symfony 3时,是否值得学习Angular 2?
- 15. 是否值得学习使用Emacs进行Web开发
- 16. 什么是学习机器学习的最佳编程语言?
- 17. 我是否需要学习更多的编程语言?
- 18. Scikit学习安装
- 19. 学习编程语言
- 20. 学习“序言艺术”
- 21. 学习Ontology网络语言
- 22. 如果不先学习PHP,是否可以学习Zend框架?
- 23. 是否有必要学习用于学习android的XML?
- 24. Python是一种教学/学习语言而不是工作语言吗?
- 25. 你学习语言的方式是什么?
- 26. 程序员学习新语言的最佳方式是什么?
- 27. 学习一种新的编程语言取决于现有的熟悉语言是否是一种坏习惯?
- 28. .NET gadgeteer值得学习的东西?
- 29. 2014年值得学习ColdFusion吗?
- 30. 值得花时间学习Qt(C++)吗?
您也可以制作自制软件Nintendo Gameboy游戏(Z80组件的子集)。 – James 2014-02-26 07:22:02