分享
 
 
 

(译)win32asm实例-1

王朝system·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

1.0 - New project新的工程

Create a new folder named 'mosaic' in your asm projects folder (it is adviceable to create this folder on the same drive as the MASM package so you can use the relative lib/include paths in the examples.

在你的asm工程文件夹(建议这个文件夹和masm包放在同一个区因而你可以在例子中使用相对的lib/include(库/包含文件)路径)中创建名为“mosaic”的新目录。

Download this ZIP file and extract it's contents in your 'mosaic' folder: mosaic lesson files.zip

下载这个zip文件并把它的内容解压缩到你的“mosaic”目录中:mosaic lesson files.zip

1.1 - Basic files基本文件

The ZIP contains the basic (almost empty) files for your project. Here's a short description of the files:

Zip包中有你工程的基本(几乎为空)文件。这些文件的简单描述:

Mosaic.asm

;===============================================================================

; Mosaic.asm

;===============================================================================

.486

.model flat, stdcall

option casemap: none

includelib \masm32\lib\kernel32.lib

includelib \masm32\lib\user32.lib

includelib \masm32\lib\gdi32.lib

includelib \masm32\lib\comctl32.lib

includelib \masm32\lib\comdlg32.lib

include \masm32\include\kernel32.inc

include \masm32\include\comctl32.inc

include \masm32\include\comdlg32.inc

include \masm32\include\user32.inc

include \masm32\include\gdi32.inc

include \masm32\include\windows.inc

include mosaic.inc

.code

start:

end start

This file contains the framework for a win32 asm source file.

这个文件包含了win32asm源文件的框架。

.486: indicates to use the 486+ assembly instructions

.model flat, stdcall: defines the memory model (flat) and the calling convention (stdcall)

includelib / include: These include the libraries and include files for the windows functions needed. The windows.inc includes basic windows constants. The mosaic.inc contains your own constants.

.code: select code segment

start: just a label, could be anything

end start: indicates that the entry point of your program is at a label called start.

.486: 说明用486及以上的汇编指令。

.model flat, stdcall:定义内存模式(flat)和调用习惯(stdcall)

includelib / include: 这些包含Windows函数所需要的库和包含文件。Windows.inc中有基本的windows常量。Mosaic.inc包含你自有的常量。

.code: 选择代码段

start: 只是一个标签,可以为任何东西

end start:表明你的程序的入口点是位于一个名为start的标签.

Mosaic.inc

;---- msgbox macro: usage MSGBOX "string to display" -------

MSGBOX MACRO msg:REQ

LOCAL @msg

.data

@msg db msg, 0

.code

invoke MessageBox, NULL, ADDR @msg, ADDR AppName, MB_OK

ENDM

In mosaic.inc there is a little macro to simplify the use of MessageBoxes. A macro is a piece of code that can contain variables (here msg for example), which you can then use in your code and will be replaced by the macro code when assembling. I don't go into details about macro's right now, just remember you can show a msgbox in your program by using:

在mosaic.inc中有一个小的宏来简化MessageBox的使用。一个宏是一小块可以包含变量(例如这里的msg)的代码。你可以在你的代码中使用它,而且在汇编时将会被宏中的代码所取代。我不会立刻深入宏的细节。只要记住你可以在你的程序中使用一下代码来显示一个消息对话框:

msgbox "Your string to display"

make.bat

@echo off

ml /c /coff mosaic.asm

rc -r mosaic.rc

link /subsystem:windows mosaic.obj mosaic.res

pause>nul

Use this batch file to assemble and link your program. The rc command will compile your resources.

使用这个批处理文件来汇编并链接你的程序。Rc命令编译你的资源

resources

This folder contains some bitmaps and icons we will use in our program:

这个文件夹包含一些我们将要在我们程序中使用的图片和图标:

Big icon

(big.ico)

Small icon

(small.ico)

Toolbar buttons

(Toolbar.bmp)

Demo game picture

(demo.bmp)

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有