这段简单的代码出了什么问题?

dev*_*ium 4 assembly

我有以下代码,应该在断点处显示123在eax和321在ecx.由于某些原因,没有发生.有人在乎解释原因吗?

    push ebp;
    mov ebp, esp;
    sub esp, 8;
    mov [ebp-4], 123;
    mov [ebp-8], 321;
    mov eax, [ebp-4];
    mov ecx, [ebp-8];
    pop ebp; <------------- breakpoint here
    retn;
Run Code Online (Sandbox Code Playgroud)

我想,我不能做的一切都是错的

mov [ebp-4], 123
Run Code Online (Sandbox Code Playgroud)

其他一切对我来说都很好.

谢谢

编辑:值为:eax 1505915; ecx 1720129;

Mic*_*ael 8

您将字节值存储到内存中.

改成

mov dword ptr [ebp - 4], 123
mov dword ptr [ebp - 8], 321
Run Code Online (Sandbox Code Playgroud)

eax = 1505915是0x16FA7B.最后一个字节是十六进制的7B,十进制为123.ecx = 1720129是0x1A3F41.十六进制41是321(141)的最后一个字节.