你能想到运行时代码修改的任何合法(智能)用法(程序在运行时修改它自己的代码)吗?
现代操作系统似乎对执行此操作的程序不屑一顾,因为病毒已使用此技术来避免检测.
我能想到的是某种运行时优化,它可以通过在运行时知道某些在编译时无法知道的东西来删除或添加一些代码.
executable platform-agnostic cpu-architecture instructions self-modifying
在C++中,
在为CPU编写仿真器时,我错过了上述内容
最近我一直在阅读一些SO档案,并遇到了针对x86架构的声明.
为什么我们需要不同的CPU架构用于服务器和迷你/大型机和混合核心?他说:
" PC架构一团糟,任何操作系统开发人员都会告诉你. "
学习汇编语言值得努力吗?(存档)说
"意识到x86架构充其量是可怕的 "
学习x86汇编程序的任何简单方法?他说:
" 大多数大学都教MIPS之类的装配,因为它更容易理解,x86装配非常难看 "
还有更多的评论
我试过搜索,但没有找到任何理由.我发现x86不好可能因为这是我熟悉的唯一架构.
有人可以给我一些考虑x86丑陋/坏/劣等的理由.
在一本书中,我读了以下内容:
32位处理器具有2 ^ 32个可能的地址,而当前的64位处理器具有48位地址空间
我的期望是,如果它是一个64位处理器,地址空间也应该是2 ^ 64.
所以我想知道这种限制的原因是什么?
x86-64 cpu-architecture virtual-memory processor-architecture
我做了一些研究.一个字节是8位,一个字是可以在内存中寻址的最小单元.单词的确切长度会有所不同.我不明白的是有一个字节是什么意思?为什么不说8位?
我问过这个问题的教授,他说这些天大多数机器都是字节可寻址的,但这会产生什么结果呢?
从Pentium Pro(P6微体系结构)开始,英特尔重新设计了它的微处理器,并在旧的CISC指令下使用了内部RISC内核.由于Pentium Pro所有CISC指令都分为较小的部分(uops),然后由RISC内核执行.
一开始我很清楚英特尔决定隐藏新的内部架构并强迫程序员使用"CISC shell".由于这一决定,英特尔可以在不破坏兼容性的情况下完全重新设计微处理器架构,这是合理的.
但是我不明白一件事,为什么英特尔仍然保留了多年内隐藏的内部RISC指令集?为什么他们不让程序员使用RISC指令,比如使用旧的x86 CISC指令集?
如果英特尔长期保持向后兼容性(我们仍然在64位模式旁边有虚拟8086模式),为什么它们不允许我们编译程序以便它们绕过CISC指令并直接使用RISC核心?这将开启自然的方式来慢慢放弃x86指令集,现在已弃用(这是英特尔决定在内部使用RISC核心的主要原因,对吧?).
看看新的英特尔'酷睿i'系列,我看到,他们只扩展了CISC指令集,增加了AVX,SSE4等.
原子操作的成本是什么(比较和交换或原子添加/减少中的任何一个)?它消耗了多少周期?它会暂停SMP或NUMA上的其他处理器,还是会阻止内存访问?它会在无序CPU中刷新重新排序缓冲区吗?
缓存有什么影响?
我对现代流行的CPU感兴趣:x86,x86_64,PowerPC,SPARC,Itanium.
我的理解是两种方法的主要区别在于,在"直写"方法中,数据立即通过高速缓存写入主存,而在"回写"数据则是在"后期"写入.
我们还需要在"后期"等待内存,那么"直写"的好处是什么?
在编译C或C++代码时,找出CPU架构最可靠的方法是什么?据我所知,不同的编译器有自己的一套非标准预处理器定义(_M_X86在MSVS中__i386__,__arm__在GCC 中等).
有没有一种标准的方法来检测我正在构建的架构?如果没有,是否有各种编译器的这种定义的综合列表的来源,例如包含所有样板#ifdef的标题?
在阅读了这篇文章后(在StackOverflow上回答)(在优化部分),我想知道为什么条件移动不容易受到分支预测失败的影响.我在一篇关于cond移动的文章中找到了(PDF由AMD提供).在那里,他们声称cond的性能优势.移动.但为什么会这样呢?我没有看到它.在评估ASM指令的时刻,前面的CMP指令的结果尚未知晓.
谢谢.
optimization performance assembly cpu-architecture branch-prediction
cpu-architecture ×10
assembly ×3
c++ ×2
performance ×2
x86 ×2
x86-64 ×2
atomic ×1
c ×1
caching ×1
compile-time ×1
cpu-cache ×1
detection ×1
executable ×1
hardware ×1
instructions ×1
intel ×1
lock-free ×1
memory ×1
mips ×1
optimization ×1
terminology ×1