当前位置:首页 > (实验指导书)8086-8088微机原理及应用
安徽工程大学 微型原理及应用I 实验指导书
6. 连续执行命令G
格式: (1)G
(2)G=<地址>
(3)G=<地址>,<断点> 其中(2)、(3)中的”=”是不可缺省的。 功能:
默认程序从CS:IP开始执行。
程序从当前的指定偏移地址开始执行。从指定地址开始执行,到断点自动停止并显示当前所有寄存器、状态标志位的内容和下一条要执行的指令。DEBUG调试程序最多允许设置l0个断点。 7. 跟踪命令T
格式:T【=<地址>】【<条数>】
功能:如果键入T命令后直接按“ENTER\键,则默认从CS:IP开始执行程序,且每执行一条指令后要停下来,显示所有寄存器、状态标志位的内容和下一条要执行的指令。用户也可以指定程序开始执行的起始地址。<条数>的缺省值是一条,也可以由<条数>指定执行若干条命令后停下来。 例如:T
该命令执行当前指令并显示所有寄存器、状态标志位的内容和下一条要执行的指令。又例如:T 10
该命令从当前指令开始执行10H条指令后停下来,所有寄存器、状态标志位的内容和下一条要执行的指令。 8. 反汇编命令U
格式: (1)U <地址> (2)U<地址范围>
功能:反汇编命令是将机器指令翻译成符号形式的汇编语言指令。该命令将指定范围内的代码以汇编语句形式显示,同时显示地址及代码。注意,反汇编时一定确认指令的起始地址后再作,否则将得不到正确结果。地址及范围的缺省值是上次U指令后下一地址的值。这样可以连续反汇编。 9.执行过程命令P 格式:P
功能:执行一条指令或一个过程(子程序),然后显示各寄存器的状态。
说明:该命令主要用于调试程序。它与跟踪命令T的作用类似,T命令是跟踪一条或多条指令,而P命令是执行一条指令(包括带重复前缀的数据串操作指令)或一个完整的过程(子程序)。 例如:设有如下指令序列 MOV AH,02H
INT 21 H ;
当要执行1NT 2 1 H这条指令时,若用T命令进行跟踪,则进入INT 21 H程序(DOS功能调用)后,需要数十次T命令才能返回当前程序;若采用P命令进行调试,则只执行1NT 20H一条指令,执行完立即返回,给调试者的感觉好象是执行了一条普通指令一样。因此,当以后遇到CALL、INT n指令或带重复前缀的数据串操作指令时,若不想观察相应过程的详细执行过程,就可以用P命令。 10.定义待装入文件命令N 格式:N 【d:】【PATH】fllename [.EXE】
17
安徽工程大学 微型原理及应用I 实验指导书
功能:N命令一般和L命令联合使用,为L命令定义指定路径的待装入文件。 11.装入文件命令L
格式:L<地址><盘号><起始逻辑扇区><所读扇区个数n>
其中<地址>的缺省值为CS:100。逻辑扇区可由物理扇区号换算得到,以双面双密度盘为例:物理扇区是按0面0道1区,0面0道2区,??.0面0道9区,0面l道l区,??0面39道9区,l面0道l区,??l面39道9区排列。而逻辑扇区与物理扇区号的对应关系为物理扇区0面0道l扇区至9扇区,逻辑扇区号为0~8;物理扇区l面0道l扇区至9扇区,逻辑扇区号为9~l l H:物理扇区0面l道l扇区至9扇区,逻辑扇区号为1 2----1 AH??这样每道先0面后l面一直排下去。其中<盘号>为0、l或2,0表示A盘,l表示B盘,2表示硬盘。 功能:将<盘号>指定的盘上,从<起始逻辑扇区>起,共n个逻辑扇区上的所有字节顺序读入指定内存地址的一片连续单元。当L后的参数缺省时,必须在L之前由N命令指定(或进A.DEBUG时一并指出)所读盘文件名。此时L执行后将该文件装入内存。 例如:_N EXAMPLE
_L
将当前盘上的EXAMPLE文件装入CS:100起始的一片内存单元。 12.内存单元搬家命令M
格式:M<源地址范围×目标起始地址>
其中源及目标地址若仅输入偏移量,则隐含相对DS。
功能:把<源地址范围>中的内容顺序搬至<目标起始地址>起的一片连续单元。 例如:M CS:100 110 600 该命令把由CS:100起到CS:110止共17个字节搬至DS:600至.DS:610的一片单元。
13.写盘命令W
格式:W<地址><盘号><起始逻辑扇区><所写逻辑扇区数n>
功能:该命令是将内存<地址>起始的一片单元内容写入指定扇区。只有W而没有参数时,与N命令配合使用使用户完成写盘操作。用户可用N命令先定义被调试的文件,再将被调试文件的字节长度值送BX、CX(BX寄存器存放字节长度值的高位,CX寄存器存放字节长度值的低位),.最后用写盘命令W将被调试文件存入磁盘。
例如:欲将D1.COM文件写入磁盘,设文件长度为40字节,可进行如下操作。 _N D1.COM -R CX CX xxxx:0040 _R BX
BX xxxx :0000 _W
Writing 00040 bytes 1 4.显示命令R 格式: (1)R
(2)R<寄存器名> 功能:显示当前所有寄存器内容、状态标志及将要执行的下一指令的地址(即CS:IP)、机器指令代码及汇编语句形式。其中对状态标志寄存器FLAG以状态标志
18
安徽工程大学 微型原理及应用I 实验指导书
位的形式显示,详见教材。 15.端口输出命令。
格式:O<端口地址><字节>
功能:将该<字节>由指定<端口地址>输出。 例如:O 2F 4F
该命令将4FH从2FH口输出. 16.搜索指定内存命令S 格式:S <地址范围><表>
功能:在指定范围搜索表中内容,找到后显示表中元素所在地址 例如:S 100 110 41 屏幕显示:04BA:0104 04BA:010D
表示在l00H~llOH之间的一片存储单元中,104H和10DH两个单元有41 H。 又如:S CS:100 L 10 ‘AB'
表示在当前代码段位移100H至11OH处搜索连续3个字节内容为41H、42H(分别对应A、B的ASCII码)的单元。 17.十六进制算术运算指令H 格式:H <值l><值2>
功能:求十六进制数<值l>和<值>的和与差并显示结果。 18.端口输入命令I 格式:I<端口地址>
功能:将从指定端口输入的内容显示出来。 19.结束DEBUG返回DOS命令Q 格式:Q
功能:返回DOS提示符下。
实验三 多精度十进制加法程序设计
一、实验目的
1.学习数据传送和算术运算指令的用法。
2.掌握加法计算程序的设计思路和设计方法。
3.熟悉在PC机上建立、汇编、连接和调试程序的方法。
二、实验内容
1.将两个多精度十进制数相加。
2.要求被加数和加数均以组合BCD码形式各自存放在以DATA1和DATA2为首的连续的5个内存单元中,结果送回被加数单元。
三、编程思路
该题目要求掌握ADC指令和DAA指令的应用。 为了实现指定功能,应从以下几个方面考虑:
(1) 组织数据时,要按照高位在高地址,低位在低地址的原则。
(2) 要完成多精度字节数据相加,最低字节用ADD指令,而其他高位字节则
19
安徽工程大学 微型原理及应用I 实验指导书
要用ADC指令。
(3) 因为被加数和加数都以BCD码表示,所以在加法指令之后要有加法调整
指令。
(4) 题目要求完成5个字节十进制数相加,所以要用循环程序。
四、参考程序
Crlf macro
Mov dl,0dh Mov ah,0ah Int 21h Mov dl,0ah Int 21h Endm
Data segment
Data1 db 37h,49h,53h,19h,46h Data2 db 90h,87h,49h,31h,25h Data ends Code segment
Assume cs:code,ds:data Start: Mov ax,data Mov ds,ax
Mov si,offset data1 Mov bx,5 Call displ Crlf
Mov si,offset data2 Mov bx,5 Call displ Crlf
Mov si,offset data1 Mov di,offset data2 Mov cx,5 Call adda
Mov si,offset data1 Mov bx,5 Call displ Crlf
Mov ah,4ch Int 21h
Displ proc near Add si,bx Dec si
20
共分享92篇相关文档