CE 汇编笔记
向内存地址写入双字节
asm
mov dword ptr [rsp+10], 0x42B40000
向寄存器写入某地址的值
asm
mov rax,#10
mov dword ptr [rsi+18], 0x42D70000
movss xmm0,[rsp+10]
加法
asm
add rax,#1
addss xmm0, xmm0
减法
asm
sub rax,1
跳转
asm
jmp return
申请内存
asm
alloc(newmem,$1000)
label(myVar)
label(myFloatVar)
label(return)
newmem:
myVar:
dd 0 // 定义一个双字变量,初始值为 0
myFloatVar:
dd (float)0.0 // 定义一个浮点数变量,初始值为 0.0
// 使用变量
// 将 myVar 的值加载到 eax 寄存器
mov eax, [myVar]
// 将 10 存储到 myVar
mov [myVar], 10
// 将 myFloatVar 的值加载到 xmm0 寄存器
movss xmm0, [myFloatVar]
// 将 1.5 存储到 myFloatVar
movss dword ptr [myFloatVar], (float)1.5
jmp return