Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.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
Assembly 什么';这是什么指示?_Assembly - Fatal编程技术网

Assembly 什么';这是什么指示?

Assembly 什么';这是什么指示?,assembly,Assembly,请注意,这不会发出代码,因此它不是通用内存屏障。它确实防止GCC在语句中对内存访问进行重新排序,但并不阻止CPU这样做。因此,它只在本身不重新安排内存访问顺序的CPU上起到屏障的作用。@John R.Strohm,我不理解那篇文章:(@Nemo,什么时候需要它?当你必须了解内存访问顺序以证明正确性时使用它。只适用于并发编程(例如线程)。你知道如何使用互斥锁吗?嗯,内存屏障是实现互斥锁所需的工具。@Nemo,简单地说,内存屏障主要是禁用cpu缓存并再次从内存中读取,对吧?请注意,这不会发出代码,所

请注意,这不会发出代码,因此它不是通用内存屏障。它确实防止GCC在语句中对内存访问进行重新排序,但并不阻止CPU这样做。因此,它只在本身不重新安排内存访问顺序的CPU上起到屏障的作用。@John R.Strohm,我不理解那篇文章:(@Nemo,什么时候需要它?当你必须了解内存访问顺序以证明正确性时使用它。只适用于并发编程(例如线程)。你知道如何使用互斥锁吗?嗯,内存屏障是实现互斥锁所需的工具。@Nemo,简单地说,内存屏障主要是禁用cpu缓存并再次从内存中读取,对吧?请注意,这不会发出代码,所以它不是通用内存屏障。它确实阻止GCC在多个内存中重新排序内存访问声明,但它并不能阻止CPU这样做。因此,它只在CPU上起到屏障的作用,CPU本身不会重新排序内存访问。@John R.Strohm,我不理解那篇文章,不过:(@Nemo,什么时候需要它?当你需要知道一些关于内存访问顺序的信息以证明正确性时使用它。仅适用于并发编程(例如线程).你知道如何使用互斥锁吗?嗯,内存屏障是实现互斥锁所需的工具。@Nemo,简单地说,内存屏障主要是禁用cpu缓存并再次从内存读取,对吗?
#define ngx_memory_barrier()   __asm__ volatile ("" ::: "memory")