
vc6.0中如何运行汇编语言写的程序 20
汇编源程序是.386.modelflat,stdcalloptioncasemap:noneMessageBoxAPROTO:dword,:dword,:dwordMes...
汇编源程序是
.386
.model flat,stdcall
option casemap:none
MessageBoxA PROTO:dword,:dword,:dword
MessageBox equ <MessageBoxA>
includelib user32.lib
NULL equ 0
MB_OK equ 0
.stack 4096
.data
szTitle byte 'Hi!',0
szMsg byte 'Hello World!',0
.code
start:
invoke MessageBox,
Null,
offset szMsg,
offset szTitle,
MB_OK
ret
end start
怎么编写让它能在vc6.0里运行呢 展开
.386
.model flat,stdcall
option casemap:none
MessageBoxA PROTO:dword,:dword,:dword
MessageBox equ <MessageBoxA>
includelib user32.lib
NULL equ 0
MB_OK equ 0
.stack 4096
.data
szTitle byte 'Hi!',0
szMsg byte 'Hello World!',0
.code
start:
invoke MessageBox,
Null,
offset szMsg,
offset szTitle,
MB_OK
ret
end start
怎么编写让它能在vc6.0里运行呢 展开
1个回答
展开全部
下面代码是在C语言中嵌入汇编代码实现弹出对话框:
#include <windows.h>
#include <stdio.h>
char format[] = "%s %s\n";
char hello[] = "Hello";
char world[] = "world";
HWND hwnd;
void main( void )
{
__asm
{
//push NULL
//call dword ptr GetModuleHandle
//mov hwnd,eax
push MB_OK
mov eax, offset world
push eax
mov eax, offset hello
push eax
push 0//说明此处不能将前面注释掉代码处得到的hwnd压栈,否则对话框弹不出来。
call dword ptr MessageBox
}
}
#include <windows.h>
#include <stdio.h>
char format[] = "%s %s\n";
char hello[] = "Hello";
char world[] = "world";
HWND hwnd;
void main( void )
{
__asm
{
//push NULL
//call dword ptr GetModuleHandle
//mov hwnd,eax
push MB_OK
mov eax, offset world
push eax
mov eax, offset hello
push eax
push 0//说明此处不能将前面注释掉代码处得到的hwnd压栈,否则对话框弹不出来。
call dword ptr MessageBox
}
}
参考资料: http://zhidao.baidu.com/question/27109185.html
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询