Windows下MASM集成汇编系统的研究与开发

来源 :电脑知识与技术·学术交流 | 被引量 : 0次 | 上传用户:kcj321
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:为了方便教学,让学生尽快掌握汇编语言程序设计的方法,开发了基于VC++的Windows下MASM集成汇编系统,该系统集成了微机汇编语言主要调试工具,实现了编程、编译、联接和动态调试等功能的一体化。实践证明:MASM集成汇编系统界面友好、操作方便,有较好的应用价值。
  关键词:汇编语言;微机;教学;Visual C++;Windows
  中图分类号:G640文献标识码:A文章编号:1009-3044(2008)23-966-03
  The Research and Development of MASM Integrated Assemble System in Windows
  SU Jian-yuan, FANG Jian, WANG Ling-ling, LIANG Hong-yan, ZHAO Xin
  (College of Electrical Engineering,Hehai University, Nanjing 210024, China)
  Abstract: In order to satisfy the need of teaching and let students study the programs design method of assembly language, developed MASM integrated assemble system in windows based on VC++. This system included main debugging tools of microcomputer assembly language and its interface is friendly, its operation is simple. It has better application values.
  Key words: Assembly language; microcomputer; teaching; visual C++; Windows
  
  1 引言
  
  汇编语言的优点是速度快,可以直接对硬件进行操作,这对诸如图形处理等关键应用是非常重要的。作为最基本的编程语言之一,汇编语言虽然应用的范围不算很广,但重要性却勿庸置疑,因为它能够完成许多其它语言所无法完成的功能。但是,现有的宏汇编编译工具主要还是工作在DOS环境中,虽然DVCC-8086H开发环境是Windows,但软件不能独立运行,必须连接仿真设备才行。该文运用Visual C++开发了一种Windows下MASM集成汇编系统。
  
  2 系统主要功能及其实现
  
  Windows下MASM集成汇编系统主要实现以下功能:
  1)能在该系统中编写程序并可以对程序进行编辑、保存、打印,自动提供微机汇编语言程序的分段框架结构;
  2)对ASM文件进行编译,可运用指令ShellExecute(NULL,"open"," masm.exe的全路径名",m_strCmd,NULL,SW_HIDE)调用masm.exe应用程序完成编译功能。为了方便用户,编译之后自动跳出编译结果,还可以通过查询List文件和Cross文件修改程序中的错误,为了边看文件边修改错误,将List文件和Cross文件的对话框设置成非模态对话框;
  3)对OBJ文件进行联接,调用link.exe文件,联接后显示提示信息;
  4)对EXE文件或COM文件进行动态调试;
  5)启动画面中显示软件名称和版权等提示信息,使用动画可以减少等待程序加载过程中的枯燥感;
  6)其它设置。如字体设置,新建窗口、层叠、平铺和排列图标等窗口的设置,左缩进设置等。
  下面重点讨论启动界面和编译功能的实现方法。
  2.1 启动界面的实现
  启动界面如图1所示。应用VC++制作系统启动画面基本步骤如下:
  1)用Photoshop等工具制作启动画面图象,保存为bmp格式。
  2)用Appwizard建一个基于单文档的Splash。
  3)在资源中插入点阵图资源。打开VC++的资源编辑器,用鼠标右键按一下Resources文件夹,选择Import命令,插入所制作的点阵图。如果点阵图超过256色,VC++会弹出对话框,提示点阵图已经插入但不能在点阵图编辑器中显示,将点阵图ID改为IDB_SPLASH。
  4)添加Splash Screen控件。选择菜单“project”/“Add To Project”/“Conponents and Controls”打开对话框,在对话框中连续按两下"Visual C++ Conponents"选项,选择“Splash Screen”控件,然后按一下“Insert”。 确认或修改类名和点阵图资源ID,按OK确认。 选择、连接后,启动画面就显示出来了。
  5)如果需要改变启动画面的停留时间,就修改SetTimer()函数的第二个参数,默认是750毫秒。
  int CSplashWnd::OnCreate(LPCREATESTRUCT lpCreateStruct)
  { SetTimer(1, 750, NULL); //修改第二个参数以调整画面停留时间
  return 0;}
  2.2 编译功能的实现
  实现编译功能的部分程序如下:
  //编译子函数,调用masm.exe
  void CChildView::masm(CString lpfilename)
  {
  //构造全路径命令行参数
  ……
  //调用masm.exe进行编译
  ShellExecute(NULL,"open",strCmdLine,m_strCmd,NULL,SW_HIDE);
   m_strRunFileName = filename;
   //将文件名保存以便连接和运行使用
   //等待0.1秒,等待汇编完成,产生*.CRF、 *.OBJ、 *.LST文件
   Sleep(200);
  BuildDlg();//弹出编译结果汇报对话框
   m_ListMenu = TRUE; //使能“查看LIST文件”菜单
   m_CrossMenu = TRUE;//使能“查看CROSS文件”菜单
   m_LinkMenu = TRUE; //使能“连接”菜单
   //这时的菜单查看LIST文件、查看CROSS文件和连接都变黑。如图2所示。
  }
  编译完之后自动弹出对话框,显示汇编结果,程序如下。
  //弹出对话框子函数
  void CChildView::BuildDlg()
  {
   CReportDlg m_ReportDlg;
   CString m_strRunFileLst;
   m_strRunFileLst = m_strRunFileName; //获取被编译文件的文件名
   m_strRunFileLst += ".lst";//加上扩展名LST以便寻找并打开LST文件
   CFile file1(m_strRunFileLst,CFile::modeRead);//以读方式打开LST文件
   char* showBuf;
   DWORD Buflen;
   Buflen = file1.GetLength();
   showBuf = new char[Buflen+1];
   file1.Read(showBuf,Buflen); //读出LST文件内容
   file1.Close();//关闭LST文件
   CString m_strResult = showBuf;
   m_ReportDlg.m_strReport= "\r\n 汇编总结报告:\r\n";
   m_ReportDlg.m_strReport += m_strResult.Right(174); //截取文件最后几行的编译结果
   m_ReportDlg.m_strReport +="\r\n";
   m_ReportDlg.m_strReport +="\r\n";
   m_ReportDlg.m_strReport +="\r\n"; //加两空白行,使背景面积扩大
   m_ReportDlg.SetTitleName("Assembling Report");
   UpdateData();
   m_ReportDlg.DoModal();//弹出编译结果对话框
   delete showBuf; //释放缓存变量
  }
  
  3 结束语
  
  该文用C++实现了MASM集成汇编系统,介绍了该系统的主要功能,重点给出了启动界面、编译功能的实现方法和部分程序。该系统的应用,消除了调试汇编语言程序时切换到DOS的麻烦,使学生学习汇编语言程序设计变得轻松愉快!
  
  参考文献:
  [1] 苏建元.主动学习——想学习?会学习?不断学习[J].计算机教育,2007,(2):60-62.
  [2] 苏建元.大学计算机硬件技术课程启发式教学要点[J].计算机教育(增),2005,(12):82-83.
  [3] 苏建元.计算机学习中逻辑思维和系统思维能力的培养[J].电脑知识与技术(学术交流),2007,(2):585-586.
其他文献
摘要:阐述了DDoS攻击的原理与方法,详细介绍了DDos攻击的实现。  关键词:拒绝服务;DDoS;DDoS攻击  中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)23-881-02  随着网络技术和网络应用的发展,网络安全问题显得越来越重要。拒绝服务攻击由于具有容易实施、难以防范、难以追踪等特点而成为最难解决的网络安全问题之一,给网络社会带来了极大的危害。同时,拒绝服
期刊
摘要:该文针对目前医药供应链信息系统中各企业信息和业务难以共享的现状,提出了以SOA体系架构来实施医药供应链共享平台的方案,可以有效解决供应链过程中各企业信息和业务的共享问题。文中分析了医药供应链系统中的服务功能模块,根据功能模块讨论了系统实现模型与实现方法。  关键词:SOA;信息共享;医药供应链  中图分类号:TP335文献标识码:A文章编号:1009-3044(2008)23-852-02 
期刊
摘要:互联网方便快捷的特点使得电子文件被广泛地使用,但由于互联网的开放性,使得电子文件在传输时存在着信息安全的隐患。在简要介绍了PKI(公钥基础设施)的基本概念、基本组成及运行模式的基础上,提出了一种解决这些安全隐患的应用方案,并详细介绍其具体流程,实现了安全文件传榆的身份认证、保密性、完整性和不可否认性等要求。  关键词:PKI;数字签名;数字证书;身份认证  中图分类号:TP393文献标识码:
期刊
摘要:该文介绍了网络登陆与普通系统登陆的功能区别,提出了实现网络登陆的实现解决措施,并通过UML对网络登陆系统进行建模,保证了系统的完善性和可靠性。  关键词:网络登陆;UML;系统建模  中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)23-954-02  UML Design for Network Login System   XIA Zhong-hua, ZHA
期刊
摘要:文章探讨了VPN 及其具体实现技术——隧道技术。首先介绍了VPN的概念,接着探讨了VPN的工作原理,最后详细分析了VPN的隧道技术,特别是L2TP隧道协议。  关键词:VPN;隧道技术;L2TP  中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)23-879-02  VPN and It's Tunneling Technology Research  CHEN
期刊
摘要:该文以湖南交通职业学院的校园网为背景,从校园网内网安全威胁的特点和攻击原理入手,解析了如何利用VLAN技术保障校园网内网安全。  关键词:VLAN技术;校园网;内网安全  中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)23-913-02  How to Support Campus Net the Net Security Use VLAN Technical 
期刊
摘要:探讨了软件逆向工程的基本原理,基于OnTrac平台设计了一个针对 Python源代码的逆向分析系统,并简要介绍ReverseUML系统以及核心模块。  关键词:逆向工程;Python;UML;类图;序列图  中图分类号:TP391文献标识码:A文章编号:1009-3044(2008)23-969-02  Design of Reverse Analysis System Based on O
期刊
摘要:当前,网络信息资源呈现爆炸式增长趋势,用户对信息查询的要求也越来越高,传统的各种信息查询技术已经很难满足这种要求。未来的因特网作为人类的信息库、知识库,应该支持用户以自然语言的方式来完成信息查询,并具备理解语义,进行自动扩展、联想的智能化查询系统。该文提出一个基于Ontology的信息查询系统模型,实现支持自然语言的理解和语义层面的智能化查询功能。  关键词:本体;信息查询;自然语言理解  
期刊
摘要:分析了基于Web服务的Acegi安全框架的构架和实现原理,以Web服务中的HTTPForm为例,详细阐述了Acegi提供的认证和授权机制,并进一步探讨了Acegi安全框架的权限管理,以满足复杂的企业安全需求,从而提高了Web系统的安全性和稳定性。  关键词:Web服务;认证;授权;权限管理  中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)23-897-03  R
期刊
摘要:首先给出了SOA概念,然后分析了Web服务体系结构,最后讨论了Web服务的开发方式。  关键词:SOA;Web服务  中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)23-958-02  Research about Web Service Based on SOA  PENG Bo1,2  (1.School of Computer and Informatio
期刊