版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、16位语言程序的集成 _调试器模块的设计与实现 16位汇编语言程序的集成 _调试器模块的设计与实现 摘要:本设计主要完成了16位汇编语言程序的集成 _环境Visual Ma _的 _,改善现有的各种汇编程序 _环境并增加它们所不具有的功能。本文主要介绍了编译、调试两个功能部分,实现汇编代码的编译、链接、调试等功能,并提供友好的用户界面,为汇编语言的编译、链接、调试提供了可视化的 _环境,并详细介绍了管道管理模块、调试模块、寄存器管理模块。 关键词: 汇编 调试器 管道 重定向 Abstract: This thesis describes the design and realization
2、of debugger in Visual Ma _ integrated development enviro _ent (IDE) for 16 bits assembly programming language, it improves the current existing IDE for assembly language and add some new feature. The Visual Ma _ IDE introdu _s two core modules, piler and linker. It provides the functions of piling,
3、linking and debugging the assembly program, with a friendly user inte _ _, such as the auto _tic locating of sour _ code with errors. The system described in this thesis was designed for providing a visual integrated development enviro _ent for the piling, linking and debugging of assembly program,
4、and try to describe the detail of the pipe _nagement module, debugging module and registers _nagement module. Key words: assembly language; debugger; pipe; redirection 汇编语言是一种低级语言,它具有直接操纵硬件的能力,一直以来在底层 _应用得比较多,比如说在单片机、板卡驱动程序、系统内核等领域。由于汇编语言与具体的机器指令有关,能直接操作硬件(例如:寄存器、端口、内存),而且没有结构化的控制语句,使得汇编语言难学难懂,用汇编语言
5、来 _软件更难。传统的汇编语言 _工具一般是用一般的工具,如:记事本、Edit等文本工具来编写源文件,再在Dos下编译、连接成一个可执行文件。或者用Ma _ 6.0来 _汇编语言程序。在这两种 _方式中,程序员要负责每一行代码的编写,工作量大又容易出错。这也是每一个汇编语言初学者惧怕汇编语言的一个方面。 _以来汇编语言被认为是一门枯燥难学的语言,在入门时需要记忆大量的指令,而且往往需要对硬件的组成和运行机制有所了解,由于直接与系统底层打交道,要实现的每一部分功能都必须由程序员完全负责实现,哪怕是在高级语言里面看来是一行代码即可实现的最简单的一条语句,到了汇编语言则往往变成需要靠多行指令来完成。
6、要解决这种问题,需要一个优秀的IDE(集成 _环境)来提高使用汇编语言学习和 _软件的效率。Visual Ma _是一个集,编译( _ _),连接(link),调试(debug)于一体;具有自动初始化代码能力,并提供一些常见操作的 _包,可以自动产生常见操作的汇编语言代码;拥有智能化的环境;具有关键字高亮功能,并可标记行数,记行报错,提供的可视化的调试界面。 多线程在各种流行的操作系统中都有实现,是一种是用来实现多种操作的并发执行的机制,它是操作系统代码的运行环境中的最小执行单位,每个进程都必须至少有一个线程,多线程编程在系统编程中属于较为复杂的技术,它涉及到对线程的控制问题。在本次设计中,必
7、须运用多线程编程技术来配合管道技术实现调试模块的功能。 要达到捕获其他程序的输出(标准输出stdout、标准错误输出stderr)和向其输入(标准输入stdin)的目的,实际上就是要实现进程间的信息交换,进程之间互相交换信息的工作称之为通信IPC(Inter Pro _ss Communication)。 管道是用于进程间通信的一段共享内存,创建管道的进程称为管道服务端(Server),而连接这个管道的进程则称为管道客户端(Client)。事实上,和我们日常生活中的水管类似,管道这一术语非常形象地描绘了它在概念上的特征:通常它具有两端,用以连接两个进程;其中一个进程向管道写入数据,另外一个进程
8、则从管道中读取数据。 600) _kes _llpic(this,600,1800); src=file:/C:/DOCUME1/ADMINI1/LOCALS1/Temp/ksohtml/wps_clip_i _ge-31584.png width=555 height=63 / 由于需要引用别的程序(MA _汇编器、链接器、debug)来实现编译链接功能和调试功能,那么在通过管道来重定向他们的输入输出之前必须要先解决一个问题:那就是先让这些程序运行起来,此外为了便于控制,也必须要将它们作为程序的一个子进程来创建,只有这样才能用管道将子进程和用户的程序连接起来,并且能有效管理子进程,给用户提供
9、了在执行操作的过程中取消操作的机会。 整个系统的架构如下图所示: 600) _kes _llpic(this,600,1800); src=file:/C:/DOCUME1/ADMINI1/LOCALS1/Temp/ksohtml/wps_clip_i _ge-12045.png width=541 height=260 / Visual Ma _ _工具具有三大模块:器、编译链接、调试器。其中有很大一部分工作在底层是依靠外部程序来完成的。编译程序使用 _ _.exe,链接程序使用link.exe,调试程序使用debug.exe。这些外部程序并非特别为本系统而设计,需要对它们进行进一步的封装,
10、使它们能融入Visual Ma _ _工具。 在Windows系列操作系统下,控制台程序可使用系统提供的IO库来实现对硬件设备的流式输入/输出,程序员可向标准输出(stdout,硬件目标通常是显示器或打印机)正常输出各种数据,或通过标准输入(stdin,硬件目标通常是键盘等输入设备)接受用户输入的数据,或在程序运行出错或崩溃时通过标准错误(stderr)输出调试、警告信息等: 600) _kes _llpic(this,600,1800); src=file:/C:/DOCUME1/ADMINI1/LOCALS1/Temp/ksohtml/wps_clip_i _ge-10724.png wi
11、dth=638 height=137 / 比如,在C+中,通过stdin/stdout/stderr实现输入输出的典型代码如下: cin num; / 通过stdin输入数据 if(num = 0) cout num; / 通过stdout输出数据 else _rr 重定向I/O是借助于管道来引导数据流,运用场合通常是在一些IDE(集成 _环境)上,比如在编译调试程序时会在output窗口中显示相关的信息。 采用I/O重定向技术,可以在程序中调用其他控制台程序来执行某些工作并将执行过程和结果输出。为了使外部16位的编译、链接、调试程序能在系统中受到控制,需要使用操作系统的命令行解释器程序来启动
12、,通过把要运行的16位程序的路径作为参数传给命令行解释器才能成功重定向。 为了实现基于源代码的调试功能,需要先通过debug的u指令反汇编程序得到所有指令的内容和地址等信息,然后分析汇编代码,将源代码跟编译后的二进制汇编指令的关系对应起来,如下图所示: 600) _kes _llpic(this,600,1800); src=file:/C:/DOCUME1/ADMINI1/LOCALS1/Temp/ksohtml/wps_clip_i _ge-13173.png width=587 height=239 / 只有这样才能灵活地在任意一行源代码对应的汇编指令上设置/删除断点和对程序进行调试的各种操作(如step into、step over等)。而分析汇编代码的难度也比较大,需要分析汇编源代码里的所有标号、指令、声明等,依靠这些信息在反汇编结果中找出每一行汇编源代码对应的地址并记录起来以供使用。 这样做的目的是在实现调试的时候可使用这些信息来实现单步和断点调试
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医疗服务结核病防治管理办法
- 景观电气改造工程施工方案
- 水库加固条石堡坎施工合同
- 包头高一统考数学试卷
- 成都初二上数学试卷
- 安顺中考语文英语数学试卷
- 包头初三模拟数学试卷
- 食品加工行业生产管理
- 郑州市餐饮业停车场服务流程
- 城市减排光纤铺设合同
- 2025年中国社会科学院外国文学研究所专业技术人员招聘3人历年高频重点提升(共500题)附带答案详解
- 【9历期末】安徽省淮北市2023-2024学年九年级上学期期末历史试题
- 小红书营销师(初级)认证理论知识考试题及答案
- 2024年度物流园区运营承包合同范本3篇
- 第五单元第四节 全球发展与合作 教学实录-2024-2025学年粤人版地理七年级上册
- 贵州省部分学校2024-2025学年高三年级上册10月联考 化学试卷
- 期末综合试卷(试题)2024-2025学年人教版数学五年级上册(含答案)
- 2024-2025学年上学期武汉小学语文六年级期末模拟试卷
- 2023-2024学年贵州省贵阳外国语实验中学八年级(上)期末数学试卷(含答案)
- 《争做文明班级》课件
- 辽宁省大连市沙河口区2022-2023学年八年级上学期物理期末试卷(含答案)
评论
0/150
提交评论