汇编语言实验指导2013
- 格式:doc
- 大小:4.02 MB
- 文档页数:35
1 汇 编 语 言 实 验 习 题 指 导 长春理工大学计算机科学与技术系 2 目 录 实 验 须 知 .................................................................... 3 实 验 一 DEBUG调试程序的使用 .......................................... 4 实验二 用DEBUG程序调试程序功能段 ............................... 13 实验三 数据串传送和查表程序 ............................................. 20 实验四 汇编语言上机过程及屏幕字符显示程序 .......................... 23 实验五 条件转移指令 ....................................................... 28 实验六 循环程序是设计 ..................................................... 31 实验七 子程序设计 .......................................................... 34 3
实 验 须 知 一、 预习要求 1. 实验前认真阅读实验教程中有关内容,明确实验目的和实验任务。 2. 每次实验前应有预习报告,未预习者不允许参加实验。 预习报告中:对程序设计实验,要求画出程序流程图,编好上机程序; 二、 实验要求 1. 实验是学习“汇编语言程序设计”这门课程的重要环节,实验课请勿迟到,缺席。 2. 上机时要遵守实验室的规章制度,爱护实验设备。要熟悉与实验相关的系统软件(如编辑程序、汇编程序、连接程序和调试程序等)的使用方法。在程序的调试过程中,有意识地学习及掌握DEBUG程序的各种操作命令,以便掌握程序的调试方法及技巧。 3. 程序调试完后,须由实验辅导教师在机器上检查运行结果。 4. 每个实验完成后,结果写入预习报告,完成分析,上交实验教师。 三、 报告要求
每次实验后,应递交一份实验报告,报告中应包括下列内容: 1. 实验名称、实验人姓名、学号、班级、所用的设备号。 2. 实验目的、任务。 3. 各任务程序流程图、程序清单(应加适量注释)。 4. 记录和分析实验结果。 5.据实验目的认真做小结。 4
实 验 一 DEBUG调试程序的使用 一、 实验目的 1. 学习使用DEBUG程序的各种命令。 2. 利用DEBUG学习了解计算机取指令、执行指令的工作过程。 3. 掌握用DEBUG调试自编程序的方法。
二、 实验准备 预备知识:DEBUG的使用.在以后的所有实验中,都将用到DEBUG程序,首先学习一下他的主要用法。
(一)什么是debug? Debug 是DOS、WINDOWS都提供的实模式(8086方式)程序的调试工具。使用它,可以调试CPU各种寄存器中的内容、内存的情况和在机器码级跟踪程序运行。
(二) 我们用到的DEBUG功能 用DEBUG的R命令查看、改变CPU中寄存器的内容; 用DEBUG的D命令查看内存的内容; 用DEBUG的E命令改写内存的内容; 用DEBUG的U命令将内存中的机器指令翻译成汇编指令; 用DEBUG的T命令执行一条机器指令; 用DEBUG的A命令以汇编指令的格式在内存中写入一条机器指令;
DEBUG的命令比较多,有20多个,这是常用的6个。 (三) 进入DEBUG DEBUG是在DOS方式下使用的程序。我们在进入DEBUG前,应先进入到DOS方式。在WINDOWS下进入DOS方式的方法: 5
在【开始】菜单选择运行命令,如图1.1,打开【运行】框如图1.2输入COMMAND,点击确定按钮
图1.2在文本框中输入COMMAND命令 图1.1 选择【运行】命令
进入DOS后运行DEBUG程序如图1-3
图1.3运行DEBUG程序 图1.4 DEBUG编辑界面 启动成功,显示连接符“-” (四) 关于使用DEBUG命令的几点说明 (1)在提示符“-”下才能输入命令,在按“回车”后该命令才开始执行; 6
(2)命令是单个字母,命令和参数的大小写可混合输入; (3)可用F1 、F2 、F3 、INS、DEL、、等编辑键,编辑本行命令 (4) 当命令出现语法错误时,将在出错位置显示“ERROR” (5) 可用ctrl+c 或ctrl+break 来终止当前命令的执行,还可以用ctrl+s 来暂停屏幕显示(当连续不断地显示信息时) (6)DEBUG使用的数以十六进制来表示; (7)DEBUG中的命令不区分大小写;
(五)几个常用命令 1、R 命令(Register) 格式1:R 功能1:显示所有寄存器中的内容.
图1.5 用R命令显示寄存器的内容 格式2: R 寄存器名 功能2: 显示修改寄存器的内容 例如打入:-R AX
系统将响应如下:AX 0000 : 表示AX当前内容为0000,此时若不对其作修改,可按ENTER键,否则,打入修改后内容。如图1-6:
图1.6用R命令修改寄存器的内容 7
2、 D 命令 用DEBUG的D命令查看内存的内容; 功能: 显示内存单元内容 输入D命令,执行结果如图1.7
图1.7 D命令执行结果 说明: (1) XXXX:YYYY-----前者是内存单元的段地址,后者是内存单元的偏移量; (2) 中间显示区域时内存单元内容(十六进制形式),每行显示16个字节的内容; (3) 右边以“字符”形式显示内存单元值。 格式一:D起始位置 DEBUG从起始位置显示128个字节的内容。输入命令D 0C0B:100 执行结果如图:1.8
图1.8 D 0C0B:100命令的执行结果 格式二:D 起始位置 结束位置 DEBUG 从起始位置一直显示到结束位置。输入命令D DS:100 11F,执行结果如图1.9 所示 8
图1.9命令 D DS:100 11F 执行结果 格式三: D 起始位置 L 长度 DEBUG 从起始位置开始显示指定长度的内容。输入命令D DS:100 L10 执行结果如图1.10
图1.10命令 D DS:100 L1命令执行结果 3.E 命令 用DEBUG的E命令改写内存的内容; 格式一:E 起始地址 字节值表 功能:用字节值表中的值替换从“起始地址”开始的内存单元内容 或 E 起始地址 输入命令:E1AF5:0100,连续输入12、34(空格)、56(空格)、(空格)、78(回车);在输入命令D1AF5:0100 ,执行结果如下图1.11:
图1.11命令D 1AF5:0100 ,执行结果 9
格式二:E 起始地址 功能:采用提问的方式一个一个地改写内存单元的内容
图1.12 命令 E 1AF5:0100执行结果 (4)A命令 功能:输入汇编指令。 格式:A 起始地址 首先用A命令以汇编语言的形式输入程序,以D命令显示内存,从下图可以看到我们输入的是汇编指令,DEBUG 把它们翻译成机器指令,以机器码写入内存。
图1.13 用A命令写入程序 图1.14 从一个预设的地址开始输入指令 (5)U 命令 功能:反汇编,显示机器码所对应的汇编指令 格式1:U[地址] 功能1:从指定地址开始反汇编 10
图1.15 U命令执行结果 格式2:U 地址范围 功能2:对指定的地址范围进行反汇编.
图1.16 U100 108 命令执行结果 (6)T命令 格式:T[=地址] 功能:从指定地址起执行一条语句后停下来,显示所有寄存器的内容及标志位的值与下一条将要执行的指令 11
图1.17 T命令执行结果 格式:T[=地址][x] 功能:从指定的地址开始跟踪x 条指令
图1.18 命令T=100 2 执行结果 (7)Q 命令 功能:退出DEBUG程序,返回DOS
图1.19 Q命令执行结果 三、实验任务
1、 参照实验准备,掌握DEBUG程序的各种命令,重点是命令R,D ,A,U,T,E命令的使用 2、 按照以下步骤输入一系列的命令和指令,编写出简单的汇编语言指令,并完成指定任务。
debug -e200 XXXX:0200 XX.10 XX.20 XX.30 XX.. 40 (将200H~203H 内容改为10H~40H ) 12
-e150 XXXX:0150 XX.00 XX.01 -a100 XXXX:0100 MOV AX,CS (01) XXXX:0102 MOV DS,AX (02) XXXX:0104 MOV BX,100 (03) XXXX:0107 MOV AX,[150] (04) XXXX:010A ADD BX, ,AX (05) XXXX:010C MOV AL,[BX] (06) XXXX:010E ADD AL, [BX+1] (07) XXXX:0111 MOV SI,2 (08) XXXX:0114 MOV AL,[BX+SI] (09) XXXX:0116 MOV AH,0 (10) XXXX:0118 MOV CH,0 (11) XXXX:011A MOV CL,[BX+SI+1] (12) XXXX:011D ADD AX,CX (13) XXXX:011F INT 20
(1) 用D命令显示XXXX:0200 ---XXXX:0203单元内容 (2) 指出以上汇编语言指令中源操作数使用的是什么寻址方式? (3) 用T命令单步跟踪,观察指令的执行结果,并记录
3、 查看内存单元内容,pc机主板上的ROM中写有一个生产日期,在内存FFF00H-FFFFFH 的某几个单元中,请找到这个生产日期并试图改变它 4、 向内存从B8100H开始的单元中填写数据,如: -e b810:0000 01 01 02 02 03 03 04 04
四、 实验报告要求 把实验任务中要求的各项记录到预习报告上,完成预习报告,作为实验报告上交
五、 实验小结
实验报告的最后一项,写出本次实验小结