public void SetValue(Expression dst, Expression value) { if (dst is Identifier id) { state.SetValue(id, value); } else if (dst is SegmentedAccess smem) { state.SetValueEa(smem.BasePointer, GetValue(smem.EffectiveAddress), value); } else if (dst is MemoryAccess mem) { state.SetValueEa(GetValue(mem.EffectiveAddress), value); } }
private void Given_StackString(int stackOffset, string str) { uint uiAddr = 0x13; var sp = m.Register(program.Architecture.StackRegister); var stackAccess = m.IAdd(sp, stackOffset); state.SetValueEa(stackAccess, Constant.Word32(uiAddr)); WriteString32(program, uiAddr, str); }