Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Design patterns 汇编语言中的设计模式_Design Patterns_Assembly - Fatal编程技术网

Design patterns 汇编语言中的设计模式

Design patterns 汇编语言中的设计模式,design-patterns,assembly,Design Patterns,Assembly,基本上,有吗 我很想知道它们确实存在。例如,可以将跳转实现为一系列“跳转”,其中跳转的目标被指定为“外部”。Singleton将只是内存/代码等中的一个众所周知的位置 我绝不是一个汇编专家,所以这些例子可能是完全不可能的,但仍然是。汇编语言更多的是“技巧”,而不是设计模式。虽然高级设计模式仍然可以考虑并发挥作用,但大多数装配人员更关心时钟周期和利用指令技巧 例如,在x86中,执行xor eax,eax比执行mov eax,0更快 我要说的一点(感谢反对票!)是,使用汇编语言时,您希望更多地关注次

基本上,有吗

我很想知道它们确实存在。例如,可以将跳转实现为一系列“跳转”,其中跳转的目标被指定为“外部”。Singleton将只是内存/代码等中的一个众所周知的位置


我绝不是一个汇编专家,所以这些例子可能是完全不可能的,但仍然是。

汇编语言更多的是“技巧”,而不是设计模式。虽然高级设计模式仍然可以考虑并发挥作用,但大多数装配人员更关心时钟周期和利用指令技巧

例如,在x86中,执行
xor eax,eax
比执行
mov eax,0
更快


我要说的一点(感谢反对票!)是,使用汇编语言时,您希望更多地关注次要细节,而不是大的设计图。正如您不会关注高级语言中执行速度的细节一样。

适用于OO设计模式:


人们通常实现更高层次的语言结构,如继承多态性,并将其用作构建块来实现设计模式中的意图。但是,在平台上找到C或C++编译器更容易,而不需要实现基本的面向对象功能的设计模式。谷歌上的

< P>第一定义:“设计模式是软件设计中经常出现的问题的通用可重用解决方案”。 按照这个标准,我想说它们肯定存在


首先想到的是跳转表。

如果所有层都没有设计模式,那么你应该考虑设计专利。
因为说“我只是按照细节编写代码”是错误的谦虚,因为“要处理的细节太多,软件工程过程的工业化太聪明了,无法适应这种狭窄的堆栈溢出。”

一个可能的例子是如何编写循环:


或者使用未对齐的第一个和最后一个向量以及主循环体的对齐向量对幂等元进行SIMD向量化(例如具有非重叠src、dst的
memcpy
)。如果对齐和/或大小并非都是16字节的倍数,则存在部分重叠,但这没关系。

顺便说一句,设计模式不是OOP特有的。x86上没有“clr eax”这样的东西。也许你想说“mov eax,0”?谢谢Phil,我在金属公司工作已经很长时间了。你真的想说考虑“专利”而不是“模式”吗?或者你的意思是你应该考虑模式?