这个是我上大二的时候的汇编语言课程设计。自己做得很满意。现在拿出来,给大家看看。我对部分代码又从新做了调整。编译后大小比原来大了一点,不过速度上去了。其实就是一个图形接口。你只要在中间加上自己的实用功能,就可以直接用了。代码我都有注释,读起来应该不会有什么问题。当然,汇编的代码本身就很难读。所以有什么不是很好懂的地方,可以直接同我联系。 逆@风@者 我还给同学做过一个C语言版的光带菜单,不过很可惜的是自己做得不是很满意,就把程序给删掉了。大家也就看不到了
本程序用 tasm 进行编译,tlink 进行连接。 menu.asm 主程序 mnmacro.asm 功能调用宏文件 menu.exe 编译后的可执行文件
版权所有 2002 - for ever mikespook http://lucky7.yeah.net
menu.asm 主程序
include mnmacro.asm data segment scrmm db 100 dup(?) ;主菜单名 mainmenu1 db 'File' mainmenu2 db 'Edit' mainmenu3 db 'Run' mainmenu4 db 'Debug' mainmenu5 db 'Help' ;主菜单File下的子菜单名 submenu11 db 'Save' submenu12 db 'Open' submenu13 db 'Exit' ;主菜单Edit下的子菜单名 submenu21 db 'Cut' submenu22 db 'Past' submenu23 db 'Copy' ;主菜单Run下的子菜单名 submenu31 db 'Run' submenu32 db 'Go to' submenu33 db 'Step' ;主菜单Debug下的子菜单名 submenu41 db 'Call' submenu42 db 'Find' submenu43 db 'Source' ;主菜单Help下的子菜单名 submenu51 db 'About' submenu52 db 'Our' submenu53 db 'Web' ;欢迎窗口信息 msgtitle db 'Assemble Design' msg1 db 'Please press Alt F,Alt E,Alt R,Alt D,Alt H or ',19h,' to open the submenu.' msg2 db 'Please press Enter (',11h,0c4h,0d9h,') to close the submenu.' msg3 db 'Please press ',1bh,' or ',1ah,' to select the mainmenu.' msg4 db 'Please press ',18h,' or ',19h,' to select the submenu.' msg5 db 'Copyright 2002 mikespook' msg6 db 'Press any key to continue...' msg7 db ' ' ;退出窗口信息 ' over db 'Thank you for uesing...Good buy~~ ' ;其他信息 escape db 'Press ESC to exit.' text1 db 'This is a example showing you how to make a menu with assemble.' text2 db 'And you could get it for free from http://lucky7.yeah.net.' text3 db 'You could use it in your software freely.' text4 db 'But please send me a copy of your software.' text5 db 'Thank you. Have a good time.' text6 db '--Yours truly mikespook' sub11 db 'Select Save' sub12 db 'Select Open' sub13 db 'Select Exit' sub21 db 'Select Cut' sub22 db 'Select Past' sub23 db 'Select Copy' sub31 db 'Select Run' sub32 db 'Select Go to' sub33 db 'Select Step' sub41 db 'Select Call' sub42 db 'Select Find' sub43 db 'Select Source' sub51 db 'Select About' sub52 db 'Select Our' sub53 db 'Select Web' ;------------------------- mainnum db 1;主菜单序列号 subnum db ?;子菜单序列号 subshow db 0;为0时子菜单未显示 mainindex db ?;主菜单字符长度 data ends ;-------------------------------- code segment assume cs:code,ds:data,es:data start: mov ax,data mov ds,ax mov es,ax ;******************* 初始化屏幕开始 mov ah,0 mov al,03h int 10h ;******************* 初始化屏幕结束 showcur 1 ;隐藏光标 ;************************************* 开始主窗口的绘制 drawwindow 1eh,0,0,24,79 outputstr msgtitle,15,10,30,13h outputstr msg1,68,15,5,17h changemenu 15,18,5,1eh changemenu 15,24,5,1eh changemenu 15,30,5,1eh changemenu 15,36,5,1eh changemenu 15,42,5,1eh changemenu 15,51,1,1eh
本文章更多内容:1 - 2 - 3 - 4 - 5 - 下一页>> |