小编Men*_*ork的帖子

Nasm-Winapi函数不会弹出其参数

我在用Nasm编写程序时发现,虽然winapi函数完成后会从堆栈中弹出CreateProcessAGetModuleFileNameA弹出参数,但并printf没有这样做。

有什么理由吗?而且更重要的是:还有其他不从堆栈弹出元素的winapi函数吗?因为我的程序行为异常,所以我想确保所有程序都不是由未弹出的值引起的。

x86 assembly winapi msvcrt calling-convention

1
推荐指数
1
解决办法
66
查看次数

nasm-通过未初始化变量的“真实”随机性?

我正在尝试在中构建一个数字生成器Nasm。为此,我想声明一些“变量”(我知道Nasm仅具有标签,没有变量),但没有定义它们。问题是在声明变量时.bss会自动对其进行null初始化。

我的问题是:
有没有办法让变量在null初始化之前保留其保留内存中的值?

操作系统是Windows。

windows random assembly initialization nasm

1
推荐指数
1
解决办法
56
查看次数

Nasm - 将值从 4 字节寄存器移动到 1 字节地址空间

当我将存储在 eax、ebx、ecx 等中的 4 字节值移动到分配的空间少于 4 字节的地址空间时,nasm 的行为如何?当我将存储的 1 字节值移动var到 4 字节寄存器时,nasm 分别如何表现?

喜欢:

.bss
var resb 1
.text
mov eax, 2000000000
mov [var], eax

xor ebx, ebx
mov ebx, [var]
Run Code Online (Sandbox Code Playgroud)

将什么样的价值观[var],并ebx有?为什么?当我打电话printf%d2000000000的结果。但这怎么可能?var只能保存1个字节。怎么可能从它接收到需要大量字节的数字?

x86 assembly memory-management nasm cpu-registers

1
推荐指数
1
解决办法
729
查看次数

汇编 - 隐式计算会改变操作码吗?

当我有这样的操作时mov eax, [input+10]

它是否具有与此操作不同的操作码:

mov eax, [input](考虑到输入现在具有前值input+10)?

x86 assembly nasm addressing-mode

0
推荐指数
1
解决办法
60
查看次数