ART世界探险(5) - 计算指令
计算机的核心功能就是计算,Android为我们提供了一个让JVM,ARM, ARM v7a, ARM64, x86, x86_64, mips, mips64共舞的舞台,让我们一起看看它们的计算分别是如何实现的吧
CAS指令与MESI缓存一致性协议、 “轻量级锁” 与原子操作
CAS指令与MESI缓存一致性协议、 “轻量级锁” 与原子操作
“最轻量级的锁”,通常也叫”原子操作”,之所以加引号是因为他们在汇编级别并不是原子操作,是用多条指令完成的,这些操作大多都是利用CPU支持的汇编指令.
CAS(Compare-And-Swap)指令是并行程序设计最基础的基石。
EOS节点远程代码执行漏洞细节
这是一个缓冲区溢出越界写漏洞
漏洞存在于在 libraries/chain/webassembly/binaryen.cpp文件的78行,
Function binaryen_runtime::instantiate_module:
for (auto& segment : module->table.
一个有趣的过程 movq %rcx, %gs:0x80000000不能通过编译
# movq %rcx, %gs:0x80000000不能通过编译
今天有同事提问, 为什么
```
movq %rcx, %gs:0x7fffffff //可以通过编译
movq %rcx, %gs:0x80000000 //不能通过编译
```
其实就是一个立即数的差别, 应该是无差的, 好吧, 让我们来研究一下
# 第一步
先看一下```movq %rcx, %g