汇编语言上机 实验一 DEBUG常用命令及8086指令使用

合集下载

实验一 Debug常用命令及80x86指令的使用

实验一 Debug常用命令及80x86指令的使用

实验一 Debug常用命令及80x86指令的使用实验目的:通过实验掌握下列知识:1、DEBUG常用命令: A,U,D,E,R,T,G,Q。

2、80x86寄存器: AX/EAX,BX/EBX,CX/ECX,DX/EDX,FLAG,IP/EIP3、80x86常用指令: MOV/MOVSX/MOVZX,ADD/ADC,SUB/SBB,DAA,XCHG等。

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

2、用命令 E 18E4:100 'A' 将'A'的ASCII码填入内存。

3、用命令 D 18E4:100 观察内存中的16进制码及屏幕右边的ASCII字符。

4、用命令 E 18E4:100 41 重复上二项实验,观察结果并比较。

5、用命令 E 18E4:100 30 31 32 …… 3F将30H-3FH写入地址为100开始的内存单元中,再用D命令观察结果,看键入的16进制数是什么字符的ASCII码?6、用R 命令检查各寄存器内容,特别注意AX,BX,CX,DX,IP及标志位中ZF,CF和AF的内容。

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

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

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

并注意标志位有无变化。

4)用G命令运行这些指令,每运行一行检查并记录有关寄存器及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命令检查键入的程序及对应的机器码。

汇编实验报告(-)调试程序DEBUG的使用

汇编实验报告(-)调试程序DEBUG的使用

汇编实验报告(-)调试程序DEBUG的使用《汇编语言程序设计》实验报告实验一调试程序DEBUG 的使用一、实验目的通过实验掌握下列知识:1、DEBUG命令:A,T,D,F,G;2、数据在内存中的存放方式和内存操作数的几种寻址方式;3、汇编指令:INC,DEC,LOOP,INT 3的应用;4、汇编语言伪指令:BYTE PTR和WORD PTR的应用。

二、内容及步骤1.DEBUG 命令使用表 1.1 DEBUG命令****命令的使用中注意:****①字母不分大小写;②②只使用16 进制数,没有后缀字母;③分隔符(空格或逗号)只在两个数值之间是必须的,命令和参数间可无分隔符;④每个命令只有按了回车键后才有效,可以用Ctrl+Break中止命令的执行;⑤命令如果不符合Debug 的规则,则将以“error”提示,并用“^”指示错误位置。

许多命令的参数是主存逻辑地址,形式是“段基地址: 偏移地址”。

其中,段基地址可以是段寄存器或数值;偏移地址是数值。

如果不输入段地址,则采用默认值,可以是缺省段寄存器值。

如果没有提供偏移地址,则通常就是当前偏移地址。

1、开机后,切换到命令提示符窗口下,出现提示符后键入命令DEBUG, 进入调试环境,显示提示符 '- '。

2、用命令 F 200 220 'AB' 将'AB'的两个ASCII码循环填入内存。

注:第一个参数200是当前段的起始偏移地址,第二个参数220是终了偏移地址,第三个参数‘AB’是被填入的数值,若不给出第二个参数则填入128(8行)个字节。

3、用命令 D200 观察内存中的十六进制码及屏幕右边的ASCII字符。

图1-1 Fill、Dump命令调用对主存操作的命令还支持地址范围这种参数,它的形式是:“开始地址结束地址”(结束地址不能具有段地址),或者是:“开始地址L 字节长度”。

D(Dump)命令显示主存单元的内容,它的格式如下(分号后的部分用于解释命令功能,不是命令本身):D [地址] ;显示当前或指定开始地址的主存内容D [范围] ;显示指定范围的主存内容图1-2 D命令调用左边部分是主存逻辑地址,中间是连续16 个字节的主存内容(16进制数,以字节为单位),右边部分是这16个字节内容的ASCII字符显示,不可显示字符用点“.”表示。

所有实验电子版报告

所有实验电子版报告

实验报告课程:汇编语言上机实验专业:电子信息科学与技术班级:11电子1班学号:119050244098姓名:徐睿昀物理与电子信息学院目录实验一 DEBUG常用命令及8086指令使用 (1)实验二内存操作数及寻址方法 (5)实验三汇编语言程序上机过程 (10)实验四数据串传送和查表程序 (13)实验五屏幕字符显示程序 (19)实验六屏幕字符显示程序 (23)实验七分枝程序 (27)实验八多重循环程序 (33)实验九子程序 (37)汇编语言程序设计实验报告1学号:119050244098 姓名:徐睿昀实验日期:2013 10 20 实验名称:实验一 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的内容。

80868088汇编语言上机调试与实验指导

80868088汇编语言上机调试与实验指导

2、DEBUG的常用命令
1)显示、修改寄存器命令 R
格式:R[寄存器名]
功能:若给出寄存器名,则显示该寄存器的内容并可进行修改。缺省寄存器名,则按以下格式显示所有寄存器的内容及当前值(不能修改)。
AX=0000 BX=0004 CX=0020 DX=0000 SP=0080 BP=0000 SI=0000
8)指定文件命令 N
格式:N<文件名或扩展名>
功能:指定即将调入内存或从内存写入磁盘的文件名。该命令应该用在L命令和W命令之前。
9)装入命令 L
格式1:L[起始地址][盘符号][扇区号][扇区数]
1、编辑软件
行编辑软件:
全屏编辑软件:WPS、、、WORD、PE等。
当输入、建立和修改源程序时,可任选一种编辑软件,不要用格式控制符,要求编辑完成的文件扩展名一定是.ASM。
2、汇编程序
有汇编ASM.EXE、宏汇编MASM.EXE及TASM等,一般使用宏汇编MASM.EXE,因它比ASM.EXE功能强。TASM适用于8086/8088~Pentium系列指令系统所编写的汇编语言程序,是比较先进的汇编工具。
Microsoft(R) Macro assemble Version 5.00
Copyright(C) Microsoft Corp 1981-1985,1987 ALL rights reserved
Run file [<file>.EXE]:
List File [nul.map]:
4)汇编命令 A
格式:A[起始地址]
功能:将输入源程序的指令汇编成目标代码并从指定地址单元开始存放。若缺省起始地址,则从当前CS:100地址开始存放。A命令按行汇编,主要是用于小段程序的汇编或对目标程序的修改。

汇编语言上机实验一DEBUG常用命令及8086指令使用

汇编语言上机实验一DEBUG常用命令及8086指令使用

汇编语⾔上机实验⼀DEBUG常⽤命令及8086指令使⽤实验⼀DEBUG常⽤命令及8086指令使⽤实验⽬的:通过实验掌握下列知识:1、8086指令: M OV,ADD,SUB,XCHG等2、DEBUG命令: A,D,E,F,H,R,T,U。

3、ASCII码及⽤16进制数表⽰⼆进制码的⽅法。

内容及步骤:⼀、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 A X,BXMOV AH,35MOV AL,48MOV DX,75ABXCHG A X,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,CX图略。

实验一DEBUG命令实验

实验一DEBUG命令实验

实验⼀DEBUG命令实验实验⼀ DEBUG命令实验⼀.实验⽬的:掌握DEBUG 的基本命令及其功能⼆.实验内容:DEBUG是专门为汇编语⾔设计的⼀种调试⼯具,它通过步进,设置断点等⽅式为汇编语⾔程序员提供了⾮常有效的调试⼿段。

1、DEBUG程序的启动DEBUG的命令格式:[drive:][path] DEBUG [d:][p][filename][.ext][param...]其中:drive: 是指定DEBUG⽂件的磁盘驱动器标识符,DEBUG是外部DOS命令,所以必须把它从磁盘读⼊内存。

若未指定,DOS 将使⽤当前默认磁盘驱动器。

path: 是DOS查找DEBUG⽂件的⼀个⼦⽬录串表⽰的路径。

若未指定,DOS将使⽤当前⼯作⽬录。

d: 是DEBUG将要调试的⽂件所在的磁盘驱动器。

p: 是查找DEBUG将要调试的⽂件所需的⼦⽬录路径,若未指定,DOS使⽤当前⽬录。

filename[.ext] 是DEBUG将要调试的⽂件名。

param 是将被调试的程序(或⽂件)的命令⾏参数。

例如:在DOS提⽰符下,可键⼊命令:C>debugDEBUG所完成的初始化动作,假定⽂件名没有,启动DEBUG:段寄存器CS、DS、ES和SS置为DEBUG程序后的第⼀个段。

指令指针寄存器IP置为100H(程序段前缀PSP后的第⼀个语句)。

堆栈指针SP置为段末或/doc/1f7311358.html暂驻部分的结束地址(其中较⼩的那个地址)。

其余通⽤寄存器均置为0,标志寄存器置为下述状态。

NV UP EI PL NE NA PO NC如果在DOS提⽰符下,可键⼊命令,包含⽂件名:C>debug name.exe段寄存器DS和ES指向PSP。

寄存器BX和CX含有程序长度。

注意:字母不分⼤⼩写;只使⽤16进制数,不加H;分割符只在两个数值之间是必须的,命令和参数之间可有可⽆;键⼊回车键执⾏命令,Ctrl+Break或Ctrl+C中⽌命令的执⾏;如命令不符合DEBUG的规则,则提⽰“error”并使⽤“^”指⽰错误位置。

汇编语言实验一

汇编语言实验一

实验一查看CPU和内存,用机器指令和汇编指令编程一.实验目的:掌握DEBUG 的基本命令及其功能二.实验内容:1. 预备知识:Debug的使用(1) 什么是Debug?Debug是DOS、Windows都提供的实模式(8086方式)程序的调试工具。

使用它,可以查看CPU各种寄存器中的内容、内存的情况和在机器码级跟踪程序的运行。

(2) 我们用到的Debug功能●用Debug的R命令查看、改变CPU寄存器的内容;●用Debug的D命令查看内存中的内容;●用Debug的E命令改写内存中的内容;●用Debug的U命令将内存中的机器指令翻译成汇编指令;●用Debug的T命令执行一条机器指令;●用Debug的A命令以汇编指令的格式在内存中写入一条机器指令。

(3) 进入DebugDebug是在DOS方式下使用的程序。

我们在进入Debug前,应先进入到DOS方式。

用以下方式可以进入DOS:①重新启动计算机,进入DOS方式,此时进入的是实模式的DOS。

②在Windows中进入DOS方式,此时进入的是虚拟8086模式的DOS。

(4) 用R命令查看、改变CPU寄存器的内容1)显示CPU内部所有寄存器内容和标志位状态;格式为:-R2)显示和修改某个指定寄存器内容,格式为:-R 寄存器名若要修改一个寄存器中的值,比如AX中的值,可用R命令后加寄存器名来进行,输入“r ax”后按Enter键,将出现“:”作为输入提示,在后面输入要写入的数据后按Enter 键,即完成了对AX中内容的修改。

若想看一下修改的结果,可再用R命令查看(5) 用Debug的D命令查看内存中的内容1)格式:-d 段地址:偏移地址,Debug将列出从指定内存单元开始的128个内存单元的内容。

使用D命令,Debug将输出3部分内容,如图2.34所示。

中间是部分从指定地址开始的128个内存单元的内容,用十六进制的格式输出,每行的输出从16的整数倍的地址开始,最多输出16个单元的内容。

微机实验一熟悉8086指令编程方法及用DEBUG调试程序的方法

微机实验一熟悉8086指令编程方法及用DEBUG调试程序的方法

实验一熟悉8086指令编程方法及用DEBUG调试程序的方法一.实验目的1.掌握用DEBUG调试汇编程序的方法2.学习8086微处理器的加法运算,传送等指令的用法二.实验内容1.学会如何在DEBUG中建立,查看,调试,修改和运行汇编语言程序的全过程2.学会在DEBUG环境下调试自己编制的程序三.编制程序1.编制两个存放在寄存器中的32位二进制数相加程序2.编制两个存放在寄存器中的4位十进制数(BCD码)相加程序3.编制两个存放在内存中的32位二进制数相加程序四.实验步骤编制程序1:设一个32位二进制数的低16位放在AX,高16位放在CX中;另一个32位二进制数的低16位放在BX,高16位放在DX中,最后的结果存在CX,AX中,若还有进位位则存放在在SI中ADD AX,BX 将两个数的低16位相加,进位存到CF中ADC CX,DX 将两个数的高16位与CF相加,进位存到CF中MOV SI,0 将SI清零ADC SI,0 将进位位存至SIHLT给AX,BX,CX,DX分别赋值分步测试:给AX,BX,CX,DX重新赋值用G命令设置断点并运行:编制程序2:设一个4位十进制数(BCD码)低2位存在AL,高2位存在AH中;另一个4位十进制数(BCD码)低2位存在BL,高2位存在BH中,最后的结果存在AX中,若还有进位则存放在CX中ADD AL,BL 将两个数的低2位(即BCD码8位)相加,进位存到CF中DAA 对AL中的数进行调整,将16进制转换成10进制MOV DL,AL 将AL中的数存储到DL中MOV AL,AH 将第一个数的高2位存储到AL中ADC AL,BH 将两个数的高2位与低2位的进位CF相加,进位存至CF中DAA 对AL中的数进行调整,将16进制转换成10进制MOV CX,O 对CX清零ADC CX,0 将进位存至CX中MOV AH,AL 调整结果顺序MOV AL,DLHLT给AX,BX,CX,DX赋值编制程序3:与第一个程序原理相似,但数据初始存在内存中,不能直接调用,先转移到寄存器中。

汇编语言实验_Debug命令的使用

汇编语言实验_Debug命令的使用

实验一Debug命令的使用一、知识点1、DEBUG简介DEBUG.EXE是DOS提供的用于调试可执行程序的一个工具软件。

在汇编语言程序调试中很常用。

DEBUG的提示符是“-”,所有DEBUG调试命令军在此提示符下输入。

DEBUG命令都是一个字母,后跟一个或多个参数,也可使用默认参数。

DEBUG命令的使用注意问题:(1)字母不分大小写(2)只使用十六进制数,但没有带后缀字母“H”(3)命令如果不符合DEBUG的规则,则将以“error”提示,并以“^”指示出错位置。

(4)每个命令只有按下回车键后才有效,可以用Ctrl+Break终止命令的执行。

2、Debug的调入和退出以WIN2000环境为例,点击“开始/运行…”,在“运行”对话框中输入命令:cmd,然后点击“确定”,进入DOS命令行状态:C:\Documents and Settings\lfy>然后输入命令:>Debug进入Debug调试状态,出现Debug命令提示府“-”,在此提示符下可运行所需要的Debug 命令了。

退出Debug的命令:Q3、Debug常用命令(1)汇编命令A,格式为:- A [地址]功能:从指定地址开始允许输入汇编指令,并将该指令汇编成机器指令代码从指定地址开始存放。

若不指定地址,则系统从默认的地址开始存放。

按回车键退出汇编状态应用:用于调试一条指令或几条指令组成的一个程序段。

(2)显示和修改寄存器命令R,格式为:- R [寄存器名]功能:若指定寄存器,则显示指定的寄存器的内容,并可进行修改;若不要修改,则按Enter 健。

若未指定寄存器,则默认为显示所有寄存器的内容。

应用:常用于通过寄存器的值查看指令的执行结果。

(3)内存单元内容的命令E,格式为:- E 地址[内容表]功能:若指定内容表,则用内容表中的内容代替指定地址开始的存储单元的值;否则,从指定地址开始逐个单元显示其内容,并等待用户修改,按空格键则继续显示下一单元的值,按回车键结束。

汇编实验-DEBUG程序的各种命令

汇编实验-DEBUG程序的各种命令

一、实验目的及要求1. 继续学习使用DEBUG程序的各种命令。

2. 利用DEBUG学习了解计算机取指令、执行指令的工作过程。

3. 掌握8086/8088基本指令的使用方法和功能。

二、实验原理、实验内容DEBUG命令1) G命令格式:G[二起始地址][断点地址]功能:从起始地址幵始执行到断点地址,如不设断点地址,则程序一直执行到终止指令才停止2) P命令功能:执行汇编程序,单步跟踪与T命令不同的是:P命令不会跟踪进入子程序或软中断。

其使用方式与T相同3) N命令功能:指定文件名。

为读/写文件做准备4) W命令功能:向磁盘写内容5) L命令功能:从磁盘将文件或扇区内容读入内存注意:使用该命令前,必须用N命令设定文件名1.按照下列给定步骤完成求累加和程序:程序:MOV BX,1000MOV CX,10MOV AL,0LOP: ADD AL,[BX]INC BXJ:LOOP LOPINT3步骤:1)用A命令将程序键入到100H开始的内存中,在键入时记下标号LOP和J的实际地址,在键入LOOP旨令时LOP用实际地址值代替。

2)用命令N AA将此程序命名为文件AA(文件名可任取)。

3)用R命令将BX:CX改为程序长度值(即最后一条指令后面的地址减去开始地址),用R命令把BX设为: 0000H, CX设为文件长度。

4)用命令W 100将此程序存到AA命名的磁盘文件中。

5)用命令Q退出DEBUG6)用命令DEBUG AAf次调入DEBUGS文件AA,可用U命令检查调入程序。

若调入DEBUG寸忘了加AA文件名,可用N命令和L命令将文件调入。

7)用E命令在内存地址1000H处键入16个数字8)用命令G=100 J(J用实际地址代替),使程序运行并停在断点J 上,检查AX,BX的值是否符合你的预计值。

9)用T命令运行一步,观察程序方向(IP值)和CX值是否与你的估计一样,若不一样,检查程序是否有错。

10)重复G J与T,再检查AX是否正确。

实验5熟悉汇编环境,掌握DEBUG各类常用指令指导书

实验5熟悉汇编环境,掌握DEBUG各类常用指令指导书

实验5熟悉汇编环境,掌握DEBUG各类常用指令指导书实验一熟悉汇编环境,掌握DEBUG各类常用指令一、实验目的:1、掌握8086/8088基本指令的使用方法和功能。

2、初步了解汇编语言程序设计的基本结构和利用DEBUG调试程序的方法。

3、进一步熟悉汇编语言的上机过程。

二、上机实验指导:DEBUG是一个DOS实用程序,是供程序员使用的程序调试工具,可以用它检查内存中任何地方的字节以及修改任何地方的字节。

它可以用于指令执行某个程序以验证程序运行的正确性,也可以追踪执行过程、比较一个指令执行前后的值以及比较与移动内存中数据的范围,读写文件与磁盘扇区。

常用命令有:a (Assemble) 逐行汇编 a [address]c (Compare) 比较两内存块 c range addressd (Dump) 内存16进制显示 d [address]或 d [range]e (Enter) 修改内存字节 e address [list]f (fin) 预置一段内存 f range listg (Go) 执行程序 g [=address][address...]h (Hexavithmetic) 制算术运算 h value valuei (Input) 从指定端口地址输入 i pataddressl (Load) 读盘 l [address [driver seetor]]m (Move) 内存块传送 m range addressn (Name) 置文件名 n filespec [filespec...]o (Output) 从指定端口地址输出 o portadress byteq (Quit) 结束 qr (Register) 显示和修改寄存器 r [register name]s (Search) 查找字节串 s range listt (Trace) 跟踪执行 t [=address] [value]u (Unassemble) 反汇编 u [address ]或rangew (Write) 存盘 w [address[driver sector secnum]]联机帮助 ?备注:d (Dump) 内存16进制显示时:DEBUG显示的单元内容,左边用十六进制表示每个字节,右边用ASCII字符表示每个字节,·表示不可显示的字符。

汇编语言_debug实验一

汇编语言_debug实验一

2、进入Debug
• • “开始”—“运行”—Debug Alt+ Enter 进行全屏和窗口切换。
3、退出Debug
Q命令
• 常用命令格式:
R命令: R 显示、查看当前CPU中寄存器的内容。 R 寄存器名 在:后输入修改的内容。
D命令: D 段地址:偏移地址 查看内存中指定存储单元中的内容。 D 段地址:起始偏移地址 结束偏移地址 查看内存中指定的一段存储单元中的内容。
实验Debug的使用
查看CPU和内存,用机器指令
和汇编指令编程
• Debug
DOS、WINDOWS提供的实模式(8086 方式)程序的调试工具,可用来查看 CPU各种寄存器中的内容、内存的情况 和在机器码级跟踪程序的运行。
• Debug 的使用
1、Debug的常用命令:
R 命令:查看、改变CPU寄存器的内容。 D 命令:查看内存中的内容。 E 命令:改写内存中的内容。 U 命令:将内存中的机器指令翻译成汇编指令。 T 命令:(单步)执行一条机器指令。 A 命令:以汇编指令的格式在内存中写入一 条机器指令。 Q 命令:退出Debug程序。
ቤተ መጻሕፍቲ ባይዱ
E命令: E 起始地址 数据 数据 数据………. 改写指定地址开始的内存单元中的若干内容。 (所写数据可以是:数字、字符、字符串) E 起始地址+Enter 用提问方式改写内存内容。 U命令: U 起始地址 将指定地址开始的内存单元中的内容翻译为汇 编指令。
T命令: T 单步执行当前一条指令。 A命令: A 内存地址 从指定地址开始的内存单元中写入汇编指令

汇编语言第1次实验报告:DEBUG命令及汇编编程工具的使用

汇编语言第1次实验报告:DEBUG命令及汇编编程工具的使用
2获取计算机只认识机器语言的直观感受;
3熟悉汇编语言编程工具的使用。
实验环境
1X86系列桌面系统;
2UltraEdit-32、TASM、TLINK、TD。
实验内容
1用r命令观察寄存器及各标志位:
-r
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
四川大学计算机学院、软件学院
实验报告
学生姓名
夏超
学号
1143041054
班级
113040115
学生专业
计算机科学与技术
学院
计算机学院
课程名称
汇编语言程序设计(第1次实验)
实验时间
2012年10月9日
实验项目
DEBUG常用命令实践及编程初步
报告撰写时间
2012年10月9日
实验目的
1学习DEBUG常用命令,掌握观察寄存器和内存单元的方法;
DS=13AE ES=13AE SS=13AE CS=13AE IP=0100 NV UP EI PL NZ NA PO NC
用d命令观察内存
观察200h单元的内容15h及所在段的段基址13AEh;
计算该单元的物理地址:13CEh;
用不同的段基址和偏移量观察上述物理地址的内容:
13CE:00;
13BE:100;
>anyshow;
4用集成编程工具编译、连接和执行AnyShow.asm。
小结
这次实验课让我认识到计算机的一些很基础的知识,加深了对编译语言和编译原理的理解,也了解到了一些基本的编译语言的基本指令,提升了对编译语言的兴趣,对编译语言的实际用途有了更深的了解。

汇编语言上机步骤与DEBUG常用命令的使用

汇编语言上机步骤与DEBUG常用命令的使用
(3)掌握用断点执行或单步执行来检查和调式程序的方法; (4)进一步了解 8086/8088CPU 内部寄存器的功能; (5)掌握访问段式存储器结构地址的表示方法
【实验类型】 验证型实验 【实验内容及要求】 1、编辑源程序:将课本 102 页的代码输入到计算机,并保存(源程序可以不用 写到实验报告上) 2、对源程序进行汇编,生成目标文件,写出相应的命令 3、对目标文件进行连接,生成可执行文件,写出相应的命令 4、用 DEBUG 程序调试生成的可执行文件:按以下要求完成
点 10]
-T[=地址]
在指定地址执行一条指令后暂停
-T[=地址]n
在指定地址执行 始显示 80H 字节存储单元
内容
-D 起始地址 终 显示指定地址范围内存储单元内容
止地址
-E 地址 修改内 从指定地址开始逐个单元修改存储内


-S 起始地址 终止地址 被 从指定地址范围内查找字
⑴用反汇编 U 命令显示程序及目标码,把结果写在实验报告上。 ⑵用 R 命令查看各寄存器的情况,把结果写在实验报告上。 ⑶写出第四条指令的逻辑地址,段地址及偏移地址。 ⑷用单步命令 T 或断点命令 G 执行程序到 RET 处,并写出用 T 命令执行头 5 条指令的过程 及 G 命令的执行过程。 ⑸写出用 D 命令检查程序执行前后 x,y,z 的内容。 ⑹用 E 命令修改数据段中某一存储单元的内容。
4.6 用 E 命令修改数据段中某一存储单元的内容。
结束 DEBUG 运行,返回 DOS
生成目标文件
4.1 用反汇编 U 命令显示程序及目标码
4.2 用 R 命令查看各寄存器的情况
4.3 写出第四条指令的逻辑地址,段地址及偏移地址。
逻辑地址:13E4:0004 段地址:13 CF 偏移地址:0004

实验一DEBUG主要命令简介

实验一DEBUG主要命令简介

OV DN EI NG ZR AC PE CY
NV UP DI PL NZ NA PO NC
· 显示和修改某个具体寄存器内容,其格式为: -R register name 例如,键入 -r ax 系统将响应如下: AX F1F4 : 即AX寄存器的当前内容为F1F4,如不修改则按Enter键, 否则,可键入欲修改的内容,如: -r bx BX 0369 : 059F 则把BX寄存器的内容修改为059F
二、 DEBUG的主要命令
1) 显示存储单元的命令D(DUMP)
格式为: -D [address] 或 -D [range]
说明:

D 2000:0100 (同时指明段地址和偏移地址) (只给出偏移地址默认的段地址是DS) 地址表示举例 D 100 D ES:100 (用符号指明段地址)

D 0100 0110 (由首地址和末地址指定范围) 范围表示举例 D 100 L 20 (由首地址和长度指定范围) D ES:100 (未指定范围,默认长度是80H)
18E4:010C C70608020202 MOV
可见以上两种格式是等效的。
WORD
PTR
[0208],0202
7) 跟踪命令T(Trace),有两种格式
·逐条指令跟踪 -T [=address] 从指定地址起执行一条指令后停下来,显示所有 寄存器内容及标志位的值。如未指定地址则从当 前的CS:IP开始执行。 ·多条指令跟踪 -T[=address][value] 从指定地址起执行n条指令后停下来,n由value 指定。
例如,按指定范围显示存储单元内容的方法为: - d 100 120 ****:0100 C7 06 04 02 38 01 C7 06 - 06 02 00 02 C7 06 08 02 G...8.G.....G... ****:0110 02 02 BB 04 02 E8 02 00 - CD 20 50 51 56 57 8B 37 ..;..h..MPQVW.7 ****:0120 8B

实验一-8086汇编语言上机调试及基本操作.

实验一-8086汇编语言上机调试及基本操作.

实验一:8086汇编语言上机调试及基本操作(验证性)1、实验目的:(1)掌握常用DEBUG命令: G,D,R,T,U,Q。

(2)掌握工具软件EMU8086。

(3)掌握完整程序设计方法的格式,能正确书写数据段,代码段等。

(4)掌握简单的数值转换算法2、实验说明:计算机中的数值有各种表达方式,这是计算机的基础。

掌握各种数制之间的转换是一种基本功。

3、程序框图:对于0-999(即000H-3E7H)范围内的二进制数4、参考程序:; 将AX中的三位数拆为三个BCD码, 并存入Result 开始的三个单元DATA SEGMENT; 数据段RESULT_1 DB 1RESULT_2 DB 1RESULT_3 DB 1DATA ENDSSTACK SEGMENT STACK ; 堆栈段STA DB 64 DUP(0)STACK_TOP DB 0STACK ENDSCODE SEGMENT; 代码段ASSUME CS:CODE , DS:DATA , ES:DATA , SS:STACKSTART:MOV AX, DATAMOV DS, AX ; 设置数据段MOV AX, STACKMOV SS, AX ; 设置堆栈段LEA SP, STACK_TOP ; 设置栈顶指针MOV AX, 2afHMOV CL, 100DIV CLMOV RESULT_1, AL ; 除以100, 得百位数MOV AL, AHMOV AH, 0MOV CL, 10DIV CLMOV RESULT_2, AL ; 余数除以10, 得十位数MOV RESULT_3, AH ; 余数为个位数MOV AX,4C00H ; 返回DOSINT 21H ;CODE ENDSEND START ; 最后一行要按回车键5、实验及报告要求:1)用合适的编辑软件编辑以上源文件并存入合适目录;要求补充注释未注释的伪指令和指令;2)分别在DOS和Windows下编译、连接生成可执行文件,比较两个环境下生成的机器码的长度和内容;试指出第2、5、7、10、14条指令的IP和机器码。

8086汇编语言程序设计debug调试命令

8086汇编语言程序设计debug调试命令

—— ZR为“0”,
NZ不为“0”
—— AC有半进位,NA无半进位
PF:奇偶标志
CF:进位标志
—— PE偶数,
—— CY有进位,
PO奇数
NC无进位
实验内容:
1、用AL寄存器、MOV、ADD、SUB编程完
成算术运算(4个小题任选2个)。
2、用直接寻址、寄存器间接寻址、变址寻址
三种方法编程,完成从偏移地址3000H开始
实验一 运用DEBUG调试工具编程 实验目的:
1、掌握DEBUG下的主要命令及在DEBUG下
编写简单程序、调试程序的方法;
2、理解CPU各种寄存器的作用: CS、IP、AX、、、、;
3、理解那些指令执行时对标志位有影响
DEBUG的功能:
DEBUG是专门为汇编语言设计的调 试工具软件,它通过单步、设置断点等
-RDS
-RF
;显示并可修改DS的内容。
(8) Q(退出):
退出DEBUG,该操作不保护文件。
-Q
标志位:
OF:溢出标志
DF:方向标志
“1”
—— OV溢出,
—— DN减量,
“0”
NV没溢出UP增量源自IF:中断允许标志 —— EI允许,
SF:符号标志 —— NG负数,
DI禁止
PL正数
ZF:“0”标志
AF:半进位标志
;从CS:211H开始输入2个字节的内容
-E 110 „anything‟
;输入从DS:110H开始的字符串
⑹ D(显示存储器的内容):
默认寄存器是DS,格式是: -D段地址:偏移地址
;显示80H个字节的内容。
-D
显示从上一次结束处开始的80H个字节 的内容。

实验报告一:DEBUG命令的使用

实验报告一:DEBUG命令的使用

DEBUG命令的使用
一、实验目的
1.练习简单的DOS命令(DIR, CD,MD ,CLS)
2.学习使用DEBUG程序的常用命令。

(R,D,E, A,U,T, G,Q)
3.了解8086内存地址空间分配
二、实验任务
1.用DIR命令查看当前工作目录的文件。

2.用命令 CD进入下一级子目录,用命令 MD建立子目录。

3.用命令 CLS清屏。

4.用R命令查看8086/8088 CPU在开机后执行的第一条指令。

(8086/8088 CPU在开机后
执行的第一条指令在内存FFFF:0H开始处。


实验步骤:
5.用命令D查看DS:200~22F和F000:200~22F两内存块内容,用命令F将字符“A”
分别填入这两个内存块,比较填入前后结果,了解可读写内存RAM和只读内存ROM 的区别。

实验步骤及实验现象:
6.PC机主板上的ROM中写有一个生产日期,在内存FFF00H~FFFFFH的某个单元中,
请找到这个生产日期并试图改变它。

实验步骤:
三、实验报告
1.记录CPU在开机后执行的第一条指令。

2.说明可读写内存RAM和只读内存ROM的区别。

3.记录任务4、5、6的产生的现象,说明原因。

4.针对实验目的认真做小结。

实验一 DEBUG命令实验

实验一  DEBUG命令实验

实验一DEBUG命令实验一、实验目的1、熟悉常用debug命令的使用方法和功能,为今后调试程序做准备。

2、熟悉8086内部寄存器的作用和8086的内存组织结构。

二、实验内容:1.进入文件:操作:开始----运行------cm d↙-----debug↙屏幕显示debug提示符“-“在该提示符下可以输入各种debug命令。

在debug状态下默认十六进制。

2.查看内存单元内容命令:D格式:—D地址↙—D地址范围↙(即首地址末地址)例如:—D 1000:2000↙显示128个字节内容—D 2000↙显示128个字节内容2000是偏移地址—D 200 300↙显示100个字节内容200,300是偏移地址3.修改内存单元命令:E格式:—E 地址↙A: 逐个修改内存单元内容,按空格键下移,回车键结束。

—E 地址内容清单↙例如:—E DS:100↙(:1234_2345↙然后查看下)—D DS:100↙B: 用清单中的内容替换指定地址开始的内存单元内容。

例如:—E 200 “abcdef”↙(然后用D命令查看下)4.填充内存单元内容命令:F格式:—F 地址范围内容清单↙—F 起始地址L 字节个数清单↙用清单中的值填写指定范围内的存储单元。

字节个数应为十六进制数。

例如:—F 18E4:0100 0105“123456”↙—F 200 L 10 “A”↙5.显示和修改寄存器内容命令:R格式:①—R↙显示cpu内部所有寄存器内容和标志位状态。

②—R寄存器名↙显示和修改某个指定寄存器内容。

例如:—R AX↙③—RF↙显示和修改标志位状态。

6.内存比较命令:C格式: —C 源数据块首地址L 长度目的数据块首地址↙功能:比较两个数据块的内容。

例如:—C 100 L 20 200↙若两个数据块的内容相同,则不显示任何信息,若不同,则显示出不同字节单元的内容及其地址。

7.十六进制运算命令:H格式:—H 数据1 数据2↙功能:计算两个十六进制数的和,差。

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

实验一DEBUG常用命令及8086指令使用
实验目的:
通过实验掌握下列知识:
1、8086指令: M OV,ADD,SUB,XCHG等
2、DEBUG命令: A,D,E,F,H,R,T,U。

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

内容及步骤:
一、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,347FH
7、用R 命令检查各寄存器内容,特别注意AX,BX,CX,DX,IP及标志位中ZF,CF
和AF的内容。

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

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

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

并注意标志位有无变化。

2、加减法指令:
1)用A命令在内存100H处键入下列内容:
MOV AH,34
MOV AL,22
ADD AL,AH
SUB AL,78
MOV CX,1284
MOV DX,5678
ADD CX,DX
SUB CX,AX
SUB CX,CX
图略。

2)用U命令检查键入的程序及对应的机器码。

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

实验报告要求:
1、16进制数加减法手算结果及实验结果
2、8086常用指令练习部分的逐条运行记录,思考结果及自编程序运行记录 (列出自编程序)。

附:
DEBUG 使用:
1、打 DEBUG 进入 DEBUG,显示提示苻 '_ '。

2、退出DEBUG命令:Q
3、显示内存命令:D 起始地址结束地址
4、修改内存命令:E 起始地址,连续修改打空格键。

打回车键退出E命令。

5、检查寄存器命令:R
标志位显示 1 0
CF CY NC
ZF ZR NZ
SF NG PL
AF AC NA
OF OV NV
PF PE PO
DF DN UP
IF EI DI
6、修改寄存器命令:R 寄存器名
7、小汇编命令:A 起始地址,不输入指令打回车键退出A命令。

8、反汇编命令:U 起始地址结束地址
9、文件命名命令:N 盘号:文件名
10、读文件命令:L 内存地址
11、写文件命令:W 内存地址
10、读扇区命令:L 内存地址盘号(0--A:,1--B:) 扇区号扇区数
11、写扇区命令:W 内存地址盘号扇区号扇区数
12、运行命令:G=起始地址结束(断点)地址
13、单步命令:T=起始地址运行指令数,进入子程序内部。

14、单步命令:P=起始地址运行指令数,不进入子程序内部。

15、内存搬家命令:M 起始地址结束地址目的地址。

相关文档
最新文档