基于32位的 微机原理与接口技术实验指导书 新版(3)

2018-12-20 22:36

Q 退出命令。 R[寄存器] 寄存器命令

功能: 一,显示单个寄存器的内容,并提供修改功能。 二,显示所有寄存器内容, 再加上字母标志位状态以及要执行的下一条指令。 三,显示8个标志位状态, 并提供修改功能。若不想改变则回车即可。 例:-r bx bx 0050 :51 -r

AX=0000 BX=0051 CX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=0003 ES=0CD3 SS=0CD3 IP=0100 NV UP EI PL NZ NA OP NC 0CD3:0100 0F DB OF

若想改变标志寄存器,用-RF回车,则DEBUG会将标志内容显示出来,若想改变任一标志,只要输入该标志的名称即可。

标志名称 设置 未设置 标志名称 设置 未设置

滋出 OV(未溢出) NV(未溢出) 零位 ZR NZ(不等于零) 方向 DN(减少) UP(增加) 辅助进位 AC NA(无进位) 中断 EI(许可) DI(禁止) 奇偶标志 PE(偶) PO(奇) 符号 NG(负) PL(正) 进位 CY NC(清除进位) 例:-Rf

NV UP EI PL NZ NA PO NC :-OV DI← 输入值

S[地址范围] [字符串]

功能: 在指定的地址范围内查找给定的字符串。

说明: 用来指定在地址范围内查找一个字符串,若找到则显示其地址, 否则直接显示DEBUG提示符。隐含地址为DS段值。

在此内存可以用(起始地址)(终止地址)或(起始地址)L(长度)的方式来表示,而字符串与数据行则可混合使用:如:02.76\。 例:-d100 lof

08F1:0100 OF 2A 41 43 0B 31 42 96 -FF F0 B9 8A F3 00 B1.. AC,1B... -S 100 L 0f \

08F1:0102← 表示找到,由0102开始,

T[=地址][指令条数] 跟踪命令

功能: 逐条跟踪程序的执行,每条指令执行后都将显示各寄存器的内容。

8

说明: 通常采用跟踪一条指令,但用户也可以用指令条数设定一次跟踪多条指令, 每执行一条指令之后,显示所有寄存器的内容和标志状态。 逐条指令跟踪 -T[=起始地址]

从指定地址起执行一条指令后停下来,显示所有寄存器内容及标志位的值,如来指定地址则从当前CS:IP开始执行。 A:\\>DEBUG -A

08F1:0100 MOV DL,03H 08F1:0102 MOV AH,02H 08F1:0104 INT 21H 08F1:0106 INT 20H 08F1:0108 -T

AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=08F1 ES=08F1 SS=08F1 CS=08F1 1P=0105 NV UP EI PL NZ PO CY 09F1:0102 B402 MOV AH,02

若指定起始地址,则T命令会从指定的地址开始跟踪,我们还可以指定跟踪一次所运行指令的个数,用Ctrl+S暂停屏幕的显示,以便观察。

-t=100 10;由CS:100开始跟踪10条指令

U[起始地址]或者[地址范围]

功能: 将内存中的内容转换为汇编语句。

说明: 反汇编的字节数取决与用户的系统显示形式,以及在U命令中使用的可选项。 (1)从指定地址开始编译,反汇编32个字节 -U[地址]←从CS:100开始,其反汇编32个字节

如果地址被省略,则从一个U命令的最后一条指令的下一条单元开始汇编32个字节。 (2)对指定的存贮范围进行反汇编 -u起始地址 终止地址(L 长度) 例:-U 100 109

08F1:0100 CD20 INT 20

08F1:0102 FF9F009A CALL FA12[BX+9A00] 08F1:0106 F0 LOCK

08F1:0107 FE1D CALL FAR [DI] 08F1:0109 F0 LOCK

说明:如指定了范围则整个范围全都会被反编译

9

W写盘命令

* W[地址] [盘符:] [起始扇区] [扇区数] 写盘命令 功能: 将修改过的数据写到磁盘上。

说明: 可以将指定内存地址开始的数据写在磁盘上,可以在没有指定参数, 或指定地址参数的情况下,将调试文件写在磁盘上。

在运行W时需设置文件的大小CX或BX寄存器 (1)把数据写入磁盘的指定扇区

-W 起始地址 驱动器名 起始扇区 扇区数 (2)把数据写入指定文件中 -W 起始地址 例A:\\>DEBUG -A

08f1:0100.... . 写入程序段 08F1: 012A.... -R CX CX:0000

:2A←写入字节数,即为程序结尾地址减起始地址 -n tan.com←设置文件名,需后缀为com -w

Wring 002A bytes -q

A:\\>TAN←即可执行此程序 * \命令:释放EMS内存 例:-XD 0001

handle 0001 deallocatel←释放了 利用XD释放后可再分配

*\命令;把扩充内存上的内存页区映射到主内存区 格式:XM RAM 长页码 主内存页码句柄

例:-XM3 2 0001←把0001号句柄的第3号逻辑页区映射到2号真实页区 Logical page 03 mapped to physical page 02 *\命令:显示当前EMS使用情况。 格式 -XS

10

第二部分 DOS系统功能调用

1、什么是DOS系统功能调用

系统功能调用是DOS为用户提供的常用子程序(80多个),可在汇编语言程序中直接调用。这些子程序的

主要功能包括:

(1)设备管理(如键盘、显示器、打印机、磁盘等的管理) (2)文件管理和目录操作

(3)其他管理(如内存、时间、日期等管理) 这些子程序给用户编程带来很大方便,用户不必了解有关的设备、电路、接口等方面的问题,只需直接调用即可。

2、调用方法

DOS功能调用的子程序已按顺序编号——功能号(00H~68H),其调用方法是: (1) 功能号→AH

(2) 入口参数→指定寄存器 (3) INT 21H

用户只须给出以上三方面信息,DOS就可根据所给信息自动转入相关子程序执行。 3、常用的系统功能调用

(1)键盘输入

1) 1号调用——从键盘输入单个字符 调用格式: MOV AH,1 INT 21H

功能: 等待从键盘输入一个字符并送入AL。

执行时系统将扫描键盘,等待有健按下,一旦有健按下,就将其字符的ASCII码读入,先检查是否Ctrl-Break,若是,退出命令执行;否则将ASCII码送AL,同时将该字符送显示器显示。

2) 10号调用——从键盘输入字符串 功能: 从键盘接收字符串送入内存的输入缓冲区,同时送显示器显示。 调用前要求: 先定义一个输入缓冲区

MAXLEN DB 100 ;第1个字节指出缓冲区能容纳的字符个数,即缓冲区长度,不能为0

ACLEN DB ? ;第2个字节保留,以存放实际输入的字符个数

STRING DB 100 DUP(?) ;第3个字节开始存放从键盘输入的字符串。 调用格式: LEA DX,MAXLEN(缓冲区首偏移地址) MOV AH,10 INT 21H

1

注意:调用时,要求DS:DX指向输入缓冲区 【例】

DATA SEGMENT MAXLEN DB 100 ACLEN DB ?

STRING DB 100 DUP(?) DATA ENDS CODE SEGMENT … …

MOV AX,DATA MOV DS,AX … …

LEA DX,MAXLEN MOV AH,10 INT 21H … …

CODE ENDS

运行程序时,若从键盘输入“YOU ARE SUCESSFUL!”(共计19个字符),则输入缓冲区MAXLEN各单元内容

缓冲区MAXLEN各存储单元内容

(2)显示输出

1) 2号调用——在显示器上显示输出单个字符 调用格式: MOV DL,待显示字符的ASCII码 MOV AH,2 INT 21H

功能:将DL中的字符送显示器显示。 【例】显示输出大写字母A

MOV DL,41H ;或写为 MOV DL,'A' MOV AH,2 INT 21H

2) 9号调用——在显示器上显示输出字符串 调用格式: LEA DX,字符串首偏移地址 MOV AH,9 INT 21H

功能:将当前数据区中DS:DX所指向的以'$'结尾的字符串送显示器显示。 【例】在显示器上显示字符串“YOU ARE SUCESSFUL!” DATA SEGMENT

STRING DB ' YOU ARE SUCESSFUL! $ ' DATA ENDS CODE SEGMENT … …

MOV AX,DATA MOV DS,AX

2


基于32位的 微机原理与接口技术实验指导书 新版(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2004年中国人民大学《财务管理学》期末试卷

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

马上注册会员

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