汇编语言上机操作及程序调试的方法

合集下载

汇编语言上机实验内容

汇编语言上机实验内容

实验一上机操作一、实验目的掌握汇编语言程序编辑、汇编、连接、运行以及利用DEBUG调试程序的方法。

二、实验设备PC机及相应的软件。

三、实验内容及步骤1、编辑一个指定的汇编语言源程序,并对其进行汇编、连接和运行。

2、利用DEBUG进行程序调试,掌握常用命令的使用方法,观察运行结果。

3、汇编语言上机操作,见图1-1 汇编语言上机操作流程。

上机操作过程:开始输入cmd 确认后显示:C:\Documents and setting\Administrator>-输入 cd c:\masm 后显示:c:\masm>-c:\masm>EDIT ABC.asmc:\masm>MASM ABC;若有语法错,回EDIT下改该程序c:\masm>LINK ABC;若有错,回EDIT下改程序c:\masm>ABC若运行结果错,回EDIT下改程序或在DEBUG下调试,找原因。

c:\masm>DEBUG ABC.exe手写源程序图 1-1 汇编语言上机操作流程汇编语言程序举例例1:将BL寄存器的内容按二进制形式显示出来。

设:(BL)=01010011B分析:采用2号功能调用,分别输出30 31 30 31 30 30 31 31显示:01010011参考程序:CODE SEGMENTASSUME CS: CODESTART:MOV CX ,8 ;显示字符个数为8MOV BL ,53HNEXT:SHL BL ,1 ;将显示位移至CF中JC ONE ;CF=1?MOV DL ,30H ;CF=0,将0的ASCII放在DL中JMP EXITONE:MOV DL ,31H ;CF=1,将1的ASCII放在DL中EXIT:MOV AH ,2INT 21H ;调用DOS功能显示DEC CX ;循环次数减1JNZ NEXT ;判断是否结束MOV AH,4CH ;返回DOSINT 21HCODE ENDSEND START上机操作:c:\masm>EDIT ShowBL.asm ;编辑源程序c:\masm>MASM ShowBL ;汇编成ShowBL.objMicrosoft (R) Macro Assembler Version 5.10Copyright (C) Microsoft Corp 1981,1988. All rights reserved.48912 + 447243 Bytes symbol space free0 Warning Errors0 Severe Errorsc:\masm>LINK ShowBL ;连接成ShowBL.exeMicrosoft (R) Overlay Linker Version 3.61Copyright (C) Microsoft Corp 1983-1987. All rights reserved.LINK : warning L4021: no stack segmentc:\masm>ShowBL ;装载并执行ShowBL.exe 01010011 ;屏幕显示c:\masm>-在DEBUG下查看ShowBL.exe的装入情况:c:\masm>DEBUG ShowBL.exe- R ;查看当前寄存器内容AX=0000 BX=0000 CX=001B DX=0000 SP=0000 BP=0000 SI=0000 DI=0000 DS=0B51 ES=0B51 SS=0B61 CS=0B61 IP=0000 NV UP EI PL NZ NA PO NC B353 MOV BL,53- U CS:0 ;查看程序0B61:0000 B353 MOV BL,530B61:0002 B90800 MOV CX,00080B61:0005 D0E3 SHL BL,10B61:0007 7205 JB 000E…….0B61:0017 B44C MOV AH,4C0B61:0019 CD21 INT 21…….-G ;执行程序01010011Program terminated normally-例2:将某段中的字符串“Hello!”传送到另一段中。

汇编语言程序设计与上机调试

汇编语言程序设计与上机调试

BUFF2 DB 60 DUP(?)
JNZ FU ;负数
DATA ENDS
STOSB
;否则,存入正数区
CODE SEGMENT
JMP AGAIN
ASSUME CS:CODE,DS:DATA FU: XCHG BX,DI ; 交换目的地址
START:MOV AX, DATA
STOSB
MOV DS,AX
【例4.7】将AX中的内容按相反顺序存入BX中。
CODE SEGMENT ASSUME CS:CODE
START: MOV AX,1234H MOV CX,16
AA1: SHL AX,1 RCR BX, 1 LOOP AA1 MOV AX,4C00H INT 21H
CODE ENDS END START
2020/7/1
3.代码转换例题 【例4.8】编程将以$结束的字符串中的小写字母改为大写字母。
DATA SEGMENT
STR DB ‘heLLo,eveRyboDY!’,’$’
SUB AL,20H
DATA ENDS
;将小写字母改为大写字母
CODE SEGMENT
MOV [BX], AL
ASSUME CS:CODE,DS:DATA NEXT: INC BX
CMP AL, ’z’
JA NEXT ;高于,则不是字母
2020/7/1
【例4-9】十六进制(二进制)数到十进制的转换
SST SEGMENT PARA STACK ’STACK’
TOP DW 50 DUP(?)
A1:MOV DX,0 ;被除数扩展为32位
SST ENDS
;设置堆栈段
CODE SEGMENT
END START

微机实验汇编语言程序的调试与运行步骤

微机实验汇编语言程序的调试与运行步骤

软件实验一汇编语言程序的调试与运行一.实验目的1.学习数据传送和算术运算指令的用法2.熟悉在PC机上编辑、汇编、连接、调试和运行汇编语言程序的过程。

二.实验内容将两个多位十进制数相加,要求被加数和加数均以ASCII码形式各自顺序存放在DATA1和DA TA2为首的5个内存单元中,结果送回DATA1处。

三.程序框图图1.1 两个多位十进制相加程序流程图四.程序清单DISP MACRO XMOV DL,X ;要显示的字符送DL寄存器MOV AH,02H ;DOS功能调用号是02HINT 21H ;21H中断程序是DOS功能调用ENDMDATA SEGMENTDATA1 DB '12732'DATA2 DB '06815'N EQU $-DA TA2DATA ENDSSTACK SEGMENT STACKSTA DB 20 DUP (?)TOP EQU $-STASTACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TA,SS:STACK,ES:DA TA START:MOV AX,DA TAMOV DS,AXMOV AX,STACKMOV SS,AXMOV AX,TOPMOV SP,AXLEA SI,DATA1 ;☆MOV BX,0MOV CX,NCALL DISPL ;显示被加数DISP '+'LEA SI,DATA2MOV BX,0MOV CX,NCALL DISPL ;显示加数DISP '='LEA DI,DA TA1MOV CX,NCALL ADDA ;调用加法子程序LEA SI,DATA1MOV BX,0MOV CX,NCALL DISPL ;显示运算结果DISP 0DHDISP 0AHMOV AX,4C00HINT 21HDISPL PROC ;显示子程序DS1: MOV AH,02HMOV DL,[SI+BX]INT 21HINC BXLOOP DS1RETDISPL ENDPADDA PROC ;加法子程序PUSH CXMOV BX,0AD1: SUB BYTE PTR [SI+BX],30HSUB BYTE PTR [DI+BX],30HINC BXLOOP AD1POP CXPUSH CXMOV BX,N-1 ;☆☆CLCAD2: MOV AL,[SI+BX]ADC AL,[DI+BX]AAAMOV [DI+BX],ALDEC BXLOOP AD2POP CXPUSH CXMOV BX,0 ;☆☆☆AD3: ADD BYTE PTR [DI+BX],30HINC BXLOOP AD3POP CXRET ;☆☆☆☆ADDA ENDPCODE ENDSEND START五.调试步骤1.编辑源程序,建立一个以后缀为.ASM的文件.2.汇编源程序,检查程序有否错误,有错时回到编辑状态,修改程序中错误行。

汇编语言源程序运行步骤和DEBUG的使用

汇编语言源程序运行步骤和DEBUG的使用

汇编语言源程序运行步骤和DEBUG的使用一、实验目的1.熟悉汇编语言源程序书写格式。

2.熟悉汇编语言源程序编辑、汇编、连接、执行步骤。

3.练习DEBUG常用命令的使用。

4.熟悉8086的寄存器。

5.了解程序的执行过程。

二、实验预习要求1、认真阅读预备知识中汇编语言的上机步骤的说明,熟悉汇编程序的建立、汇编、连接、执行、调试的全过程。

2.预习使用DEBUG 检查/修改寄存器内容、查询存储器内容的命令。

3.预习使用DEBUG单步、断点及连续执行程序的命令。

三、实验内容1.编辑以下程序,汇编连接后运行,将输出'HOW ARE YOU?’。

本习题主要目的:熟悉汇编语言源程序的书写格式;熟悉汇编语言源程序的编辑、汇编、连接、运行。

DA TA SEGMENTBUF DB 'HOW ARE YOU?$'DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TASTART: MOV AX,DA TAMOV DS,AXMOV DX,OFFSET BUFMOV AH,09HINT 21HMOV AH,4CHINT 21HCODE ENDSEND START2.DEBUG 调试以下程序,查看DATA段中定义的数据在内存中的存放方式,并单步执行查看每一语句执行后相关寄存器的内容,并解释为何取该值:DA TA SEGMENT ;(1)DB 34H,12H ;(2)B DW 1234H ;(3)C DD 0 ;(4)D DB -1,15/3 ;(5)E DB '012' ;(6)F DW 'AB','C' ;(7)G DW ? ;(8)H DB 5 DUP(0) ;(9)I DW $-OFFSET H ;(10)DA TA ENDS ;(11)CODE SEGMENT ;(12)ASSUME CS:CODE,DS:DA TA ;(13)START: MOV AX,CODE ;(14)MOV DS,AX ;(15)MOV BX,SEG A ;(16)MOV CX,OFFSET B ;(17)MOV DX,TYPE C ;(18)MOV AH,4CH ;(19)INT 21H ;(20)CODE ENDS ;(21)END START ;(22)3.下面是第1题采用将主程序定义为远程的程序返回DOS的结束方式,将其编辑、连接、运行,熟悉汇编源程序不同的结束方式。

汇编语言的编程步骤与调试方法

汇编语言的编程步骤与调试方法

汇编语言得编程步骤与调试方法一、汇编源程序得建立1、使用工具sm文件;(2)ASM,MASM汇编程序,对源程序进行汇编,生成、obj文件-目标文件,以及调试用、LST-列表文件与、CRF-交叉引用表;(3)Link连接程序,对使用得目标文件与库文件进行连接,生成、exe文件,同时调试用、map-地址映像文件;如果源程序无语法错误,上述三步将生成可运行得、exe文件,如果运行结果无误,则完成对汇编程序得编程,如果运行后结果存在错误,需要进行调试。

(4)Debug调试程序,对、exe文件进行调试,修改,直到程序正确。

图3目标程序生成步骤图2、编程过程(1)用文本编辑软件,编写扩展名为、asm得源文程序文件。

(2)用汇编程序对编好得源文件进行汇编。

命令行:masm[*、asm]↙如果源文件中存在语法错误,则汇编程序将指出错误类型及位置,可根据这些信息重新编辑源文件,直至无语法错误,汇编后,将生成指定名称得目标文件、obj。

使用MASM50汇编程序进行汇编,输入命令行masm或者masm *、asm 后,根据提示,输入文件名,在汇编没有错误得情况下,如屏幕所示:汇编程序可生成三个文件,*、obj,*、lst与*、crf。

*、obj-目标文件,用于连接生成可执行文件;*、lst-列表文件(可选),汇编语言汇编得机器语言与汇编语言对照表,可用于调试;*、crf-交叉引用文件(可选),给出了用户定义得所有符号与对每个符号定义、引用得行号。

(3)目标文件得连接命令行:link[*、obj][*、obj] [*、lib] ↙连接程序,将多个目标程序及库文件,连接生成可执行得*、exe文件,同时可选择生成*、map文件。

*、map-地址映像文件,给出内存地址分配得有关信息。

下图所示屏幕,为Link连接两个目标文件,没有错误得情况下,生成*、e xe文件。

(4)执行程序执行*、exe文件,观察程序运行结果,如果存在错误,需要进行调试。

汇编语言的编程步骤与调试方法

汇编语言的编程步骤与调试方法

汇编语言的编程步骤与调试方法汇编语言的编程步骤与调试方法一、汇编源程序的建立1、使用工具(1)EDIT,记事本等文本编辑软件,编辑源程序,保存为、asm文件;(2)ASM,MASM汇编程序,对源程序进行汇编,生成、obj文件-目标文件,以及调试用、LST-列表文件与、CRF-交叉引用表; (3)Link连接程序,对使用的目标文件与库文件进行连接,生成、exe文件,同时调试用、map-地址映像文件;如果源程序无语法错误,上述三步将生成可运行的、exe文件,如果运行结果无误,则完成对汇编程序的编程,如果运行后结果存在错误,需要进行调试。

(4)Debug调试程序,对、exe文件进行调试,修改,直到程序正确。

图3 目标程序生成步骤图2、编程过程(1)用文本编辑软件,编写扩展名为、asm的源文程序文件。

(2)用汇编程序对编好的源文件进行汇编。

命令行: masm [*、asm] ↙如果源文件中存在语法错误,则汇编程序将指出错误类型及位置,可根据这些信息重新编辑源文件,直至无语法错误,汇编后,将生成指定名称的目标文件、obj。

使用MASM50汇编程序进行汇编,输入命令行masm或者masm *、asm后,根据提示,输入文件名,在汇编没有错误的情况下,如屏幕所示:汇编程序可生成三个文件,*、obj,*、lst与*、crf。

*、obj-目标文件,用于连接生成可执行文件;*、lst-列表文件(可选),汇编语言汇编的机器语言与汇编语言对照表,可用于调试;*、crf-交叉引用文件(可选),给出了用户定义的所有符号与对每个符号定义、引用的行号。

(3)目标文件的连接命令行:link [*、obj] [*、obj] [*、lib] ↙连接程序,将多个目标程序及库文件,连接生成可执行的*、exe文件,同时可选择生成*、map文件。

*、map-地址映像文件,给出内存地址分配的有关信息。

下图所示屏幕,为Link连接两个目标文件,没有错误的情况下,生成*、exe文件。

汇编语言程序编写调试说明.

汇编语言程序编写调试说明.

要在计算机上执行汇编语言程序,其操作步骤如下:1. 编辑源程序使用编辑软件将汇编源程序输入到计算机中,建立*.ASM文件。

2.汇编源程序使用汇编程序将汇编源程序汇编成目标代码文件,即生成*.OBJ 文件。

目前使用较多的汇编程序是宏汇编程序MASM。

C>MASM A1↙3. 连接目标程序文件生成可执行文件生成OBJ文件后,必须用LINK程序连接目标代码程序和库函数代码生成可执行文件,生成的文件的扩展名为EXE。

C>LINK A1↙4.程序的执行建立了EXE文件后,就可以在DOS下直接执行程序了。

C>A1↙汇编程序调试工具debug命令:DEBUG调试命令介绍1.主要调试命令:(1)反汇编命令U:将存储器中的二进制数据翻译成较有意义的助记符形式,以帮助理解,如图1.5所示。

一般常用以下三种格式:a)-U↙:从当前IP处开始,对连续约32字节内容反汇编。

如对TEST.EXE,刚装入DEBUG时的IP=0000,则在输入U命令后有如下显示:-U↙13C2:0000 B402 MOV AH,0213C2:0002 B241 MOV DL,4113C2:0004 CD21 INT 2113C2:0006 B44C MOV AH,4C13C2:0008 CD21 INT 2113C2:000A 8B4606 MOV AX,[BP+06]………………13C2:0020 8B07 MOV AX,[BX]-图1.5 反汇编命令的执行结果在上例中,13C2:0000表示CS:IP的内容(其中CS的值是动态值);B402代表该处存放的二进制数据,亦即指令MOV AH,02H的机器代码;当连续约32字节的数据反汇编完后,重新回到DEBUG提示符“-”下,如果再键入U命令,则将继续对后面的内存区反汇编。

特别应该注意的是,由于反汇编命令针对内存区的二进制数据,而被调试程序仅占内存区的某一部分,故反汇编出来的内容并非全是被调试程序的代码,如上例中13C2:000A单元以后的部分,显然不是TEST.EXE的内容。

汇编语言上机指导

汇编语言上机指导

汇编语言上机指导实验一DEBUG常用命令及8086指令使用实验目的:通过实验掌握下列知识:1、8086指令: MOV,ADD,ADC,SUB,SBB,DAA,XCHG2、DEBUG命令: A,D,E,F,H,R,T,U。

3、ASCII码及用16进制数表示二进制码的方法。

4、8086寄存器: AX,BX,CX,DX,F,IP。

内容及步骤:一、DEBUG 命令使用:1、打 DEBUG 进入 DEBUG 控制,显示提示符 '_ '。

2、用命令 F100 10F 'A' 将'A'的ASCII码填入内存。

3、用命令 D100 10F 观察内存中的16进制码及屏幕右边的ASCII 字符。

4、用命令 F110 11F 41 重复上二项实验,观察结果并比较。

5、用命令E100 30 31 32 …… 3F将30H-3FH写入地址为100开始的内存单元中,再用D命令观察结果,看键入的16进制数是什么字符的ASCII码?6、用H命令检查下列各组16进制数加减结果并和你的手算结果比较:(1)34H,22H (2)56H,78H (3)A5,79H (4)1284H,5678H (5)A758,347FH7、用R 命令检查各寄存器内容,特别注意AX,BX,CX,DX,IP及标志位中ZF,CF和AF的内容。

8、用R命令将AX,BX内容改写为1050H及23A8H。

二、8086常用指令练习1、传送指令1)用A命令在内存100H处键入下列内容:MOV AX,1234MOV BX,5678XCHG AX,BXMOV AH,35MOV AL,48MOV DX,75ABXCHG AX,DX2)用U命令检查键入的程序并记录,特别注意左边的机器码。

3)用T命令逐条运行这些指令,每运行一行检查并记录有关寄存器及IP的变化情况。

并注意标志位有无变化。

2、加减法指令:1)用A命令在内存100H处键入下列内容:MOV AH,34MOV AL,22ADD AL,AHSUB AL,78MOV CX,1284MOV DX,5678ADD CX,DXSUB CX,AXSUB CX,CX2)用U命令检查键入的程序及对应的机器码。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《微型计算机原理及应用》 8 汇编语言上机操作及程序调试的方法

第一节 在IBM-PC机上运行汇编源程序所必备的软件 为了在IBM-PC机上运行汇编源程序,机器上必须有DOS操作系统环境,DOS系统盘上应有下列文件: EDIT 文件编辑程序 MASM 宏汇编程序 LINK 链接程序 DEBUG 调试程序

第二节 在IBM-PC机上运行汇编源程序的步骤

当用户编制好汇编语言源程序之后,要在机器上运行,必须经过以下几个步骤: 1. 用EDIT命令建立与修改汇编源程序文件(ASM文件) 源程序就是用汇编语言的语句编写的程序,必须以ASM为附加文件名。 2. 用MASM命令汇编源文件以产生相应的目标文件(OBJ文件) 3. 用LINK命令连接目标文件以产生可执行文件(EXE文件) 4. 调试、运行可执行文件 《微型计算机原理及应用》

9 上机过程示意图如下: 汇编语言程序

编辑程序汇编程序连接程序调试程序有错吗?运行程序

Y

N

图2-1 汇编语言程序上机过程流程 第三节 DEBUG程序调用及汇编语言程序调试方法

调试程序DEBUG是DOS支持的又一种系统软件,主要用于汇编语言程序的调试。汇编和连接过程只能查出源程序的语法错误,不能查出功能上的错误和程序不完善的地方。

一、DEBUG程序的启动 DEBUG程序有两种启动方法。 第一种启动方法:只要打入DEBUG和回车键,就可以把它装入内存。但是这样启动只把DEBUG程序本身装入内存并进入等待DEBUG命令状态,还没有把要调试的程序装入内存。 第二种启动DEBUG的程序的方法是一次相继装入DEBUG程序和要调试的程序。打入的命令格式如下: DEBUG[d:][path]filename[.ext][parml]Lparm2] 其中的Filename是要调试程序的文件名,可选项[d:][path]和[.ext]分别是要调试程序的所在盘符、路径和扩展名。可选项[parml]和[parm2]是DEBUG程序为要调试程序准备的参数(一般不用)。 例 进入DEBUG程序并装入要调试程序,要调试程序在A驱动器中。其操《微型计算机原理及应用》 10 作如下: C>DEBUG A:ABC.EXE (进入DEBUG,并装配ABC.EXE) 此时屏幕上出现一个短线,这表示可以使用DEBUG命令了。 二、调试命令 在说明每个命令之前,先说明一些共同信息: ■ DEBUG命令都是以一个英文字母开头,后面跟一个或多个参数。 ■ 命令字母和参数可用大写或小写或混合形式。 ■ 命令字母和参数中,相邻两个十六进制之间必须用逗号或空格分开.其它各部分之间有无空格或逗号都可以。 ■ 执行任何命令期间都可用Ctrl+Break键方法结束命令的执行。 ■ 打入命令字母和参数后必须打入回车键才能使命令有效。 ■ 如果执行某种命令期间在显示器或打印机上的很长的输出,可以按Ctrl+Numlock键暂停继续显示,使显示屏幕停下来供观察。再按任何其它键,则继续显示输出。 ■ 在DEBUG程序状态下,控制键和DOS支持的编辑键继续有效。

■ DEBUG程序状态光标提示符为“-”。 下面按命令功能相近关系分组说明几个主要命令功能和使用的方法: (一)显示和修改寄存器或存贮单元的有关命令 1. R(Register)命令 R命令有三种功能:  显示单个寄存器内容并等待修改这个寄存器内容;  显示CPU内部的所有寄存器的内容和全部标志位的状态;  显示和修改所有标志位的状态。 ⑴ 显示和修改单个寄存器内容命令 命令格式:R [寄存器名] 说明:显示单个寄存器内容。R之后输入寄存器名符。例如命令 - RAX↙ 将显示出AX的内容和在下一行显示出冒号。 AXF1E4 :- 上面的F1E4是AX的当前内容。如果在冒号后打入要修改的内容,然后打回车键,这时AX即修改为新值;如果不输入新值只打回车键,则不改变原值。 ⑵ 显示CPU内部的所有寄存器的内容和全部标志位的状态命令 命令格式:R 说明:显示所有寄存器和标志位值。例如: 《微型计算机原理及应用》 11 -R↙ 系统响应给出格式如(值是假设的): AX=0E00 BX=00FF CX=0007 DX=01FF SP=0390 BP=0000 SI=0050 DI=0000 DS=04BA ES=04BA SS=04BA CS=04BA IP=01lA NV UP DI NG NZ AC PE NC 04BA:0HA CD21 1NT21 前几行显示的是寄存器内容和8个状态标志位的状态,最后一行显示是下面将要执行的指令地址,它对应的机器码和汇编语句形式。8位状态标志位的状态不是以0或1的形式显示的,而是用两个字母显示的。字母和状态对应关系如表所示:

标志位名 为1对应符 为0对应符 OF(溢出标志) OV NV DF(方向标志) DN UP IF(中断标志) EI DI SF(符号标志) NG PL ZF(零标志) ZR NZ AF(辅助进位) AC NA PF(奇偶标志) PE PO CF(进位标志) CY NC

⑶ 显示和修改标志位状态的命令 命令格式: RF 系统响应是显示8个状态位。例如: OV DN EI NG ZR AC PE CY_(最后为光标位置)如果打入回车键,将不改变标志位的状态;也可以打入一个或多个新的状态符,重新设置其状态。输入时各标志的次序无关,输入的各个标志之间可以没有空格。如从光标位置开始打入: PONZDINV 将改变第一、三、五、七个状态位的值。 2.D(Dump)命令 用途:显示某个存储区的内容。 格式:D[address]或D[range] 存储单元的内容用两种方式显示:—种是每一个存储单元的内容(每一字节)用两位16进制数显示;另一种是用相应的ASCII字符显示,句号(.。?)表示不可显示的字符。  如果取命令格式:D 后面无地址或范围参数,将从前次命令显示后的下一个单元开始《微型计算机原理及应用》 12 显示40H字节或80H字节的内容。  如果取命令格式:D [range] 则显示指定地址范围各单元的内容。 3.E(Enter)命令 ’ 用途:显示和修改存贮单元的内容。 格式1:E [address] [list] 将内容表包括的数值和字符串的ASCII码依次置入从指定地址开始的存贮单元。例如: E DS:100 F3“XYZ”8D 从内存单元DS:100H至DS:104H的5个单元中依次置入F3H(1个单元),XYZ的ASCII码(3个单元)和8DH(1个单元)。 格式2:E [address] 显示指定地址单元的内容,并等待输入新的值。 输入新的值过程如下: 输入一个字节的十六进制数,以替换原单元中的内容,然后采取下列三种操作的一种。 (1)按空格键,则上一个替换要求完成,且显示出下一个单元的地址和原有的内容。如果想改变它,可直接输入要修改的值,再按空格键,„„,这样,就可以连续地进行修改。若某一单元的内容不需要修改,可直接按空格键。 (2)按“—”号键,将在下一行显示前一单元的地址和内容。如果想改变它,可直接输入要修改的值,然后再按“—”,则又显示前一单元的地址和内容,„„,这样就可连续地进行反向修改。若所示的前一单元的内容不需要修改,可直接按“—”键。 (3) 按回车键将结束E命令。 命令参数中[地址]如果不指明段地址,则默认段地址为DS。 4.F(File)命令 用途:在指定的存贮地址范围内置入内容表给出的数值或字符代码。 格式:F [range] [list] 说明:如果list包含的字节少于range包括的单元数,则把list的字节重复置入指定的地址区,直到指定的范围都置入新值为止。如果list包含的字节数多于range包括的单元数,则多出的字节被忽略。 如果range参数中不指明段地址,则默认段地址为DS。例如: F4BA:100L5 F3'XYZ'8D 则从04BA:100至04BA:104的5个单元依次装入F3 58 59 5A 8D。

(二)汇编与反汇编命令 1. A(Assemed) 命令 《微型计算机原理及应用》 13 用途:先显示汇编的内存地址,等待用户输入一条助记符指令。用户输入指令并按回车后,DEBUG将把这条指令对应的机器码顺序存放在指定的内存单元中,并提示下一地址,等待用户继续输入下一条指令。若直接按回车,则退出A命令;若在输入指令时语句有错误,则显示出错信息,仍然提示当前的汇编地址,用户可重新输入指令。 格式:A [address] 说明:若没有指定地址,则从“CS:100”单元开始存放。

2.U(Unassemed)命令 用途:对于存贮器内的指令机器码进行反汇编,结果显示的语句和源程序语句会大部分相同,由于不能反汇编出标号、标识符等信息,所以与源程序语句有些差别。但在调试程序时,这个命令常常用于对照机器码指令与源程序是否一致。 格式:U[address]或U[range] 说明:反汇编过程产生的输出包括指令的开始地址,指令的机器码和指令的源语句。 例:-U:从当前地址开始反汇编 也可以从某个地址处开始反汇编 例:-U 200:从CS:200处开始反汇编

(三)运行命令 1.G(Go)命令 用途:执行正在调试的程序。 格式:G[=address][address[address„]] 说明:等号及第一个address参数指明程序执行的起点。后面的一个或多个address参数是设定的断点。这个命令可取以下三种格式: (1)G不打入任何参数。这时从当前指令,即从CS:IP指定的地址开始执行,并一直执行下去。 (2)G=address打入等号和程序执行的起始地址。程序开始执行后一直执行下去。 (3)G[=address]address[address„]。这种格式意味着起始地址可取(1)或(2)的规定,可设一个或多个断点地址。DEBUG程序中允许最多可设置10个断点,这些断点地址的次序是任意的。所谓断点是指程序执行到这个地址时立即停止,并显示CPU内部所有寄存器的内容以及全部标志位的状态和一条将执行的指令。主程序有两个或多个分支时,可以在每个分支上设置一个断点。这样可以观察每个分支执行的情况。为此可以在G命令中设置多个断点。当然在一次运行时,只能停在其中的一个断点上。程序员心中确定了断点地址后,就

相关文档
最新文档