相关疑难解决方法(0)

汇编编程 - WinAsm 与 Visual Studio 2017

我是来问你一些关于 VS2017 的东西的。
过去,我曾将 WinAsm 用于 MASM,但从未遇到过问题。

然而,当我尝试在 VS2017 中使用 MASM 做一些事情时,我总是会遇到问题和东西......
我已经检查了整个互联网关于“如何为 MASM 设置 VS”,但没有任何帮助我,因为我总是遇到麻烦...

有没有什么方法可以将 Visual Studio 2017 用于 MASM32/64 位而不会感到头疼?

有人可以给我设置 VS2017 进行汇编编程的终极指南吗?

非常感谢您,并为我的英语不好而感到抱歉。

ide assembly masm instructions visual-studio-2017

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

.STACK 未在 MASM 中分配正确的大小

基于Microsoft MASM 文档,.STACK 指令的用法是

当与 .MODEL 一起使用时,定义一个堆栈段(具有段名称 STACK)。可选大小指定堆栈的字节数(默认为 1,024)。.STACK 指令自动关闭堆栈语句。(仅限 32 位 MASM。)

为了实验,我做了.STACK分配1,073,741,824 bytes (1 GB)

请注意,我在 Visual Studio 2013 控制台项目中运行代码。

.586

.MODEL FLAT

.STACK 1073741824

.DATA
a DWORD 50
b DWORD 55

.CODE
main PROC
    addLoop: mov eax, a
    push eax
    mov eax, 0
    mov ebx, b
    push ebx
    jmp addLoop
    RET
main ENDP

END
Run Code Online (Sandbox Code Playgroud)

该代码将溢出堆栈。我所做的是记下ESP寄存器的第一个地址,让代码运行直到溢出,然后ESP从第一个中减去最后一个以获得堆栈的大小。

在我的上下文中,它是00DAFEE4 - 00CB3000 + 1 = 000FCEE5. 这只是1036005 bytes (~1 …

assembly callstack masm

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