汇编语言实验一_第1页
汇编语言实验一_第2页
汇编语言实验一_第3页
汇编语言实验一_第4页
汇编语言实验一_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

1、重 庆 大 学学 生 实 验 报 告实验课程名称 汇编语言程序设计 开课实验室 DS1501 学院 软件学院 年级 2013 专业班 软件工程1 班 学 生 姓 名 * 学 号 2013* 开 课 时 间 2014 至 2015 学年第 1 学期总 成 绩教师签名王志平软件工程学院 制汇编语言程序设计实验报告(格式样本) 开课实验室: DS1501机房 2014 年 9 月 日学院软件学院年级、专业、班软件工程1班 姓名* 成绩课程名称汇编语言程序设计实验项目名 称实验一:掌握汇编语言环境及DEBUG 的基本命令及其功能指导教师王志平教师评语教师签名:王志平2014年 月 日一【实验目的】掌握

2、汇编语言环境及DEBUG 的基本命令及其功能。二【实验环境】PC微机DOS操作系统或 Windows 操作系统MASM.EXE,LINK.EXE,DEBUG.COM或宏汇编集成环境三【预备知识】Debug的使用(1)什么是Debug?Debug是DOS、Windows都提供的实模式(8086方式)程序的调试工具。使用它,可以查看CPU各种寄存器中的内容、内存的情况和在机器码级跟踪程序的运行。(2)我们用到的Debug功能l 用Debug的R命令查看、改变CPU寄存器的内容;l 用Debug的D命令查看内存中的内容;l 用Debug的E命令改写内存中的内容;l 用Debug的U命令将内存中的机器

3、指令翻译成汇编指令;l 用Debug的T命令执行一条机器指令;l 用Debug的A命令以汇编指令的格式在内存中写入一条机器指令。四【实验内容】 (1)教材 146155页汇编语言上机调试过程练习(2)进入Debug Debug是在DOS方式下使用的程序。我们在进入Debug前,应先进入到DOS方式。用以下方式可以进入DOS:命令行输入 :cmd1)重新启动计算机,进入DOS方式,此时进入的是实模式的DOS。2) 在Windows中进入DOS方式,此时进入的是虚拟8086模式的DOS。 ( 3 ) 用R命令查看、改变CPU寄存器的内容1)显示CPU内部所有寄存器内容和标志位状态;格式为:-R 。

4、2)显示和修改某个指定寄存器内容,格式为:-R 寄存器名。若要修改一个寄存器中的值,比如AX中的值,可用R命令后加寄存器名来进行,输入“r ax”后按Enter键,将出现“:”作为输入提示,在后面输入要写入的数据后按Enter键,即完成了对AX中内容的修改。若想看一下修改的结果,可再用R命令查看。(4 )用Debug的D命令查看内存中的内容1)格式:-d 段地址:偏移地址,Debug将列出从指定内存单元开始的128个内存单元的内容。使用D命令,Debug将输出3部分内容,如图2.34所示。中间是部分从指定地址开始的128个内存单元的内容,用十六进制的格式输出,每行的输出从16的整数倍的地址开始

5、,最多输出16个单元的内容。左边是每行的起始地址。右边是每个内存单元中的数据对应的可显示的ASCII码字符。2) 格式:-d 段地址:起始偏移地址 结尾偏移地址,Debug将列出指定范围的内存单元的内容。(5) 用Debug的E命令改写内存中的内容,有两种格式:1)格式:-e 起始地址 数据 数据 数据,如要将1000:0开始的10个内存单元修改为09,可以用”-e 1000:0 0 1 2 3 4 5 6 7 8 9” 。2)格式:-e起始地址,逐个单元相继地修改。如:-e 1000:10 1000:0010 6D.0 61.1 72.2 6B.1c输入e 1000:10 ,Debug 显示

6、起始地址1000:0010,和1000:0010单元的原始内容:6D,然后光标停在“.”的后面提示输入想要写入数据,输入数据0,然后按空格键,即用输入的数据0改写了当前的内存单元。当前单元处理完成后,Debug将接着显示下一个内存单元的原始内容,并提示读者进行修改,可以用同样的方法处理。改写完毕后,按Enter键,E命令操作结束。可以用E命令向内存中写入字符,比如:用E命令从内存1000:0开始写入:数值1、字符“a”,数值2,字符“b”,数值3,字符“c”,可以用:“-e 1000:0 1 a 2 b 3 c”修改的结果是,向1000:0、1000:2、1000:4单元中写入数值1、2、3,

7、向1000:1、1000:3、1000: 5单元中写入字符“a”、“b”、“c”的ASCII码值:61H、62H、63H。也可以用E命令向内存中写入字符串,比如:用E命令从内存1000:0开始写入:数值1、字符串“a+b”、数值2、字符串“c+”、字符3、字符串“IBM”。 可以用:-e 1000:0 1 “a+b” 2 “c+” 3 “IBM” 。可以用E命令向内存中写入机器码比如要从内存1000:0单元开始写入这样一段机器码:机器码 对应的汇编指令b80100 mov ax,0001b90200 mov cx,000201c8 add ax, cx可用:”-e 1000:0 b8 01 0

8、0 b9 02 00 01 c8”(6) 用U命令查看写入的或内存中原有的机器码所对应的汇编指令1)-U 段地址:偏移地址该命令从指定地址开始,反汇编32个字节,若地址省略,则从上一个U命令的最后一条指令的下一个单元开始显示32个字节。2)-U地址范围该命令对指定范围的内存单元进行反汇编 (8)使用T命令,可以执行CS:IP指向的指令,格式:-t,指令执行后,Debug显示输出CPU中寄存器的状态。(7)用Debug的A命令以汇编指令的形式在内存中写入机器指令。格式:-A 段地址:偏移地址该命令从指定地址开始允许输入汇编语句,把它们汇编成机器代码相继存放在从指定地址开始的存储器中。(8用Deb

9、ug单步调试程序。格式:debug ex_moves.exe用u命令反汇编看看源代码用T命令单步执行源代码,观察执行后寄存器的变化。四【实验步骤】 (1)使用Debug,将下面的程序段写入内存,逐条执行,观察每条指令执行后,CPU中相关寄存器中内容的变化。机器码 汇编指令b8 20 4e mov ax,4E20H05 16 14 add ax,1416Hbb 00 20 mov bx,2000H01 d8 add ax,bx89 c3 mov bx,ax01 d8 add ax,bxb8 1a 00 mov ax,001AHbb 26 00 mov bx,0026H00 d8 add al,b

10、l00 dc add ah,bl00 c7 add bh,alb4 00 mov ah,000 d8 add al,bl04 9c add al,9CH提示:可用E命令和A命令以两种方式将指令写入内存。注意用T命令执行时,CS:IP的指向。(2)将下面3条指令写入从2000:0开始的内存单元中,利用这3条指令计算2的8次方。mov ax,1add ax,axjmp 2000:0003(3)查看内存中的内容PC机主板上的ROM中写有一个生产日期,在内存FFF00HFFFFFH的某几个单元中,请找到这个生产日期并试图改变它。(4)向内存从B8100H开始的单元中填写数据,如:-e B810:000

11、0 01 01 02 02 03 03 04 04请读者注意观察:先填写不同的数据,观察产生的现象;再改变填写的地址,观察产生的现象。 (5) 用D命令(显示内存数据D 段地址:偏移地址)例1:-D100 ;显示DS段, 0100开始的128个节内容: 说明: 指定要显示其内容的内存区域的起始和结束地址,或起始地址和长度。五【实验过程原始记录(数据、图表、计算等)】实验一机器指令存入内存汇编指令存入内存实验二计算2的8次方再重复使用t指令即可,最后的的结果截图为:实验三再用e指令的机器码试图更改,但是发现不可更改实验四:在输入机器指令后,在进行改变cs,ip后经行观察发现在改变地址后,蓝色框中会在不同的位置现出来实验五:起始位置:073f:0100终点位置073f:017f总结:这次试验我的动手能力还有带加强的,对与指令的作用比较熟悉,但是对于一些应用的如:日期的不可修改是与同学交流而得到的,我应该主动地查阅资料,在丰富知识,而不是不会的就困守原地。我的优点就是善于查找问题,在用d指令中看出日期的位置。六【实验结果及分析】七【思考题】如果有则做。实验报告打印格式说明1. 标题:

温馨提示

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

评论

0/150

提交评论