汇编Word格式文档下载.docx

上传人:b****1 文档编号:396109 上传时间:2023-04-28 格式:DOCX 页数:81 大小:798.44KB
下载 相关 举报
汇编Word格式文档下载.docx_第1页
第1页 / 共81页
汇编Word格式文档下载.docx_第2页
第2页 / 共81页
汇编Word格式文档下载.docx_第3页
第3页 / 共81页
汇编Word格式文档下载.docx_第4页
第4页 / 共81页
汇编Word格式文档下载.docx_第5页
第5页 / 共81页
汇编Word格式文档下载.docx_第6页
第6页 / 共81页
汇编Word格式文档下载.docx_第7页
第7页 / 共81页
汇编Word格式文档下载.docx_第8页
第8页 / 共81页
汇编Word格式文档下载.docx_第9页
第9页 / 共81页
汇编Word格式文档下载.docx_第10页
第10页 / 共81页
汇编Word格式文档下载.docx_第11页
第11页 / 共81页
汇编Word格式文档下载.docx_第12页
第12页 / 共81页
汇编Word格式文档下载.docx_第13页
第13页 / 共81页
汇编Word格式文档下载.docx_第14页
第14页 / 共81页
汇编Word格式文档下载.docx_第15页
第15页 / 共81页
汇编Word格式文档下载.docx_第16页
第16页 / 共81页
汇编Word格式文档下载.docx_第17页
第17页 / 共81页
汇编Word格式文档下载.docx_第18页
第18页 / 共81页
汇编Word格式文档下载.docx_第19页
第19页 / 共81页
汇编Word格式文档下载.docx_第20页
第20页 / 共81页
亲,该文档总共81页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

汇编Word格式文档下载.docx

《汇编Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《汇编Word格式文档下载.docx(81页珍藏版)》请在冰点文库上搜索。

汇编Word格式文档下载.docx

(2)程序系统的详细框图(每个子程序的流程图)。

因为子程序繁多,这里只画出主要程序的流程图

_ProcWinMain的流程图:

ToolbarProc的流程图:

(3)程序界面图:

初始:

菜单:

复制之后:

退出:

帮助:

关于计算器:

显示:

(4)程序清单。

含有3个文件:

主文件Calc.asm\宏文件macros.asm\资源文件calc.rc

Calc.asm:

.386

.modelflat,stdcall

optioncasemap:

none

include\masmplus\INCLUDE\windows.inc

include\masmplus\INCLUDE\user32.inc

include\masmplus\INCLUDE\kernel32.inc

include\masmplus\INCLUDE\comctl32.inc

include\masmplus\INCLUDE\gdi32.inc

includelib\masmplus\LIB\user32.lib

includelib\masmplus\LIB\kernel32.lib

includelib\masmplus\LIB\comctl32.lib

includelib\masmplus\LIB\gdi32.lib

includemacros.asm

.CONST

ICO_MAINequ1000h

IDT_TOOLBAR1EQU1501H

IDT_TOOLBAR2EQU1502H

IDT_TOOLBAR3EQU1503H

IDT_TOOLBAR4EQU1504H

IDM_MAINequ2000h

IDA_MAINequ2000h

IDM_COPYequ4101h

IDM_STICKequ4102h

IDM_EXITequ4103h

IDM_STANDRDequ4201h

IDM_SCIENCEequ4202h

IDM_INTequ4203h

IDM_HELPequ4301h

IDM_ABOUTequ4302h

STATICIDequ301

IDM_MESSAGEequ501

IDM_MESSAGE1equ502

IDM_INPUT1equ204

IDM_INPUT2equ205

IDM_RESULTequ206

EDITBUTTONequ1

BUTTON1equ2

BUTTON2equ3

BUTTON3equ4

BUTTON4equ5

BUTTON5equ'

7'

BUTTON6equ'

4'

BUTTON7equ'

1'

BUTTON8equ'

0'

BUTTON9equ'

8'

BUTTON10equ'

5'

BUTTON11equ'

2'

BUTTON12equ13

BUTTON13equ'

9'

BUTTON14equ'

6'

BUTTON15equ'

3'

BUTTON16equ17

BUTTON17equ18

BUTTON18equ19

BUTTON19equ20

BUTTON20equ21

BUTTON21equ22

BUTTON22equ23

BUTTON23equ24

BUTTON24equ25

BUTTON25equ26

BUTTON26equ27

BUTTON27equ28

;

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

;

数据段

.data

IDTddIDT_TOOLBAR1,IDT_TOOLBAR2,IDT_TOOLBAR3,IDT_TOOLBAR4;

定义工具栏按钮

tb1TBBUTTON<

0,BUTTON1,TBSTATE_ENABLED,TBSTYLE_BUTTON,0,0,-1>

TBBUTTON<

0,0,TBSTATE_ENABLED,TBSTYLE_SEP,0,0,-1>

1,BUTTON5,TBSTATE_ENABLED,TBSTYLE_BUTTON,0,0,-1>

2,BUTTON9,TBSTATE_ENABLED,TBSTYLE_BUTTON,0,0,-1>

3,BUTTON13,TBSTATE_ENABLED,TBSTYLE_BUTTON,0,0,-1>

4,BUTTON17,TBSTATE_ENABLED,TBSTYLE_BUTTON,0,0,-1>

tbb1TBBUTTON<

5,BUTTON21,TBSTATE_ENABLED,TBSTYLE_BUTTON,0,0,-1>

tbl1EQU($-tbb1)

tb2TBBUTTON<

0,BUTTON2,TBSTATE_ENABLED,TBSTYLE_BUTTON,0,0,-1>

1,BUTTON6,TBSTATE_ENABLED,TBSTYLE_BUTTON,0,0,-1>

2,BUTTON10,TBSTATE_ENABLED,TBSTYLE_BUTTON,0,0,-1>

3,BUTTON14,TBSTATE_ENABLED,TBSTYLE_BUTTON,0,0,-1>

4,BUTTON18,TBSTATE_ENABLED,TBSTYLE_BUTTON,0,0,-1>

tbb2TBBUTTON<

5,BUTTON22,TBSTATE_ENABLED,TBSTYLE_BUTTON,0,0,-1>

tbl2EQU($-tbb2)

tb3TBBUTTON<

0,BUTTON3,TBSTATE_ENABLED,TBSTYLE_BUTTON,0,0,-1>

1,BUTTON7,TBSTATE_ENABLED,TBSTYLE_BUTTON,0,0,-1>

2,BUTTON11,TBSTATE_ENABLED,TBSTYLE_BUTTON,0,0,-1>

3,BUTTON15,TBSTATE_ENABLED,TBSTYLE_BUTTON,0,0,-1>

4,BUTTON19,TBSTATE_ENABLED,TBSTYLE_BUTTON,0,0,-1>

tbb3TBBUTTON<

5,BUTTON23,TBSTATE_ENABLED,TBSTYLE_BUTTON,0,0,-1>

tbl3EQU($-tbb3)

tb4TBBUTTON<

0,BUTTON4,TBSTATE_ENABLED,TBSTYLE_BUTTON,0,0,-1>

1,BUTTON8,TBSTATE_ENABLED,TBSTYLE_BUTTON,0,0,-1>

2,BUTTON12,TBSTATE_ENABLED,TBSTYLE_BUTTON,0,0,-1>

3,BUTTON16,TBSTATE_ENABLED,TBSTYLE_BUTTON,0,0,-1>

4,BUTTON20,TBSTATE_ENABLED,TBSTYLE_BUTTON,0,0,-1>

tbb4TBBUTTON<

5,BUTTON24,TBSTATE_ENABLED,TBSTYLE_BUTTON,0,0,-1>

tbl4EQU($-tbb4)

tbddtb1,tb2,tb3,tb4

tblddtbl1,tbl2,tbl3,tbl4

定义各窗口及按钮的句柄

hInstancedd?

hWinMaindd?

hMenudd?

hSubMenudd?

SubTooldd0

hTB01dd0

hwndButton25HWND?

hwndButton26HWND?

hwndButton27HWND?

hwndStaticHWND?

hwndEditHWND?

FontNamedb'

宋体'

0;

子窗口字体

BackGCdd00b1987ch

lfLOGFONT<

?

>

hFontdd0

;

计算所需定义的变量及缓冲区

tempString1db30dup(?

tempString2db30dup(?

copytextdb30dup(?

tempbufferdb30dup(?

bufferdb512dup(?

resultdb30dup(?

displaydb30dup(?

saveStringdb30dup(?

savetdb30dup(?

emptyflagsdb?

当前状态0-3

dotflagsdb?

小数标志

copyflagsdb0

saveflagsdb0

mrflagsdb0;

显示存储标志

minusflagsdb0

resultflagsdb0

opflagsdb0;

加减乘除

msdownflagsdb0;

当前操作数是否被Ms或M+.

changflagsdb0;

当前是否输入操作符,是为1.

stickflagsdb0

errflagsdb0;

错误标志

secondnumdd0

keychardb?

输入的数字字符

;

用户程序所用的变量

statusdb?

xdw?

cwdw?

cw1dw?

sw1dw?

swdw?

mansdt0

expdt0

expnumdw0

fourdb5dup(?

chardb?

ten17dq1.0E17

tendw10

ten0dd10.0

crdb0

;

字符串的定义

szClassNamedb'

MenuExample'

0

szCaptionMaindb'

计算器'

szMenuHelpdb'

帮助主题(&

H)'

szMenuAboutdb'

关于计算器(&

A)'

ExitTextdb'

你真的要退出?

'

ExitTitledb'

messagedb"

除数不能为零。

"

message1db"

函数输入无效。

HelpTextdb'

计算器怎么用就不用说了吧,自己摸索吧!

HelpTitledb'

帮助'

AboutTextdb'

byliulinghui'

AboutTitledb'

VersionInformation'

overflowdb'

结果溢出'

InitTextdb'

StaticClassNamedb"

static"

StaticTextdb"

M"

ButtonClassNamedb"

button"

ButtonText1db"

MC"

ButtonText2db"

MR"

ButtonText3db"

MS"

ButtonText4db"

M+"

ButtonText5db"

7"

ButtonText6db"

4"

ButtonText7db"

1"

ButtonText8db"

0"

ButtonText9db"

8"

ButtonText10db"

5"

ButtonText11db"

2"

ButtonText12db"

+/-"

ButtonText13db"

9"

ButtonText14db"

6"

ButtonText15db"

3"

ButtonText16db"

."

ButtonText17db"

/"

ButtonText18db"

*"

ButtonText19db"

-"

ButtonText20db"

+"

ButtonText21db"

sqrt"

ButtonText22db"

%"

ButtonText23db"

1/x"

ButtonText24db"

="

ButtonText25db"

Backspace"

ButtonText26db"

CE"

ButtonText27db"

C"

EditClassNamedb"

edit"

StaticText1db"

"

StaticText2db'

M'

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

.code

~~~~~~~~~~~~~~~~~~~~~~~~~~~~

消息处理

窗口子类化

ToolbarProcprochWnd:

DWORD,wmsg:

DWORD,wParam:

DWORD,lparam:

DWORD

moveax,wmsg

finit

.ifeax==WM_COMMAND

moveax,wParam

.ifax==IDM_INPUT1

invokeSetWindowText,hwndEdit,ADDRtempString1

.ELSEifax==IDM_INPUT2

invokeSetWindowText,hwndEdit,ADDRtempString2

.ELSEifax==IDM_RESULT

invokeSetWindowText,hwndEdit,ADDRdisplay

.ELSEifax==IDM_MESSAGE

invokeSetWindowText,hwndEdit,ADDRmessage

.elseifax==IDM_MESSAGE1

invokeSetWindowText,hwndEdit,ADDRmessage1

.elseifax==BUTTON1;

按下MC

Mc

.ELSEifax==BUTTON2;

按下MR

Mr

.ELSEifax==BUTTON3;

按下MS

Ms

.ELSEifax==BUTTON4;

按下M+

Madd

.ELSEifax>

='

&

&

ax<

KEYWal

.ELSEifax==BUTTON12

SIG

.ELSEifax==BUTTON16

DECI

.elseifax==BUTTON17

OPR4

.elseifax==BUTTON18

OPR3

.elseifax==BUTTON19

OPR2

.elseifax==BUTTON20

OPR1

.ELSEifax==BUTTON21

SQRT

.ELSEifax==BUTTON22

PERCENT

.ELSEifax==BUTTON23

INVERSE

.ELSEifax==BUTTON24

EQUEL

.endif

.elseifeax==WM_CHAR

.ifal<

al>

KEYWal

.elseifal=='

.'

DECI

+'

OPR1

-'

OPR2

*'

OPR3

/'

OPR4

.elseifal==0dh||al==3dh

EQUEL

.elseifal==08h

BSPACE

.elseifal==25h

PERCENT

.endif

.endif

invokeCallWindowProc,SubTool,hWnd,wmsg,wParam,lparam

ret

ToolbarProcendp

*********************************************************

_ProcWinMainprocusesebxediesihWnd,uMsg,wParam,lParam

local@stPos:

POINT

local@hSysMenu

localYP

moveax,uMsg

.ifeax==WM_CREATE;

应用程序创建一个窗口

invokeGetSubMenu,hMenu,0;

取得被指定菜单激活的下拉式菜单或子菜单的句柄

movhSubMenu,eax

invokeGetSystemMenu,hWnd,FALSE;

返回当前使用窗口菜单的拷贝的句柄

mov@hSysMenu,eax

invokeAppendMenu,@hSysMenu,MF_SEPARATOR,0,NULL;

在指定的菜单条、下拉式菜单、子菜单或快捷菜单的末尾追加一个新菜单项

invokeAppendMenu,@hSysMenu,0,IDM_HELP,offsetszMenuHelp

invokeAppendMenu,@hSysMenu,0,IDM_ABOUT,offsetszMenuAbout

invokeGetSysColor,COLOR_MENU

movBackGC,eax;

设置子窗口字体颜色

invokelstrcpy,ADDRlf.lfFaceName,ADDRFontName

movlf.lfHeight,-12

movlf.lfWeight,500

invokeCreateFontIndirect,ADDRlf

movhFont,eax

invokeCreateWindowEx,WS_EX_CLIENTEDGE,ADDREditClassName,NULL,\;

创建edit窗口

WS_CHILDorWS_VISIBLEorCS_DBLCLKSorWS_BORDERorES_RIGHTorES_AUTOHSCROLLorES_SAVESEL,\

5,0,245,25,hWnd,EDITBUTTON,hInstance,NULL

movhwndEdit,eax

invokeSetWindowText,hwndEdit,ADDRInitText

invokeCreateWindowEx,WS_EX_CLIENTEDGE,ADDRStaticClassName,ADDRStaticText,\

WS_CHILDorWS_VISIBLEorSS_CENTER,\

10,40,25,25,hWnd,STATICID,hInstance,NULL

movhwndStatic,eax

invokeSetWindowText,hwndStatic,ADDRStaticText1

WINCHILD25,55,40,78,30

WINCHILD26,140,40,60,30

WINCHILD27,210,40,45,30

xorebx,ebx

movYP,73

BuildTB:

invokeCreateWindowEx,0,offs

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2