欢迎来到优知文库! | 帮助中心 分享价值,成长自我!
优知文库
全部分类
  • 幼儿/小学教育>
  • 中学教育>
  • 高等教育>
  • 研究生考试>
  • 外语学习>
  • 资格/认证考试>
  • 论文>
  • IT计算机>
  • 法律/法学>
  • 建筑/环境>
  • 通信/电子>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 优知文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    实验一 8086汇编语言上机调试.docx

    • 资源ID:885742       资源大小:197.98KB        全文页数:15页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: QQ登录
    二维码
    扫码关注公众号登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,如果您不填写信息,系统将为您自动创建临时账号,适用于临时下载。
    如果您填写信息,用户名和密码都是您填写的【邮箱或者手机号】(系统自动生成),方便查询和重复下载。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    实验一 8086汇编语言上机调试.docx

    1汇编语言程序的上机过程在计算机上运行汇编语言程序的步骤是:1 .用编辑程序建立ASM源文件;2 .用MASM程序把ASM文件转汇编成OBJ文件;3 .用LlNK程序把OBJ文件转连接成EXE文件;编辑程序说明:O 操作使用的工具 O操作得到的文件4 .用DoS命令直接键入文件名就可执行该程序。EDLINEWPSWORDEDIT图1汇编语言程序的建立及汇编过程1 .检查源程序;2 .测出源程序中的语法错误,并给出出错信息;3 .产生目标文件(.OBJ),并可给出列表文件(同时列出汇编语言源程序和机器语言目标程序的文件,称之为.LST文件)和交叉索引文件(列出程序中使用的符号、变量和标号以及引用情况,称之为.CRF文件)。4 .展开宏指令。为运行汇编语言程序至少要在磁盘上提供以下文件:1.2汇编语言源程序上机过程3.4.5.链接产生EXE文件程序的调试和执行生成EXE或COM文件2汇编语言程序格式存储器的物理地址由段基址和偏移地址组合而成,任何一个逻辑段,无论是代码段,数据段,堆栈段,附加段都必须进行段定义,以便连接程序把不同段和模块连接成一个可执行程序。此外,还必须明确段和段寄存器之间的关系,这可使用段分配语句来完成。1、段定义语句4个逻辑段不一定全部要定义,通常代码段和数据段是必须的,附加段可以省略。但当代码段中使用了串指令,必须设置附加段作目标串基址用,附加段也可用来存放数据,增大数据段容量。一般程序结构:(1)代码段:存放程序执行的指令(2)数据段:存放程序所需的数据(3)堆栈段:存放程序执行的临时信息数据段定义格式:DATASEGMENT;数据段RESULT_1DB1RESULT_2DB1RESULT3DB1DATAENDS附加段的定义:EXTRASEGMENTDEST_BUFFERDB50DUP('?')EXTRAENDS堆栈段的定义:STACKSEGMENTSTACK;堆栈段STADB64DUP(O)STACK_TOPDB0STACKENDS2、段分配语句在8086/8088系统中存储器采用分段结构,各段容量W64K字节,用户可以设置多个逻辑段,但只允许4个逻辑段同时有效,段分配语句用来完成将逻辑段分别定义成代码段、数据段、堆栈段和附加段。由于ASSlJME伪指令只指定某个段分配给哪个段寄存器,并将代码段的段基址自动装入CS寄存器中,而不能自动把其它段基址装入相应的段寄存器中,所以在代码段的开始要有一段初始化程序完成这一工作。对堆栈段来说除了将段基址送入SS寄存器外,还要将栈顶偏移地址置入堆栈指示器SP中。ASSUMECS:段名,DS:段名,ES:段名,SS:段名(一)、DoS下的汇编调试:步骤1汇编调试所需的文件已拷贝在D:MASM子目录下,它们是:(1) 用文本编辑软件UllraEdit、WiND(WS中的记事本或其它的文本编辑器输入汇编语言程序,注意在最后一行的END输入完后要按一次回车键,保存的源文件的扩展各一定要是ASM如(2) MASM.EXE宏汇编工具,把ASM源文件生成OBJ目标文件,(3) 1.INK.EXE链接工具,把OBJ文件生成EXE文件(4) DEBUG.COM调试工具,可对程序进行调试,跟踪2、进入WindowsXP的命令行方式(在运行程序栏中输入command/cmd并按回车键)或WindowsME和Windows98的MS-DOS方式(在开始程序一附件MS-DOS方式)OMicrosoftWindowsXPI:版本5.1.2600<C>版权所有1985-20lMicrosoftCorp.C:DocunentsandSettingsAdninist*ator>d:D:>cdnasnD:nasm>dir驱动器D中的卷没有标签。卷的序列号是C4C1-3D4ED:masn的目录2009-10-0?2009-10-072008-09-102008-09-102008-09-104 4 9 9 9110 0 028<DIR>.28<DIR>.5820,634debug.e×e5964,982LINK.EXE59103,175MASM.EXE3个文件188,791字节2个目录45,968,453,632可用字节D:uasm>13、在DOS提示符下进行汇编、连接、动态调试等操作。例如:对源文件EXAMPLE.ASM进行的操作D:MASMMASMEXAMPLE;D:MASMLINKEXAMPLE;D:MASMDEBUGEXAMPLE.EXE汇编源程序操作连接并生成扩展名为.EXE的可执行文件对可执行文件进行调试3、要求掌握的调试命令(在DEBUG中使用的命令)a: U-反汇编命令用法:-U代码段地址:起始偏移地址如:-UCSilOOb: D-显示内存中的数据命令用法:-D数据段地址:存放数据的偏移地址如:-DDS:0020c: T-单步执行程序命令用法:-T要执行的指令条数如:-T3d: G-连续执行程序命令用法:-G=代码段地址:指令的起始偏移地址指令的结束偏移地址如:-G=CSilOO106注意:结束地址一定要是操作码的所在地址e:R-查看和修改寄存器数据命令用法:-R回车如:-RAXf:F-对内存单元填充数据命令用法:-F数据段地址:偏移首地址偏移未地址填入的数据如:-FDS:100120ffg:Q-退出“DEBUG”应用程序命令4、应用例子及操作步骤将AX中的十六进制数拆为三个BCD码,并存入Result,Result_2,Result_3的叁个单元中。DATASEGMENT数据段RESULT1DB1RESULT_2DB1RESULT_3DB1DATAENDSSTACKSEGMENTSTACK9堆栈段STADB64DUP(O)STACK_T0PDB0STACKENDSCODESEGMENT9代码段ASSUMECS:CODE,DS:DATA,ES:DATA,SSrSTACKSTART:;程序开头必须要有的五条指令MOVAX,DATAMOVDS,AX设置数据段MOVAX,STACKMOVSS,AX设置堆栈段LEASP,STACK_T0P;设置栈顶指针;程序的中间部分MOVAX,587MOVCL,100DIVCLMOVRESULT_1,AL;除以100,得百位数MOVAL,AHMOVAH,0MOVCL,10DIVCLMOVRESULT_2,AL;余数除以10,得十位数MOVRESULT_3,AH;余数为个位数:程序结束必须要有的两条指令MOVAX,4C00HINT21H,CODEENDSENDSTART9最后一行要按回车键、对源程序进行汇编产生OBJ文件DMASM>MASMEXAMPLE;MicCopyright(C)MicrosoftCorp1981-1985,1987.Allrightsreserved.51514+408822Bytessymbolspacefree0WarningErrors0SevereErrors、对目标文件进行连接产生EXE文件D:MASM>LINKEXAMPLE;Microsoft(Copyright(C)MicrosoftCorp1983,1984,1985.Allrightsreserved.、对可执行文件进行调试D:MASM>DEBUGEXAMPLE.EXE-UCS:0000用反汇编命令”U代码段地址:起始偏移地址“显示出程序的表示符-U02C160D:0000B80716MOVAX,1607;程序的起始地址是160DH:OoOoH160D:00038ED8MOVDS,AX160D:0005B80816MOVAX,1608160D:00088ED0MOVSS,AX160D:000A8D264100LEASP,0041160D:000EB84B02MOVAX,024B160D:0011B164MOVCL,64160D:0013F6F1DIVCL160D:0015A20000MOV0000,AL160D:00188AC4MOVAL,AH160D:001AB400MOVAH,00160D:001CBlOAMOVCL,OA160D:001EF6F1DTVCL160D:0020A20100MOV0001,AL160D:002388260200MOV0002,AH160D:0027B8004CMOVAX,4C00;程序的结束地址是160DH:0027H160D:002ACD21INT21160D:002C9ESAHF执行程序前观察内存中的数据-DDS100OO;用显示内存中的数据命令命令”示内存中的数据-DDS:O3015F7:0000CD2000AO009AFOFE-IDFO3C15F7r00105DOF04035DOF4COF-OIOl01D数据段地址:存放数据的偏移地址“显035DOF7703<.w.OOO2FFFFFF1.1.115F7:0020FFFFFFFFFFFFFFFF-FFFFFFFFE6154C01L.-G=CS100OO0027;连续执行程序命令代码段地址:指令的起始偏移地址指令的结束偏移地址X=0708BX=OOOOCX=OOOADX=OOOOSP=0041BP=OOOOSI=OOOODI=OOOODS=I607ES=I5F7SS=1608CS=160DIP=0027NVUPEIPLNZNAPONC160D:0027B8004CMOVAX,4C00执行程序后观察内存中的数据(结果)- DDS100OO;用显示内存中的数据命令命令”D数据段地址:存放数据的偏移地址”显示内存中的数据- DDS:00;观察内存中的数据1607:00000508070000000000-00000000000000001607:00100000000000000000-00000000000000001607:00200000000000000000-0000000000000000- RIP修改IP寄存器中的数据TP0027显示修改前的数据:00输入修改的数据-T;单步执行程序命令AX=1607BX=OOOODS=I607ES=I5F7160D:00038ED8CX=OOOASS=1608MOV(执行一条指令)DX=OOOOSP=0041CS=160DIP=0003BP=OOOOSI=0000DI=

    注意事项

    本文(实验一 8086汇编语言上机调试.docx)为本站会员(王**)主动上传,优知文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知优知文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 yzwku网站版权所有

    经营许可证编号:宁ICP备2022001189号-2

    本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。优知文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知优知文库网,我们立即给予删除!

    收起
    展开