RadASM环境,win32汇编入门教程之一

如果你是一个爱好者,那么win32汇编编程非常适合你。

刚开始学习编程,如果一开始就学习VC、C++等,会让自已学的非常糊涂,应该从简单的,基本的开始,侧重于原理的理解,那么,win32汇编就非常适合你。

它用来干什么都行,取决于你的能力。不管是数据库、网络、外挂、系统、驱动、病毒等等,都可以。

下面,我们开始从最简单的开始,先学会使用它的编程环境。给自已一点成就感,这很重要。

第1步,上网搜索,下载一个RadASM软件,它是集成的win32汇编环境,安装好它。我的电脑是64位的 windows 7 系统,以下示例都是在这电脑上形成的,其它系统或许会出错,可以多研究研究,默认安装就可以了。

第2步,安装好后,在桌面上,找到这个图标,双击打开它。

第3步,点文件,点新建工程

第4步,在打开的窗口中找到工程名字和工程说明,分别输入想起的名字和说明,点下一步

第5步,点下一步

第6步,点下一步

第7步,点完成

第8步,找到右侧的ABC.Asm文件,双击打开它

第9点,把下面的内容复制进里面去;win32汇编环境,生成窗口程序的框架
;将代码复制进radasm软件里,直接编译运行就可以生成一个最简单的窗口程序

;要复制的代码开始
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
.386 
.model flat,stdcall 
option casemap:none 

include      user32.inc 
includelib   user32.lib           
include      kernel32.inc 
includelib   kernel32.lib 
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
WinMain proto :DWORD,:DWORD,:DWORD,:DWORD       
                                                
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
.DATA                                   
ClassName   db "SimpleWinClass",0        
AppName     db "窗口程序的模版",0        

.DATA?                                  
hInstance HINSTANCE  ?                
CommandLine LPSTR    ?                  
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
.CODE                      

start:                      
invoke GetModuleHandle, NULL                                                    
mov hInstance,eax 
invoke GetCommandLine                                                                                       
mov CommandLine,eax 
invoke WinMain, hInstance,NULL,CommandLine, SW_SHOWDEFAULT        
invoke ExitProcess, eax                                          
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
WinMain proc hInst:HINSTANCE,hPrevInst:HINSTANCE,CmdLine:LPSTR,CmdShow:DWORD 
        LOCAL wc:WNDCLASSEX                                          
        LOCAL msg:MSG 
        LOCAL hwnd:HWND 

        mov   wc.cbSize,SIZEOF WNDCLASSEX                            
        mov   wc.style, CS_HREDRAW or CS_VREDRAW                     
        mov   wc.lpfnWndProc, OFFSET WndProc                        
        mov   wc.cbClsExtra,NULL 
        mov   wc.cbWndExtra,NULL 
        push  hInstance 
        pop   wc.hInstance 
        mov   wc.hbrBackground,COLOR_WINDOW 
        mov   wc.lpszMenuName,NULL 
        mov   wc.lpszClassName,OFFSET ClassName 
        invoke LoadIcon,NULL,IDI_APPLICATION                          
        mov   wc.hIcon,eax 
        mov   wc.hIconSm,eax 
        invoke LoadCursor,NULL,IDC_ARROW                              
        mov   wc.hCursor,eax 
        invoke RegisterClassEx, addr wc                              
        invoke CreateWindowEx,NULL, ADDR ClassName,ADDR AppName,WS_OVERLAPPEDWINDOW,100,100,400,600, NULL,NULL,hInst, NULL 
        mov   hwnd,eax 
        invoke ShowWindow, hwnd,CmdShow                              
         invoke UpdateWindow, hwnd                                    

        .while TRUE                                                   
                invoke GetMessage, ADDR msg,NULL,0,0 
                .break .if (!eax) 
                invoke TranslateMessage, ADDR msg 
                invoke DispatchMessage, ADDR msg 
        .endw 
        mov     eax,msg.wParam                                         
        ret 
WinMain endp 
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
WndProc proc hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM    
        .if uMsg==WM_DESTROY                                           
                invoke PostQuitMessage,NULL                               
        .else 
                invoke DefWindowProc,hWnd,uMsg,wParam,lParam             
        ret 
    .endif 
    xor eax,eax 
    ret 
WndProc endp 
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
end start  

;要复制的代码结束

; include      windows.inc   ;这句是包含名为windows的头文件,这里非常容易出错,如果编译出错,请尝试填写文件的绝对路径,注意所包含的头文件在哪个盘哪个文件夹下

;比如写成 D:\RadASM\masm32\include\windows.inc

;每句注释前面用英语输入法下的冒号,即 ; 号,才可以在后面写注释,注意不要换行写。换行的话再写上 ;号再开始写注释

                                                   

第10步,找到图中打红勾的地方,点一下

第11步,就会显示出你的第一个程序了,也是你写的第一个软件。下次打开RadASM,就是默认的这个程序,你可以继续完善它。从现在开始,你就是程序员了,或者叫软件工程师。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一品人家

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值