对于没有CS背景的人(我的专业是应用数学),asm语言有一个陡峭的学习曲线吗?
通常,一些熟悉高级编程语言如C/C++等的人需要多长时间才能编写一些基本的数学计算,如线性回归、一维正交多项式计算等等?
顺便说一句,现代asm是否支持这样的特性:
通常在asm而不是C/C++中使用一些最新的优化编译器来提高性能吗?
发布于 2012-12-09 10:37:17
对于大多数人来说,ASM通常被认为是相当困难的。然而,这在逻辑上是简单明了的,我认为有应用数学背景的人不会有问题。
在程序集中,您需要了解处理器是如何工作的,因为在编写asm代码时,您最终是以最基本的方式操作处理器。
考虑到这一点:
if (val)goto next;翻译成这样的东西:
mov eax, [val]
cmp eax, 0
je next从本质上讲,程序组装需要理解程序如何使用处理器来执行任务。如何需要和使用寄存器(如eax)。
在一般情况下,用asm做事情比用C做事情要花费更长的时间。至于具体情况,我不知道。
一些现代指令集提供了新的数学操作,这可能是或不可能是你以后的。多线程等是操作系统的角色,与处理器无关,因此对程序集没有任何作用(这不是严格意义上的,因为存在硬件多任务,但很少使用,但我离题了)。
在优化的C/C++基础上编写ASM通常很少有性能增益,除非您编写了一段您花费大量时间优化的小的、重复的代码。
https://stackoverflow.com/questions/13786645
复制相似问题