组成与汇编实验指导书

2018-11-18 21:38

计算机组成原理与汇编语言实验指导书

云南大学软件学院本科生课程实验指导书

计算机组成原理与汇编语言程序设计

王逍

云南大学软件学院

- 0 -

计算机组成原理与汇编语言实验指导书

- 1 -

计算机组成原理与汇编语言实验指导书

第一章 DEBUG的使用

一、DEBUG概述

DEBUG是在DOS状态下面供程序员使用的程序调试工具。它可以用来检查内存中任何地址中的内容以及修改特定地址中的内容。DEBUG还可以用于逐指令执行某个程序,追踪程序的执行过程,比较一条指令执行前后数值变化情况,读写文件与磁盘扇区。此外,DEBUG还可以用于读写端口中的数值。

在DEBUG状态下,所有数据都作为字节序列,可以用DEBUG把任何类型的文件读入内存中。DEBUG能够处理的数据为两种: 十六进制数和ASCⅡ码,使用两位数表示十六进制数据(0~9,A~F)。在DEBUG中涉及内存中的数据时,要指定数据所在的内存单元的地址,地址的输入格式是: [段地址]: [位移]。如果没有输入地址,DEBUG将假定为当前内存段,从位于地址100H的字节开始。前100H字节保留给程序段前缀使用(称PSP结构,包含程序执行的各种信息),该区域用于建立DOS与程序之间的联系。在DEBUG中,使用四位十六进制数表示地址(0~9,A~F)。 DEBUG输入数据时有两种方法: 提示方法和非提示方法。在提示方法下,输入要求输入数据的命令,后跟保存数据的地址。执行后可以看到该地址中已有的内容及一个冒号提示符。此时可以在提示符下输入一个新的值或者按下回车键或CTRL+C回到“—”提示符。在非提示方法下,输入保持数据的内存地址以及要输入的数据。

DEBUG的启动:

进入DOS状态下,键入DEBUG ?,按ENTER键,如:

C:\\>DEBUG ?,则屏幕显示: -

符号“-”是进入DEBUG的提示符,在该提示符下可键入任意DEBUG命令。 DEBUG的退出:

在DEBUG的提示符后输入Q命令,按ENTER键,则退出DEBUG返回DOS。

DEBUG的使用:

在DEBUG的提示符后输入DEBUG命令,按ENTER键。

二、DEBUG 命令详解 ★ A命令

格式:A[地址]

功能:将指令直接汇编成机器码输入到内存中。

参数说明:[地址]指定存放键入汇编语言指令的内存单元的位置。 A命令使用

说明:用于小段程序的汇编及修改目标程序,所有输入的数字均默认为十六进制,并且不需要以“h”字符结尾。用户装入内存的汇编语句是连续存放的,若没有指定地址,并且前面没有使用汇编命令,该语句被汇编到 CS:0100区域,则在它上次停止处开始汇编。 注意:

1. 直接在A命令下输入跳转指令时,跳转指令后应跟跳转到的语句所在内存单元

- 2 -

计算机组成原理与汇编语言实验指导书

的地址,不能跟标号;使用跳转指令时,可以指定跳转指令的属性:near,far。near 前缀可以缩写为 ne。如下例所示: -a0100:0100

0100:0100 jmp 102 0100:0102 jmp near 105

0100:0105 jmp far 10a

2. 汇编语言指令所涉及到的操作数可以是字操作数也可以是字节操作数,在语句

不能判别操作数的类型时,可以使用前缀 word ptr 或者前缀 byte ptr 指定操作数的类型。缩写分别是 :wo 和 by。如下列所示: -a0100:0100

0100:0100 dec word ptr [100] 0100:0102 dec wo ptr [100]

0100:0105 dec byte ptr [100]

2. 在DEBUG下,应注意区分立即操作数和内存地址的操作数,使用包括在中括号

([ ])中 的操作数表示内存地址。 3. 在DEBUG下,能够使用的伪指令仅有DB和DW两个,分别用于定义字节和字操

作数,此时定义的操作数被存放在该定义指令所在的内存空间中。如下列所示(注意内存空间的变换,why?): -a 0100:0100 0100:0100 DB ?ABCDEFG‘

0100:0107

★ C命令

格式:C[源地址范围][目的地址]

功能:比较两内存区域中的内容是否相同。若不同则按字节显示其地址和内容,若相同则不显示任何内容。

参数说明:[源地址范围]指定要比较的内存第一个区域的起始和结束地址,或起始地址和长度。[目的地址] 指定要比较的第二个内存区域的起始地址。 C命令使用

说明:如果 [源地址范围]和[目的地址]中内存单元的数据相同,Debug 将不显示任何内容而直接返回到 Debug 提示符。如果有差异,Debug将按如下格式显示: [源地址] 源地址中内容 如下列所示:

目的地址中内容[目的地址]

-C CS:100 105 DS:300;(假定CS=0AF6;DS=1000) 0AF6:0100 88 00 1000:0300 0AF6:0101 C0

00 1000:0301

0AF6:0102 89 00 1000:0302 0AF6:0103 D8 00 1000:0303 0AF6:0104 65 00 1000:0304

- 3 -

计算机组成原理与汇编语言实验指导书

0AF6:0105 66 00 1000:0305

★ D命令

格式:D[地址] 或D[起始地址][目的地址] 功能:以内存映象方式显示内存中的数据。 参数说明:指定要显示内容的内存单元的起始地址和结束地址,或起始地址和长度。如果不指定 [地址],Debug将从以前 d 命令中所指定的地址范围的末尾开始显示 128个字节的内容;第一次从DS:100处开始显示。 D命令使用

说明:当使用 d 命令时,Debug分两个部分显示内存单元内容:左边显示内存单元中存放的十六进制数;右边显示左边的十六进制所表示的ASCII字符,所有不可打印字符用句号(.)表示。每行显示16个字节的内容,在第八和第九个字节之间有一个连字符“–“ 。

从键盘键入下面命令:

-d cs:100 10f

Debug 按以下格式显示地址范围中的内容(假定CS=0AF6):

0AF6:0100 77 61 6E 67 78 69 61 6F-69 6A 6B FF 0E 00 01 FF wangxiaoijk….. 键入以下命令,Debug 将从 CS:100 开始显示 20h 个字节的内容: -d cs:100 l 20

键入以下命令,Debug 将显示范围从 DS 段的 100h 到 115h 中所有字节的内容: -d 100 115

注意:在D命令中若不指定段寄存器,默认规定为DS。

★ E命令

格式:E[地址] [字节串] 或E[地址] 功能:从指定的地址开始修改内存值。

参数说明:[地址]指定存放[字节串]第一个内存的位置,[字节串]是要放入内存单元中的数据。 E命令使用

说明:当使用E命令时,有两种使用格式:

1、 用E命令中包含的字节串替换从指定的地址开始的多个字节的内容; 2、 E命令后不跟字节串,则允许按顺序方式显示和修改内存值,按下空格键显示下

一字节内容,若想修改,直接输入相应值;按下减号键显示上一字节内容,若

想修改,直接输入相应值。

3、 停止执行 e 命令。按 ENTER 键。在任何字节位置都可以按 ENTER。 注意:

1.

若地址部分只输入偏移量,则 E 命令认为段包括在DS寄存器中。 2. [字节串]的值可以是十六进制字节或字符串。使用空格、逗号或制表符来分

隔值。必须将字符串包括在单或双引号中。 3. 使用E命令后,内存单元中原来的数据将丢失,或者说被新输入的数据覆盖。

- 4 -


组成与汇编实验指导书.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:在财务报表审计中应如何进行风险评估

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: