微机原理实验一报告_第1页
微机原理实验一报告_第2页
微机原理实验一报告_第3页
微机原理实验一报告_第4页
微机原理实验一报告_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 课程名称: 微机原理 学 院 信息工程 专业班级 学 号 姓 名 任课教师 乐金松 2016年 5月3日实验一 汇编语言程序调试基础训练实验目的:1、学习、掌握汇编程序的编辑、编译、链接的方法2、学习常用的DEBUG命令,掌握汇编程序调试方法 3、通过调试程序,弄清汇编指令和机器码的关系4、弄清代码段、数据段、堆栈段中的段地址和偏移量的形成实验内容:1、 源程序的编辑2、 源程序的编译、链接3、 汇编程序调试,完成相关数据的记录和分析实验步骤:一、 源程序的编辑、编译、链接1、 在E盘建立L8086文件夹,将L8086文件全部拷入该目录2、 用EDIT或写字板编辑器,将例程BBADD.ASM

2、输入计算机,以BBADD.ASM文件名保存程序3、 用MASM.EXE工具将源程序编译成BBADD.OBJ文件4、 用LINK.EXE工具将目标文件链接成BBADD.EXE可执行文件二、 程序载入和退出1、 进入DOS命令提示符界面2、 将路径切换至:E>L8086>3、 输入DEBUG BBADD.EXE 回车,此时程序载入到DEBUG调试状态4、 按Q回车,则退出调试状态返回到操作系统三、 程序的调试1、 在DEBUG调试状态,输入U回车,显示此时可以看到源程序经编译后,载入到计算机内存中每一条指令所对应的机器码;可以看到指令在代码段中所处的段地址和偏移量等信息。对照源程序填写

3、以下信息: 程序起始地址: 07AB : 0000 程序结尾地址: 07AB : 001E 用户数据段地址: 07AA 变量R0分得的地址: 0000 变量R2分得的地址: 07AA2 变量R3分得的地址: 07AA3 变量R4分得的地址: 07AA4 以上信息说明:U命令可以显示反汇编信息2、 输入R回车,显示以下的信息:这是CPU内所有寄存器信息,注意观察和记录(1) 段地址信息:CS=07ABDS=075ASS=076AES=075A(2) 通用寄存器信息:AX=FFFF BX=0000 CX=0447DX=0000 SI=0000 DI=0000 BP=0000(3) 观察IP 、SP

4、指针和标志标志寄存器状态IP=0000 SP=0400OF=0,DF=1,IF=1,SF=0,ZF=0,AF=0,PF=0,CF=03、 输入RAX 回车,接着输入55AA回车,再输入R命令回车,显示以下信息:此时发现AX=55AAH,说明R命令可以显示和修改寄存器的值 输入D回车,显示以下信息这是操作系统当前的数据段,观察当前的段地址和你前面记录的用户段地址是不一样的,左边的信息是数据段的段地址和偏移量,右边是每一个单元和相对的值,用D命令可以查看数据段的信息。4、 输入G0A按回车:注意观察:DS= 07AA 分析为什么这时的DS和你前面记录的DS不相同,为什么?后面的DS已进行过指令修改

5、所以与初始程序的DS数据时不同5、 输入D0回车,显示以下信息这是用户数据段信息,请找出变量R0R7所对应的位置R0(07AA:0000H)R1(07AA:0001H)R2(07AA:0002H)R3(07AA:0003H)R4(07AA:0004H)R5(07AA:0005H)R6(07AA:0006H)R7(07AA:0007H)6、 输入E0回车,显示显示数据段0号单元的地址和内容,输入55回车,在输入D0回车你会发现数据段0号单元的内容(即是R0)变成55H,说明用E命令可以修改数据段存储单元的内容。7、 输入T回车,发现每按一次T,执行1条指令,并将执行后各寄存器的值显示出来,这是单

6、步执行命令。四、 输入参数验证程序:1、 输入RIP回车,然后输入00,回车,再输入R回车,发现IP=0000即是用R命令可以复位程序指针,让程序再次从头开始执行2、 G0A回车,显示该信息表明程序从第一条指令开始连续执行到MOV AL,0001指令为止。说明:G命令式运行程序命令,如果G后面输入偏移量地址,则程序从当前位置执行到G后面的地址后停下来。如果按G直接回车,则程序会全速运行。以上我们学习了 DEBUG的常用命令,请记录各命令的功能U: 机器码反汇编,查看内存机器码 D: 查看内存数据段信息 E: 修改数据段存储单元的内容 R: 复位程序指针,让程序再次从头开始 G: 命令或运行程序

7、命令 T: 单步执行命令 Q: 退出调试状态返回到操作系统 3、 用E命令输入R0R1=100,R2R3=100输入G1E回车,输入D0回车,观察: R4R5=( 00C8H ) 分析结果是否正确用同样方法验证:1000+1000=07D0H 10000+10000=4E20H FFFF+FFFF=1FFFEH 4、 十进制BCD码加法运算 1)将程序复位:IP=0000H 2) 程序执行至0AH位置,用E命令输入十进制BCD码88+99即是:R0R1=0088,RR2R3=0099 3)用T命令执行ADD AL,0003指令,观察记录AL=88CF=NCAF=NAZF=NZ为什么标志位的状态会这样?AL的值是正确吗?CF为仅为标志位,CF=NC说明没有进位,AF为辅助进位标志位,AF=NA说明无辅助进位,ZF为零标志位,ZF=NZ说明为非零标志位。AL是正确的4)用G命令将程序执行至1E回车,用D0命令查看数据段R4R5=(0021)分析结果是否正确,为什么?不正确,十进制运算88+99=187,21为十六进制运算结果,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论