标签: masm

x64 Windows 汇编程序中的 WndProc 未收到 WM_DESTROY 消息

我正在尝试使用 MASM /w Visual Studio 2019 重新创建类似于以下有效 C++ 代码的内容。本质上,在这个阶段只希望窗口可以移动并且关闭按钮可以工作。

#include <iostream>
#include <Windows.h>

LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM
    lParam)
{
    switch (message)
    {
    case WM_DESTROY:
        PostQuitMessage(0);
        break;
    default:
        return DefWindowProc(hWnd, message, wParam, lParam);
    }
    return 0;
}

int main()
{
    wchar_t windowclass[] = L"MyWinTest";

    HINSTANCE hInstance = GetModuleHandleW(NULL);
    MSG msg;
    WNDCLASSEXW wc;
    wc.cbSize = sizeof(WNDCLASSEX);
    wc.cbClsExtra = 0;
    wc.cbWndExtra = 0;
    wc.hbrBackground = 0;
    wc.hCursor = LoadCursor(NULL, IDC_ARROW);
    wc.hIcon = LoadIcon(hInstance, IDI_APPLICATION);
    wc.hIconSm = NULL;
    wc.hInstance …
Run Code Online (Sandbox Code Playgroud)

winapi masm masm64

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

X86斐波那契计划

我的任务是编写一个程序来计算斐波那契数列的前七个值.给出的公式是:

Fib(1) = 1, Fib(2) = 1, Fib(n) = Fib(n-1) + Fib(n-2)
Run Code Online (Sandbox Code Playgroud)

我相信这是一个功能,但我不明白如何将其合并到代码中.我需要将值放在EAX寄存器中.我使用MASM并没有任何区别.任何提示?

x86 assembly masm

-2
推荐指数
1
解决办法
6306
查看次数

使用MASM32在装配中随机化数字

如何使用Assembly与Masm32随机分配数字?如何创建随机数生成器?

非常感谢你!

windows random assembly masm masm32

-2
推荐指数
1
解决办法
2346
查看次数

如何在DOS下打印彩色字符串?

我想以不同于通常的白色文本颜色的颜色打印下面的数据块集,这可以通过使用另一个 DOS 中断(dx:string-address; ah,08H; int 21h)来实现。

Jan             db  "         January$          "     
string          db  "Sun Mon Tue Wed Thu Fri Sat$"
string1         db  "                 1   2   3$"
string2         db  " 4   5   6   7   8   9  10$"
string3         db  "11  12  13  14  15  16  17$"
string4         db  "18  19  20  21  22  23  24$"
string5         db  "25  26  27  28  29  30  31$"
Run Code Online (Sandbox Code Playgroud)

assembly dos masm tasm x86-16

-2
推荐指数
1
解决办法
2万
查看次数

HeapCreate是否将堆句柄返回到EAX?

我正在使用masm汇编程序,我正在使用kernel32.lib来创建堆内存,但是在HeapCreate过程的Windows API页面上,它并没有告诉我它的返回值存储在何处.(即堆的句柄)我会假设它存储在EAX?因为大多数程序都将其返回值放入EAX.在我调用HeapCreate之后,我调用HealAlloc在我的堆中分配一些内存:

INCLUDE \masm32\include\kernel32.inc
INCLUDELIB \masm32\lib\kernel32.lib
.CODE

PUSH DWORD PTR 00h ;max size
PUSH DWORD PTR 00h ;initial size
PUSH DWORD PTR 04h ;flOption
CALL HeapCreate

PUSH DWORD PTR 04h ;dwBytes (the size in bytes)
PUSH DWORD PTR 04h ;dwFlag
PUSH EAX ;I am not sure if the heap handle is stored in EAX or not?
CALL HeapAlloc

END
Run Code Online (Sandbox Code Playgroud)

基本上,我不知道HeapCreate存储返回值的位置.如果有人能澄清在哪里,我会很感激.

谢谢

x86 assembly winapi masm heap-memory

-2
推荐指数
1
解决办法
178
查看次数

为什么这段代码永远不会跳转到名为true的标签?

我一直想弄清楚为什么我的代码不起作用.

我需要在此代码的更大版本中实现此cmp作为主菜单,要求选项继续执行某些操作,但是当比较al, '1'无法识别je并且直接跳转到jne.

我知道这可能是比较时的错误但是正确的方法是什么?

.model small

.stack 100h

.data

wm db 0ah, 0dh, "Welcome! please select one of the following options: $"

op1 db 0ah, 0dh, "Please submit 1 to true and 2 to false: $"

op1_1 db 0ah, 0dh, "its true!!! $"

op1_2 db 0ah, 0dh, "its false!!!! $"


.code

main PROC

    mov ax,@data

    mov ds, ax  
    mov dx, offset wm
    mov ah, 09h
    int 21h  

    mov dx, offset op1
    mov ah, 09h …
Run Code Online (Sandbox Code Playgroud)

x86 assembly dos masm

-4
推荐指数
1
解决办法
75
查看次数

x86 MASM 程序集中的寻址模式和内存源与目标

我查看了许多关于这个主题的主题,但都令人困惑。我还没有看到任何可以帮助我的答案的视觉效果。

我不明白所有这些陈述之间的区别:

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

如果有人可以创建一个带有值的表格并向我展示,那就太好了。

x86 assembly masm

-4
推荐指数
1
解决办法
55
查看次数

标签 统计

masm ×7

assembly ×6

x86 ×4

dos ×2

winapi ×2

heap-memory ×1

masm32 ×1

masm64 ×1

random ×1

tasm ×1

windows ×1

x86-16 ×1