




已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
微机原理与应用上机指导书机械工程与自动化学院机械制造工程系实验一 DEBUG程序的使用 验证性实验目的和要求:1熟悉windows操作系统下模拟DOS环境debug的进入和退出。2.熟练掌握常用的debug子命令,会利用这些子命令进行简单程序的调试。实验条件:1.PC机 2.DOS系统 3.debug调试程序实验内容:1 DEBUG 的调用 格式: drive: path debug d: path filename.ext example: 调入 ASM1.COM 1) debug 2) debug-N ASM1.COM-L2 退出 DEBUG -Q3 DEBUG 的子命令1) 相关的CPU 寄存器,FLAGS寄存器标志位状态,驱动器号标志码 (1)驱动器编号编号 磁盘 属性 0 A 软盘 1 B 软盘 2 C 硬盘 (2)命令中使用地址。段地址:偏移量 example: CS:0100段地址:始偏移量 末偏移量 example:CS:0100 0110段地址:始偏移量 长度 example:CS:0100 L10 (3)不调入文件时,IP 为 0100。 (4)SP 指向栈底。 (5)不调入文件时,AX、BX、CX、DX、SI、DI、BP为0。当调入文件时,文件长度装入CX,大于64K时,其长度高位装入BX,均以字节为单位。 (6)CS、DS、SS、ES位于内存空间对应段的底部,既DEBUG程序后的第一段。 (7)FLAGS寄存器标志位为 NV(无溢出)UP(方向为增) EI (中断允许) PL(符号为正) NZ (非零) NA (无辅助进位)PO(奇) NC(无进位) (8)DEBUG 子命令有 :A (汇编);U (反汇编);G(运行); T(跟踪) ;R(寄存器显示与修改);D(内存显示);E(内存修改);S(查找);F(填充);M(数据移动);C(数据比较);N(文件命名);W(存盘);L(装入);I(端口输入);O(端口输出);H(十六进制运算);Q(退出)。格式: R寄存器名功能:显示或修改CPU寄存器的内容,包括: AX BX CX DX ;CS DS SS ES ;SP SI BP DI IP FLAGS FLAGS 符号表 标志位名 置位(1) 复位(0) OF OV NV DF DN UP IF EI DI SF NG PL ZF ZR NZ AF AC NA PF PE PO CF CY NCExample:-R ;立即显示各寄存器的内容 -R BX;显示并修改BX的内容 BX 0000 :0100 -RF OV DN EI NG ZR AC PE CY- PONZ格式:A起始地址功能:从始地址汇编并把指令变成机器码;不指定始地址,默认为当前的CS:连续地址。 Example:-A 0100格式:U始地址 或U地址范围功能:将始地址起或地址范围的机器码反汇编显示出来。Example:-U 100 -U 100 108格式:G=始地址断点地址功能:从始地址运行程序,遇断点停。Example:-G=100 10d -G=100格式:T=始地址跟踪条数功能:从始地址运行一条或数条指令。Example:-T =100 -T -T=100 03 格式:D始地址或D地址范围功能:显示内存十六进制数。Example: -D(DS) -D 100 -D 100 120格式:E始地址数据表功能:将用数据表的内容修改始地址连续的内存单元的内容;没给出数据表,在命令执行后逐个修改,结束按回车-往后修改按空格键;往前修改按-号键;空格和-号键为单元间隔。Example:-E 0104 41 24 34(DS) -E 0104 0100:0104 41 67格式:S 地址范围 数据表功能:查找指定范围的数据表,找到显示地址,找不到返回提示符。Example:-S 100 0128 CD 20格式:F 地址范围 数据表功能:将地址范围的数据用数据表的内容填充,如果地址表范围大于数据表个数,将从重复使用数据表。Example:-F 6C02:0100 6C02:0104 12 23 34 45格式:M 源地址范围 目的始地址功能:将源地址范围的内容装入到目的地址。Example:M 6C02:0100 6C02:0200 7F38:0100格式:C 源地址范围 目的地址功能:将源地址范围的内容依次与目的地址的内容相比较,不同时显示: 源地址 源数据 目的数据 目的地址 格式:N d:pfilename.ext 功能:(当调入文件或写文件到盘时)给文件命名。格式:W 始地址 或 W 始地址 驱动器号 始扇区 扇区数功能:将从始地址开始,BX和CX 记录的字节长度写入到N命名的磁盘文件中。 或将始地址开始的内容,写入驱动器号标识磁盘的始扇区标定的扇数内容。格式:L始地址 或 L 始地址 驱动器号 始扇区 扇区数功能:将N命名的文件调入内存,文件长度存于CX 和BX中;或从标识盘中始扇区,标定扇区数装入到内存始地址中。格式:I 端口地址功能:从端口地址读入一字节数据并显示。地址0FFH;DX从0FFFFH。格式:O 端口地址 字节值功能:将指定端口的字节传送到输出端口。可以按CTRL-BREAK终止命令的执行。若命令产生相当多的输出行,为在屏幕上看清楚,可以按CTRL-NUM LOCK 键暂停,按任一键继续。 实验二 汇编语言程序设计实验目的和要求:1熟悉在DOS操作系统下使用较普遍的汇编程序MASM.EXE。2.练习在DOS操作系统下使用较普遍的连接程序LINK.EXE。3.学习汇编程序的使用,调试程序。实验要求:1.掌握DOS操作系统下的汇编程序MASM.EXE和连接程序LINK.EXE。2.加深对汇编程序的理解和认识。实验条件:1.PC机 2.DOS系统 3.汇编语言工作环境实验内容:一、 汇编程序 在DOS系统下使用得较普遍的汇编程序是MAXM.exe。1. 汇编程序的主要工具 (1)地址计数器在每一段开始(由 SEGMENT 伪操作标识), 地址计数器被初始化为0,每处理一条指令,包括助记符指令、数据定义以及存储器分配等伪操作,地址计数器就增加一个值,此值为该指令所需的字节数。在汇编过程中,地址计数器的内容就是当前正在被汇编的指令的偏移地址。(2)符号表记录用户所定义的符号极其属性。(3)机器指令表给出助记符表示的指令与机器指令的对应关系。(4)伪操作表给出所有伪操作及相关信息。2汇编程序的主要功能(1) 检查汇编语言源程序,若程序中有不符汇编程序要求的语句,给出错误信息;(2) 利用地址计数器确定被汇编的每条指令的偏移地址;(3) 确定各符号的偏移地址,建立符号表;(4) 利用符号表、机器指令表和伪操作表把助记符指令翻译成机器语言指令,此时变量和符号均为浮动地址,段地址尚不定,假如指令的操作数涉及到变量或标号,则指令中的地址为浮动值;(5) 产生源程序的目标代码文件,供连接程序用。(6) 产生列表文件,给出源程序指令相对应的地址计数器的值和符号表,对于有浮动地址的指令在其二进制指令后以R标识。3汇编程序的使用将DOS下所有相关路径设好,使用汇编程序的完整格式为:MASM /optionSource(.asm),Object(.obj),Listing(.lst),Crossref(.crf);命令MASM后跟若干参数,这些参数需用空格或逗号等分隔符分开。放在 中的参数是可选参数,表示可以不紧跟在命令MASM后输入,可在命令执行后,按给出的提示输入;也可不输入,而使用命令的缺省值作为参数。放在()中的扩展名为缺省时的默认值。/option命令的动作选项,由符号“/”引导。利用命令MASM/HELP可查看所有动作选项及其说明。Source(.asm) 指定汇编源程序的文件名,缺省的扩展名为 .asm。Object(.obj) 指定目标文件名,缺省的目标文件名与源程序名相同,缺省的扩展名为 .obj。Listing(.lst) 指定列表文件名,缺省的扩展名为 .lst。缺省情况是不生成列表文件。Crossref(.crf) 指定交叉参考文件名,缺省的扩展名为 .crf。缺省情况是不生成交叉参考文件。命令可用分号结束,表示其后各项参数按缺省值处理。命令中除源程序参数Source(.asm)必须输入外,其它参数均设有缺省值,可不用输入。下面通过实例来介绍汇编程序的使用。test.asm 是一个带有两处语法错误的汇编语言程序源文件,其内容如下:data segmentbuffer db Hello World !, $, ;手误一:在$后多输了一个逗号data endscode segment assume cs:code,ds:datastart: mov ax ,data mov ds ,ax lea dx ,bufer ;手误一:将buffer误输出为bufer mov ah ,09H int 21H mov ah ,4cH int 21Hcode ends end start如注释所表明,程序中有两处语法错误,但检查时未发现,我们来看汇编程序会给出什么样的提示。汇编方法一:D:MASM (命令尚未输入任何参数)Microsoft (R) Macro Assembler Version 5.10 (显示masm.exe的版本信息)Copyright (C) Microsoft Corp 1981,1988. All rights reserved.Source filename .ASM:TEST (输入源文件名,缺省扩展名为.asm)Object filename test.obj: (直接回车, 为缺省的目标文件名)Source listing NUL.LST: (直接回车,不生成列表文件)Cross-reference NUL.CRF: (直接回车,不生成交叉参考文件)test.ASM(2):warning A4101:Missing data ;zero assumed (指出错误1在第2行及其错误原因)test.ASM(10):error A2009:Symbol not defined :BUFER (指出错误2在第10行及其错误原因) 49924+421225 Bytes symbol space free 1 Warning Errors (显示警告性错误总数) 2 Severe Errors (显示严重性错误总数)汇编提示我们,程序中有两处错误,并给出错误所在行号及错误原因。由于有严重性错误,汇编后未生成目标文件。可根据提示,在编辑器下修改程序的语法错误。方法一的输入较多,使汇编速度受到影响。采用下面介绍的方法二,可获得与方法一同样的结果,即按缺省文件名生成目标文件,不生成列表文件及和交叉参考文件。假设已在编辑器下将 TEST.asm的两处语法错误改正。汇编方法二:D:MASM TEST ; (命令中用分号缺省后面的输入)Microsoft (R) Macro Assembler Version 5.10 Copyright (C) Microsoft Corp 1981,1988. All rights reserved. 49928+421221 Bytes symbol space free 0 Warning Errors 0 Severe Errors 汇编后未有错误提示,表明汇编已成功,生成目标文件TEST.obj 。若要形成列表文件,必须在汇编中输入列表文件名,否则将不生成该文件。D:MASM (命令尚未输入任何参数)Microsoft (R) Macro Assembler Version 5.10 Copyright (C) Microsoft Corp 1981,1988. All rights reserved.Source filename .ASM:TEST Object filename test.obj: Source listing NUL.LST: TEST (输入列表文件名,缺省扩展名为 .lst)Cross-reference NUL.CRF: 47868+421247 Bytes symbol space free 0 Warning Errors 0 Severe Errors 列表文件是一个文本文件,可用任何一个文本编辑器查看。汇编程序中,至少要有一条 END 语句,否则即使程序中有很多错误,汇编也只给出无END语句错误信息,且显示警告性错误总数,严重性错误总数均为0,用户不要被此值误导。例 将带有两处错误的源程序 test.asm 的最后一条语句 end start 去掉,对test.asm 进行汇编得如下结果。D:MASM TEST ; Microsoft (R) Macro Assembler Version 5.10 Copyright (C) Microsoft Corp 1981,1988. All rights reserved. End of file encountered on input file 无END 语句错误信息End of file encountered on input file 49968+421181 Bytes symbol space free 0 Warning Errors 0 Severe Errors 二、连接程序在DOS系统下使用得较普遍的连接程序是LINK.exe。1. 连接程序的主要功能(1)找到要连接的所有目标模块,并确定各目标模块的相对段值;(2)确定各目标模块中的浮动地址及外部符号地址;(3)产生可再定位的装入模块,即可执行文件(后缀名为.exe);(4)产生映像文件(后缀名为.map)2. 连接程序的使用 将DOS下所有相关路径设好,使用汇编程序的完整格式为:LINK /optionObject(.obj),Runfile(.exe),Mapfile(.map),Library(.lib);命令LINK后跟若干参数,这些参数需用空格或逗号等分隔符分开。放在 中的参数是可选参数,表示可以不紧跟在命令LINK后输入,可在命令执行后,按给出的提示输入;也可不输入,而使用命令的缺省值作为参数。放在()中的扩展名为缺省时的默认值。/option命令的动作选项,由符号“/”引导。利用命令LINK /HELP可查看所有动作选项及其说明。Object(.obj) 指定目标文件名,缺省的扩展名为 .obj,多个目标文件之间用加号“+”分隔。Runfile(.exe)指定可执行文件名,缺省的文件名与第一个目标文件名相同,缺省的扩展名为 .exe。Mapfile(.map) 指定映像文件名,缺省的扩展名为 . map。缺省情况是不生成映像文件。Library(.lib)指定库文件名,缺省的扩展名为 .lib。多个库文件之间用加号“+”分隔。缺省情况是不使用库文件。命令可用分号结束,表示其后各项参数按缺省值处理。命令中除目标文件参数Object(.obj)必须输入外,其它参数均设有缺省值,可不用输入。下面通过实例来介绍连接程序的使用。将TEST.obj文件连接成可执行文件。连接方法一:D:LINK (命令尚未输入任何参数)Microsoft (R) Overlay Linker Version 3.61 (显示link.exe的版本信息)Copyright (C) Microsoft Corp 1983-1987. All rights reserved.Object Modules .OBJ:TEST (输入目标文件名,缺省扩展名为.obj)Run File TEST.EXE: (直接回车, 为缺省的可执行文件名)List FileNUL.MAP: (直接回车,不生成映像文件)Libraries.LIB: (直接回车,不使用库文件)LINK:warning L4021: no stack segment (显示警告性错误)连接程序指出程序中无堆栈段,这是一个,该错误不影响可执行文件的生成。由于无严重性错误,连接成功,生成可执行文件。对于初学者,在程序中可以不设置堆栈段,使用的是系统分配的堆栈。方法一的输入较多,使连接速度受到影响。采用下面介绍的方法二,可获得与方法一同样的结果,即按缺省文件名生成可执行文件,不生成映像文件和不使用库文件。连接方法二:D: LINK TEST ; (命令中用分号缺省后面的输入)Microsoft (R) Overlay Linker Version 3.61Copyright (C) Microsoft Corp 1983-1987. All rights reserved.LINK:warning L4021: no stack segment若要形成映像文件,必须在汇编中输入映像文件名,否则将不生成该文件。D: LINK (命令尚未输入任何参数)Microsoft (R) Overlay Linker Version 3.61 Copyright (C) Microsoft Corp 1983-1987. All rights reserved.Object Modules .OBJ:TEST Run File TEST.EXE: List FileNUL.MAP: TEST (输入映像文件名,缺省扩展名为 .map)Libraries.LIB: LINK:warning L4021: no stack segment映像文件是一个文本文件,可用任何一个文本编辑器查看。映像文件中给出模块中每个段的其始地址,结束地址和长度,并给出程序入口地址,这些值都是相对值,只有加上可执行文件装入内存后的入口地址绝对值与映像文件给出的入口地址之差才是各段在内存中的绝对值。用DEBUG调用可执行文件后用R命令查看CS:IP的值,即是程序入口地址的绝对值。若要在程序中定义一个堆栈段,必须将该段的组合类型设为STACK类型,否则连接时仍给出无堆栈段的警告性错误。在TEST.asm源文件中增加如下的段定义:s_seg segment papa stack (定义该组合类型为stack) dw 100 dup (?)s_seg ends重新汇编TEST.asm源文件,并进行连接,无堆栈段的警告性错误信息消失。三、 DOS的装入和返回功能连接后产生的 .exe文件是一个可执行文件,存储在磁盘上,要执行该程序,必须将其装入内存,并控制CPU的CS:IP指向程序的入口地址,CPU才开始执行程序。执行完程序后,还需利用DOS的返回功能结束程序的执行,返回命令接受状态。1 装入功能在DOS的提示符后输入可执行文件的文件名,按回车键,DOS系统即调用装入功能(又称EXEC系统功能),完成以下操作:(1) 确定内存可用部分,以便存放要执行的 .exe文件。(2) 在可用内存的起点建立执行程序的程序段前缀PSP(program segment prefix), 程序段前缀的大小为100H,即256个字节,需要注意的是程
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025黑龙江大庆市肇源县公益性岗位招聘预模拟试卷及答案详解(夺冠系列)
- 2025北京首都师范大学附属育新学校招聘12人模拟试卷及一套答案详解
- 2025年甘肃省中共嘉峪关市委党校(市行政学院)招聘公益性岗位人员模拟试卷附答案详解(模拟题)
- 2025黑龙江齐齐哈尔市建华区中华街道公益性岗位招聘1人考前自测高频考点模拟试题及一套答案详解
- 沧州市中医院高血压脑出血微创手术考核
- 2025黑龙江鹤岗市工农区酒行招聘模拟试卷附答案详解(突破训练)
- 衡水市中医院甲状腺再次手术技术准入考核
- 2025广东揭阳市惠来县校园现场招聘教师70人(编制)模拟试卷及答案详解(夺冠系列)
- 2025北京市房山区韩村河镇社区卫生服务中心招聘1人模拟试卷(含答案详解)
- 邯郸市人民医院消化科造口治疗师资格认证考试题库
- 2025年北森潜力测评试题及答案
- 2025银行招聘试题及答案详解
- 2025年成人高考高升专试题(含答案)
- 2025贵州册亨县招聘教师25人考试参考试题及答案解析
- 河南成人2024学位英语考试真题及答案
- 2025年淮南市大通区和寿县经开区公开招聘社区“两委”后备干部30名考试参考试题及答案解析
- 长期照护师培训考核试卷及答案
- 医保病历审核课件
- 煤矿安全规程2025版解读
- 2025年秋季开学典礼诗歌朗诵稿:纪念抗战胜利八十周年
- 军人识图用图课件
评论
0/150
提交评论