




已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
汇编语言上机操作一、 建立子文件夹如:D:hbmasm二、复制相关文件把masm.exe、link.exe、ml.exe三个文件复制到上述文件夹中。三、进入DOS方式开始/运行/cmd当前提示符可能是:C:documents and settingsadministrator四、常用DOS操作命令1、改变当前盘输入d: 并回车,屏幕显示:D:2、改变当前目录1)进入下一级目录D:cd hb 回车后,屏幕显示:D:hbcd masm 回车后,屏幕显示:E:hbmasm问题:可以一次进入下面二级或多级目录吗?2)返回上一级目录D:hbmasmcd. 回车后,屏幕显示:D:hbcd. 回车后,屏幕显示:D: 问题:可以直接返回根目录吗?D:hbmasmcd 回车后,屏幕显示:D:3、显示当前目录内容D:dir /p 分页显示当前目录内容问题:如何显示d:text中的内容?D:dir d:text4、DOS方式下如何运行程序?DOS方式下的可执行文件(即程序文件)扩展名为.exe或.com,运行时只需要在系统提示符下输入文件主名即可。例如,有一个文件名为test.exe,存入在D:hbmasm中,运行时,可以这样做:D:hbmasmtest五、汇编语言上机过程1、编辑源程序运行:edit 回车后,进入EDIT环境,输入完后存盘(file/save)并退出(file/exit)。2、汇编D:hbmasmmasm add5.asm生成目标程序文件add5.obj。(如果有语法错误,会提示错误所在行号和错误类型)3、连接D:hbmasmlink add5生成可执行文件add5.exe。六、DEBUG程序调用及汇编语言程序调试方法 调试程序DEBUG是DOS支持的又一种系统软件,主要用于汇编语言程序的调试。汇编和连接过程只能查出源程序的语法错误,不能查出功能上的错误和程序不完善的地方。DEBUG程序为用户提供多种命令,大致有:显示和修改寄存器和存贮单元的内容;执行程序中任意一段或一条指令;汇编单条源语句和反汇编机器码指令;查找字符代码;端口的输入和输出;文件装入内存和写入磁盘等。用户利用这些命令可以查出任何程序功能上的错误。下面说明DEBUG程序的启动方法和主要命令意义。(一)DEBUG程序的启动 DEBUG程序有两种启动方法。DEBUG程序是在DOS盘上的一个独立的可执行程序(扩展名为COM),所以,DEBUG程序的第一种启动方法就是把它看作和一般的可执行程序一样,只要打入DEBUG和回车键,就可以把它装入内存。但是这样启动只把DEBUG程序本身装入内存并进入等待DEBUG命令状态,还没有把要调试的程序装入内存。第二种启动DEBUG的程序的方法是一次相继装入DEBUG程序和要调试的程序。打入的命令格式如下: DEBUGd:pathfilename.extparmlparm2 其中的Filename是要调试程序的文件名,可选项d:path和ext分别是要调试程序的所在盘符、路径和扩展名。可选项parml和parm2是DEBUG程序为要调试程序准备的参数(一般不用)。 例 进入DEBUG程序并装入要调试程序。其操作如下: D:hbmasmDEBUG add5.exe (进入DEBUG,并装配add5exe)此时屏幕上出现一个短线,这表示可以使用DEBUG命令了。如果启动DEBUG时没有指定要调试的文件名,则需要用N命令指定要调试的文件,再用L命令将其装入内存。操作如下:D:hbmasmdebug- nadd5.exe- l(二)DEBUG命令在说明每个命令之前,先说明一些共同信息: DEBUG命令都是以一个英文字母开头,后面跟一个或多个参数。 命令字母和参数可用大写或小写或混合形式。 命令字母和参数中,相邻两个十六进制之间必须用逗号或空格分开其它各部分之间有无空格或逗号都可以。 执行任何命令期间都可用Ctrl+Break键方法结束命令的执行。 打入命令字母和参数后必须打入回车键才能使命令有效。 如果执行某种命令期间在显示器或打印机上的很长的输出,可以按Ctrl+Numlock键暂停继续显示,使显示屏幕停下来供观察。再按任何其它键,则继续显示输出。 在DEBUG程序状态下,控制键和DOS支持的编辑键继续有效。 如果输入的命令有错误,将显示出来。例如: dcs:100cs:110 error 这说明d命令的第二个address参数格式不对,它只能包括偏移地址部分,不能再有段地址部分。它发现S不是十六进制数字符。 DEBUG程序状态光标提示符为“-”。 下面按命令功能相近关系分组说明几个主要命令功能和使用的方法。一)显示和修改寄存器或存贮单元的有关命令1. R(Register)命令R命令有三种功能:l 显示单个寄存器内容并等待修改这个寄存器内容;l 显示CPU内部的所有寄存器的内容和全部标志位的状态;l 显示和修改所有标志位的状态。 显示和修改单个寄存器内容命令命令格式:R 寄存器名说明:显示单个寄存器内容。R之后输入寄存器名。例如命令 - RAX将显示出AX的内容和在下一行显示出冒号。AX F1E4:- 上面的F1E4是AX的当前内容。如果在冒号后打入要修改的内容,然后打回车键,这时AX即修改为新值;如果不输入新值只打回车键,则不改变原值。 显示CPU内部的所有寄存器的内容和全部标志位的状态命令命令格式:R说明:显示所有寄存器和标志位值。例如:-R系统响应给出格式如(值是假设的):AX=0E00 BX00FF CX=0007 DX=01FF SP0390 BP0000 SI0050 DI=0000 DS04BA ES04BA SS04BA CS=04BA IP011A NV UP DI NG NZ AC PE NC04BA:011A CD21 1NT 21前几行显示的是寄存器内容和8个状态标志位的状态,最后一行显示是下面将要执行的指令地址,它对应的机器码和汇编语句形式。8位状态标志位的状态不是以0或1的形式显示的,而是用两个字母显示的。字母和状态对应关系如表所示: 标志位名 置位 复位 OF(溢出标志) OV NV DF(方向标志) DN UP IF(中断标志) EI DI SF(符号标志) NG PL ZF(零标志) ZR NZ AF(辅助进位) AC NA PF(奇偶标志) PE PO CF(进位标志) CY NC 显示和修改标志位状态的命令命令格式: RF系统响应是显示8个状态位。例如: OV DN EI NG ZR AC PE CY_(最后为光标位置)如果打入回车键,将不改变标志位的状态;也可以打入一个或多个新的状态符,重新设置其状态。输入时各标志的次序无关,输入的各个标志之间可以没有空格。如从光标位置开始打入:PONZDINV将改变第一、三、五、七个状态位的值。2D(Dump)命令用途:显示某个存储区的内容。格式:Daddress或Drange 存储单元的内容用两种方式显示:一种是每一个存储单元的内容(每一字节)用两位16进制数显示;另一种是用相应的ASCII字符显示,句号(.)表示不可显示的字符。l 如果取命令格式:D后面无地址或范围参数,将从前次命令显示后的下一个单元开始显示40H字节或80H字节的内容。l 如果取命令格式:D range 则显示指定地址范围各单元的内容。3E(Enter)命令 用途:显示和修改存贮单元的内容。 格式1:E address list 将内容表包括的数值和字符串的ASCII码依次置入从指定地址开始的存贮单元。例如: E DS:100 F3“XYZ”8D 从内存单元DS:100H至DS:104H的5个单元中依次置入F3H(1个单元),XYZ的ASCII码(3个单元)和8DH(1个单元)。格式2:E address显示指定地址单元的内容,并等待输入新的值。 输入新的值过程如下: 输入一个字节的十六进制数,以替换原单元中的内容,然后采取下列三种操作的一种。 (1)按空格键,则上一个替换要求完成,且显示出下一个单元的地址和原有的内容。如果想改变它,可直接输入要修改的值,再按空格键,这样,就可以连续地进行修改。若某一单元的内容不需要修改,可直接按空格键。(2)按“-”号键,将在下一行显示前一单元的地址和内容。如果想改变它,可直接输入要修改的值,然后再按“-”,则又显示前一单元的地址和内容,这样就可连续地进行反向修改。若所示的前一单元的内容不需要修改,可直接按“-”键。 (3) 按回车键将结束E命令。 命令参数中地址如果不指明段地址,则默认段地址为DS。4F(FilL)命令 用途:在指定的存贮地址范围内置入内容表给出的数值或字符代码。 格式:F range list 说明:如果list包含的字节少于range包括的单元数,则把list的字节重复置入指定的地址区,直到指定的范围都置入新值为止。如果list包含的字节数多于range包括的单元数,则多出的字节被忽略。 如果range参数中不指明段地址,则默认段地址为DS。例如: F4BA:100L5 F3XYZ8D则从04BA:100至04BA:104的5个单元依次装入F3 58 59 5A 8D。二)汇编与反汇编命令1. A(Assemed) 命令用途:先显示汇编的内存地址,等待用户输入一条助记符指令。用户输入指令并按回车后,DEBUG将把这条指令对应的机器码顺序存放在指定的内存单元中,并提示下一地址,等待用户继续输入下一条指令。若直接按回车,则退出A命令;若在输入指令时语句有错误,则显示出错信息,仍然提示当前的汇编地址,用户可重新输入指令。格式:A address说明:若没有指定地址,则从“CS:100”单元开始存放。2.U(Unassemed)命令 用途:对于存贮器内的指令机器码进行反汇编,结果显示的语句和源程序语句会大部分相同,由于不能反汇编出标号、标识符等信息,所以与源程序语句有些差别。但在调试程序时,这个命令常常用于对照机器码指令与源程序是否一致。 格式:Uaddress或Urange 说明:反汇编过程产生的输出包括指令的开始地址,指令的机器码和指令的源语句。 例:-U:从当前地址开始反汇编 也可以从某个地址处开始反汇编 例:-U 200:从CS:200处开始反汇编三)运行命令1G(Go)命令 用途:执行正在调试的程序。 格式:G=addressaddressaddress 说明:等号及第一个address参数指明程序执行的起点。后面的一个或多个address参数是设定的断点。这个命令可取以下三种格式: (1)G不打入任何参数。这时从当前指令,即从CS:IP指定的地址开始执行,并一直执行下去。 (2)G=address打入等号和程序执行的起始地址。程序开始执行后一直执行下去。 (3)Gaddressaddressaddress。这种格式意味着起始地址可取(1)或(2)的规定,可设一个或多个断点地址。DEBUG程序中允许最多可设置10个断点,这些断点地址的次序是任意的。所谓断点是指程序执行到这个地址时立即停止,并显示CPU内部所有寄存器的内容以及全部标志位的状态和一条将执行的指令。主程序有两个或多个分支时,可以在每个分支上设置一个断点。这样可以观察每个分支执行的情况。为此可以在G命令中设置多个断点。当然在一次运行时,只能停在其中的一个断点上。程序员心中确定了断点地址后,就可以用G命令来设置断点。比如,想把断点设置在0120H处,则打人命令: _G0120此时,程序在0120H处停下,并显示出所有寄存器以及各标志位的当前值,在最后一行还给出下一条将要执行的指令地址、机器语言和汇编语言。程序员可以从显示的寄存器的内容来了解程序运行是否正确。2T(Trace)命令 用途:执行一条或多条指令,每执行一条指令将显示所有寄存器的内容和状态标志位的状态。格式:T addressValue说明:等号及address参数指明执行的开始地址,Value参数指明执行指令的条数。例如:T3:从当前地址往下执行三条指令2. P(Process)命令用途:执行子程序调用,或一个循环指令,或一个中断指令,或一个重复字符串指令,在下一个指令时停止
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 陶瓷工艺品的室内景观设计创新趋势考核试卷
- 核电施工项目质量管理小组活动效果考核试卷
- 腹式呼吸护理技术规范
- Vela呼吸机使用操作教学
- 脓毒症急救与护理
- Kibdelin-A-生命科学试剂-MCE
- 超神数学-高考数学总复习基础篇(一轮)(练习册)专题04基本不等式(含答案或解析)
- 新能源二手车市场2025年评估体系构建与流通模式创新趋势报告
- 面向2025年的汽车行业供应链风险管理技术创新与韧性提升报告
- 2025年教育培训行业品牌建设与品牌影响力提升策略研究报告
- 腹腔穿刺术教学课件
- 岳母大人追悼词
- 部编版一年级下册语文全册总复习课件(超全)
- JJF 1033-2016 《计量标准考核规范》宣贯资料
- 企业通讯员新闻写作培训
- 《W公司销售员工培训问题与对策研究(论文)》
- 长输管道工程施工组织设计
- 最新2022年监理工程旁站及平行检验项目列表
- 第五单元 曲苑寻珍 丑末寅初 课件(共16张PPT)
- T_CSMPTE 11-2021 电视节目图像质量主观评价方法
- 公司工程项目变更索赔组织机构及工作职责
评论
0/150
提交评论