我正在尝试使用 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) 我的任务是编写一个程序来计算斐波那契数列的前七个值.给出的公式是:
Fib(1) = 1, Fib(2) = 1, Fib(n) = Fib(n-1) + Fib(n-2)
Run Code Online (Sandbox Code Playgroud)
我相信这是一个功能,但我不明白如何将其合并到代码中.我需要将值放在EAX寄存器中.我使用MASM并没有任何区别.任何提示?
如何使用Assembly与Masm32随机分配数字?如何创建随机数生成器?
非常感谢你!
我想以不同于通常的白色文本颜色的颜色打印下面的数据块集,这可以通过使用另一个 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) 我正在使用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存储返回值的位置.如果有人能澄清在哪里,我会很感激.
谢谢
我一直想弄清楚为什么我的代码不起作用.
我需要在此代码的更大版本中实现此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) 我查看了许多关于这个主题的主题,但都令人困惑。我还没有看到任何可以帮助我的答案的视觉效果。
我不明白所有这些陈述之间的区别:
mov eax, ebx
mov [eax],ebx
mov eax, [ebx]
Run Code Online (Sandbox Code Playgroud)
如果有人可以创建一个带有值的表格并向我展示,那就太好了。