贵州大学微机原理(汇编语言)实验报告-Ex01-利用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字符显示,不可显示字符用点“.”表示。
熟悉、使用DEBUG调试工具实验报告
实验目的:借助DEBUG程序发现汇编语言程序的错误并加以改正实验过程:一,在debug环境下建立和汇编程序(1)进入debugC:\debug 回车(2)输入程序并汇编-A 100 回车0AF0:0100 mov dl,38 回车0AF0:0102 mov ah,2 回车0AF0:0104 int 21h 回车0AF0:0106 int 20h 回车0AF0:0108 回车(3)运行程序-g=1008Program terminated normally如果想分析该程序的指令,可使用反汇编命令U(4)反汇编-u 100,108 回车0AF0:0100 B238 MOV DL,30AF0:0102 B402 MOV AH,00AF0:0104 CD21 INT 210AF0:0106 CD20 INT 200AF0:0108 56 PUSH SI(5)将机器指令程序送到起始地址为200h的单元-e 200 b2,38,b4,02,cd,21,cd,20,56-g=2008Program terminated normally-二,常用debug命令(1)显示,修改寄存器内容显示所有寄存器内容格式:-r 回车功能:以十六进制形式显示cpu内部个寄存器的值;以符号形式显示标志寄存器的各标志位(除tf外)的值;并将CS:IP所指的内存内容反汇编成一条指令,可视为将要执行的指令。
如:-r 回车AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000DS=0AF0 ES=0AF0 SS=0AF0 CS=0AF0 IP=0200 NV UP EI PL NZ NA PO NC0AF0:0200 B238 MOV DL,38知:cs=0AF0h,IP=0100h修改寄存器格式:-r 寄存器名回车-r dsDS 0AF:0AE0-rds的内容由原来的0af0h修改为0ae0h修改标志值格式:-rf例:-rfNV UP EI PL NZ NA PO NC -ov ng 回车将of,sf的值分别修改为1。
汇编第一次实验报告
课程名称:汇编语言程序设计实验名称:DEBUG调试程序的使用姓名:胡彬彬专业:计算机科学与技术班级:计算机14级2班学号:1404010210计算机科学与技术学院实验教学中心2016 年 4 月12 日实验项目名称:DEBUG调试程序的使用一、实验目的1.熟悉 DEBUG 调试程序中的常用命令。
2.学会在 DEBUG 下调试运行汇编语言源程序。
二、实验内容1.熟悉DEBUG常用命令的使用: A、U、D、E、R、G、T、L、W、Q常用命令。
2.在DEBUG下编写汇编语言程序,实现多字节(5个字节)十进制加法。
三、实验用设备仪器及材料硬件:计算机软件:DEBUG调试软件四、实验原理及代码-A010013E0:0100 MOV BX,013013E0:0103 MOV SI,014013E0:0106 MOV CX,513E0:0109 MOV AL,[BX]13E0:010B ADD AL,[SI]13E0:010D DAA13E0:010E MOV [BX+20],AL13E0:0111 INC BX13E0:0112 INC SI13E0:0113 LOOP 010913E0:0115五、实验操作步骤1.在【开始菜单】\【程序附件】\【命令提示符】下,进入 DOS环境。
或在【开始菜单】\【运行】下,直接键入cmd进入。
2.在DOS目录下启动DEBUG。
3.熟悉DEBUG常用命令,详细记录每一步所用的命令及查看结果的方法和具体结果。
4.在DEBUG下编写程序,实现多字节十进制加法实验。
六、实验结果分析。
汇编语言实验报告1
攀枝花学院实验报告实验课程:汇编语言课程实验实验项目:DEBUG编程与调试实验日期:2011.11.7 系:计算机学院班级:10级计本学号:201010801035一.实验目的:1.掌握DEBUG常用命令。
2.掌握汇编语言程序的一般格式3.掌握使用masm编译和连接汇编语言程序。
4.学习如何用debug进行程序调试二.实验设备:1.硬件环境微型计算机(Intel x86系列CPU)一台2.软件环境Windows98/2000/XP操作系统、调试程序DEBUG.EXE。
三.实验步骤:1.DEBUG程序的调用打开windows命令窗口选择“开始”→”运行”在windows98/xp环境中,输入“command”命令,在windows2000环境中,输入“cmd”命令;2.启动debug在命令窗口中启动DEBUG,可键入命令DEBUG 文件名 [参数]在DEBUG启动成功后,将出现提示符“-”,此时就可用DEBUG命令来调试程序。
关于使用命令的几点说明:●命令是单个字母●出现提示符“-”后才能输入命令,在按“回车”键后,该命令才开始执行。
●DEBUG把键入的数字均看成十六进制数2. 汇编语言程序上机过程四.实验内容:1.DEBUG的主要命令(1)显示与修改寄存器1).r [寄存器名]功能:显示和修改寄存器内容-r ax ;显示和修改某个寄存器内容2)rf功能:显示和修改标志位(2) 显示与修改寄存器存储单元1)d [范围]功能:显示指定范围内的内存单元内容。
其中范围的格式:①d 起始位置从开始位置显示128个字节的内容例:d 1381:100说明:●xxxx:yyyy——前面4位十六进制数是内存单元的段地址,后面4位十六进制数是内存单元的偏移量;●中间显示区域是内存单元(十六进制的形式),每行显示16个字节的内容;●右边以“字符”显示内存单元值。
②d 起始位置结束位置从开始位置显示到结束位置例:d ds:0 f③d 起始位置L 长度从从开始位置显示指定长度的内容例:d ds:0 L 102) e 地址字节值表功能:用值表中的值替换从“地址”开始的内存单元内容例:d 1af5:0e 1af5:0 12 34 56d 1af5:03)f 范围字节值表功能:用值表中的值填充指定范围的内存单元内容,其中范围通常是1)中的后两种格式。
汇编实验报告--利用DEBUG调试汇编语言程序段
实验一利用DEBUG调试汇编语言程序段学生姓名:何茂杰学号:2010305104 专业班级:10级计算机本科一班指导老师:文远熔实验日期:实验成绩:一、实验目的1.熟悉DEBUG有关命令的使用方法;2.利用DEBUG掌握有关指令的功能;3.利用DEBUG运行简单的程序段。
二、实验内容1.学会使用debug的A, U, T, D, E等命令。
2.编写一个程序计算Y=(X*U+V)/1000,X、Y、U、V(均为16位有符号二进制数)的存放地址自己确定。
分别使用两种以上的寻址方式对X、Y、U、V寻址。
三、实验环境PC微机DOS操作系统或Windows 操作系统四、实验要求1.仔细阅读有关DEBUG命令的内容,对有关命令,要求事先准备好使用的例子;2.学会使用debug的A, U, T, D, E等命令。
五、主要实验步骤(一)学会使用DEBUG中的简单命令:1.打开DOS,开始——运行——cmd。
2.进入DEBUG,在DOS下输入DEBUG,直接进入。
3.在DEBUG中输入D,查看D命令结果,输入D 1000,查看指定地址的数据。
4.在DEBUG中输入E100,修改地址100的数据,再输入D100,查看修改后的结果。
5.在DEBUG中输入R,查看当前寄存器的内容。
6.在DEBUG中输入A,输入以下代码:mov ax,1234mov [1000],ax输入T显示第一条命令运行结果,再次输入T,显示第二条命令运行结果,输入d1000,验证命令运行结果。
7.在DEBUG中输入A,输入以下代码:mov ax,1234mov [1000],ax输入G [=起始地址] [结束地址]↓,再输入D1000,验证命令运行结果。
8.在DEBUG中输入U [起始地址] [结束地址],从[起始地址]开始进行反汇编。
9.在DEBUG中输入Q,推出DEBUG程序。
(二)用DEBUG验证乘法、除法、加法、减法等功能:1.验证加法和带进位加,使用A命令,在DEBUG中键入以下代码:mov ax,f111mov bx,f222mov cx,2mov dx,3add ax,bxadc cx,dx使用G命令查看结果2.验证减法和带借位减法,使用A命令,在DEBUG中键入以下代码:mov ax,2mov bx,3mov cx,5mov dx,2sub ax,bxsbb cx,dx使用G命令查看结果3.验证乘法和除法,使用A命令,在DEBUG中键入以下代码:乘法:mov al,b4mov bl,11mul bl使用G命令查看结果除法:mov ax,400mov bl,b4div bl使用G命令查看结果六、实验数据及处理结果反汇编:执行情况:七、思考题启动DEBUG后,要装入某一个.EXE文件,应通过什么方法实现?答:进入DOS,输入DEBUG xxx.exe,其中xxx为文件名。
桂电汇编实验报告
实验一汇编语言上机过程和Debug常用调试命令一.实验目的:学习程序设计的基本方法和技能,熟练掌握用汇编语言设计、编写、调试和运行程序的方法。
二.实验题目:熟悉与实验有关的系统软件(如编辑程序、汇编程序、连接程序和调试程序等)的使用方法。
在调试过程中,学习及掌握debug程序的各种操作命令。
三.问题描述:试编写一程序:比较两个字符串string1和string2所含的字符是否相同,若相同则显示‘match’; 否则,显示‘no match’。
四.方法说明:a)使用ws、tc或EDIT编辑程序来建立源文件,然后存盘,使系统返回DOS。
b)用汇编程序masm(或asm)对源文件汇编产生目标文件obj如:汇编指示出错则需重新调用编辑程序修改错误,直至汇编通过为止。
c)用连接程序link 产生执行文件EXE.d)执行程序,可直接从DOS执行程序。
e)使用debug程序调试程序的方法。
五.实验步骤:1.调用字处理程序EDIT 建立以sample.asm文件datarea segmentstring1 db‘move the cursor backward.’string2 db‘move the cursor backward.’mess1 db ‘Match..’,13,10,’$’mess2 db ‘No match!..’,13,10,’$’datarea endsprognam segmentmain proc farassume cs:prognam,ds:datarea,es:datareastart:push dssub ax,axpush axmov ax,datareamov ds,axmov es,axlea si,string1lea di,string2cldmov cx,25repz cmpsbjz matchlea dx,mess2jmp short dispmatch:lea dx, mess1disp:mov ah,09int 21hretmain endpprognam endsend start2.对源文件汇编产生目标文件objD:\masm 文件名。
实验一 利用 DEBUG 调试汇编语言程序段
实验名称实验一利用 DEBUG 调试汇编语言程序段一、实验目的1.熟悉 DEBUG 有关命令的使用方法;2.利用 DEBUG 掌握有关指令的功能;3.利用 DEBUG 运行简单的程序段。
二、实验要求1.仔细阅读有关 DEBUG 命令的内容,对有关命令,要求事先准备好使用的例子;三、实验环境DOS 操作系统四、实验内容1.进入和退出 DEBUG 程序;1)开始—运行点确定进入DOS命令窗口图1进入DOS命令窗口2)在命令窗口中输入 dubug 进入 debug 程序图2进入 debug 程序3)进入 debug 窗口后,输入 q 命令退出 debug图3退出 debug2.学会 DEBUG 中的1)D 命令(显示内存数据 D 段地址:偏移地址)例 1:-D100 ;显示 DS 段, 0100 开始的 128 个字节内容-D ;默认段寄存器为 DS,当前偏移地址(刚进入 debug 程序偏移地址为 0100H)图4默认显示 DS 段内容-D DS:100 ;显示 DS 段, 0100H 开始的 128 个字节内容图5显示 DS 段内容-D CS:200 ;显示 CS 段, 0200H 开始的 128 个字节内容图6显示 CS 段内容-D 200:100 ;显示 DS 段, 0200:0100H 开始的 128 个字节内容图7显示 DS段0200:0100H内容-D 200 ;显示 DS 段, 0200H开始的128个字节内容图8显示 DS段0200H开始的内容-D 100 L 10 ;显示 DS 段, 100H 开始的 100H 个字节内容图9显示 DS段100H开始的100H字节内容2)E 命令(修改指定内存)例 1:-E100 41 42 43 44 48 47 46 45-D 100,L08结果:073F:0100 41 42 43 44 48 47 46 45-e 100 修改内存内容-d 100,L08 查看刚才修改的内存内容图10 修改和查看DS段100H开始的80H字节内容例 2: -E 100073F:0100 41. 42 : 42 是操作员键入此命令是将原 100 号内存内容 41 修改为 42,用 D 命令可察看。
微机原理与接口技术 DEBUG 调试程序的应用(1)
实验一Debug 调试程序的应用一、实验目的1.掌握Debug常用命令的应用。
2.利用Debug调试可执行文件(*.EXE)。
二、实验内容1. 进入Debug,使用A命令将源程序写入100H开始的内存并汇编,然后使用G命令运行程序,接着用U命令反汇编,将机器指令送到起始地址为200H 的若干单元并加以验证,用Q命令退出Debug,返回DOS提示符。
2. 进入Debug,使用A命令将源程序写入100H开始的内存并汇编,然后使用G命令运行程序,接着用D命令观察运行结果后,在用U命令反汇编,用Q命令退出Debug,返回DOS提示符。
3.进入Debug,用A命令写入汇编源程序,接着用R命令显示状态,并用T命令单条执行指令,注意在执行命令的同时观察相应寄存器的状态。
4.练习使用填充命令F、搬家命令M和比较命令C。
5.利用Debug调试可执行文件(*.EXE)。
三、实验仪器、材料1. 软件DOSBOX、MASM2. PC微机一台四、实验步骤1.进入debug,使用A命令:-a100写入以下代码:MOV DL, 33H ;字符3的ASCII送DLMOV AH, 2 ;使用DOS的2号功能调用INT 21H ;进入功能调用,输出‘3’INT 20H ;执行INT 20H中断服务程序,结束程序,返回DOS 写完回车两下,再用-g=起始地址结束地址命令回车,再用-u命令回车,用-d100可得如图1-1,然后用-e200命令空格依次输入:B2 33 B4 02 CD 21 CD 20回车,用-d200可得如图1-2,用q退出debug。
2.进入dedug,使用A命令:-a300 写入以下代码MOV AL, [0120]ADD AL, [0122]DAAMOV BY[0124],ALMOV AL, [0121]ADC AL, [0123]DAAMOV BY[0125],ALINT 20用-g命令,再-d100查看结果如图2-1,在用U命令反汇编,用Q命令退出debug。
汇编语言实验报告
汇编语言实验报告实验一汇编语言的源程序的输入一、实验目的1.通过实验了解和熟悉微机系统的配置2.学习在DEBUG状态下输入汇编源程序的方法3.初步掌握调试(在DEBUG状态下)的过程二、实验原理1.本实验在DEBUG状态下输入汇编源程序,并且用DEBUG命令进行调试,用单步跟踪的方法试验指令的功能;2.以下是给定的参考程序,并在实验时每条指令的“;”等号右边按要求填写指令的分析结果。
三、实验步骤1.开机后进入DOS系统2.用DEBUG的REGISTER命令检查所有寄存器内容,并作记录R[寄存器名]3.用DEBUG的ASSEMBLE命令输入汇编源程序A[内存地址]4.用DEBUG的UNASSEMBLE命令反汇编U[起始地址][终止地址]5.用DEBUG的TRACE命令单步跟踪程序T[起始地址][终止地址]6.用DEBUG的DUMP命令显示存贮器单元的内容四、参考程序及结果MOV AX,2000 ;AL=00MOV DS,AX ;DS=2000NOT AX ;AX=DFFFXOR AX,AX ;AX=0000DEC AX ;AX=FFFFINC AX ;AX=0000MOV BX,2030 ;BH=20MOV SI,BX ;SI=2030MOV [SI],BL ;[2030H]=30MOV WORD PTR[SI],10F ;[2030H]=0F [2030H]=01 MOV DI,SI ;DI=2030MOV [DI+50],BH ;[DI+50]=20MOV BH,[SI] ;BH=0FMOV BL,[DI+50] ;BL=20MOV SP,5000PUSH AX ;AX=0 [SS:4FFEH]=00H [SS:4FFFH]=00H PUSH BX ;BX=0F20 [SS:4FFCH]=20H [SS:4FFDH]=0FH POP AX ;AX=0F20POPF ;F=00000000NEG BX ;BX=F0E0XCHG BX,AX ;BX=0F20STD ;F=01010001STI ;F=01110001CLD ;F=00110001CLI ;F=00010001ADC DI,2050 ;DI=4081 F=00000010ADC SP,DI ;SP=9081 F=10010010ADC AX,1500 ;AX=05E0 F=00000001SUB AX,BX ;AX=F6C0 BX=0F20SHL AH,1 ;AH=ECRCL AX,1 ;AX=D981SHR BX,1 ;BH=07RCR BL,1 ;BL=90MOV CL,4MOV DX,80F0ROL DX,CL ;DX=0F08 CL=04INT 20 ;CS=00A7 IP=1072实验二数据的建立与传送程序一、实验目的1.学习DEBUG命令2.验证指令的功能二、实验原理在DEBUG状态下,输入程序,用G命令进行连续方式执行程序,用DUMP命令查看建立的数据块内容三、参考程序及结果1.在内存1000单元开始,建立00H~0FH~00H 31个数,要求00H~0FH数据逐渐增大,0FH~00H逐渐减小,程序从内存CS:0100H地址开始输入MOV AX ,100HMOV DS ,AXMOV SI,0MOV CL ,0FHXOR AX,AXPPE1: MOV [SI] ;ALINC SI ;INC ALDEC CLJNZ PPE1MOV CX,10HPPE2:MOV[SI],ALINC SIDEC ALLOOP PPE2INT 20H数据块的内容1000:0000:00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 1000:0100:0E 0D 0C 0B 0A 09 08 07 06 05 04 03 02 01 002.把上一程序的执行结果分几种方式传送到以下指定区域(a)该程序从内存CS:0150H开始输入,把数据块传送到15050H 开始的存储区域中MOV AX,1000HMOV DS,AXMOV SI,0MOV DI,5050HMOV CX,1FHPPEA: MOV AL,[SI]MOV [DI],ALINC SIINC DILOOP PPEAINT 20H结果:1000:5050 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 1000:5060 0E 0D 0C 0B 0A 09 08 07 06 05 04 03 02 01 00(b)用串传送指令MOVSB,把数据块传送到15150H开始的区域,该程序从内存CS:0200H开始输入MOV AX,100HMOV DS,AXMOV ES,AXMOV SI,0MOV DI,5150HMOV CS,1FHCLDPPEB: MOVSBLOOP PPEBINT 20H结果:1000:5150 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 1000:5160 0E 0D 0C 0B 0A 09 08 07 06 05 04 03 02 01 00(C)用重复串操作指令”REP MOVSB”把数据传送到15250H开始的区域,该程序从CS:250H地址开始输入MOV AX,1000HMOV DS,AXMOV ES,AXMOV SI,0MOV DI,5250HMOV CX,1FHCLDREPZMOVSBINT 20H结果:1000:5250 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 1000:5260 0E 0D 0C 0B 0A 09 08 07 06 05 04 03 02 01 00(c)用串操作的减量工作方式,把数据传送到25050H开始的区域,该程序从CS:0300H开始输入MOV AX,1000HMOV DS,AXADD AX,AXMOV ES,AXMOV SI,1EHMOV DI,506EHMOV CX,1FHSTDREP MOVSBINT 20H结果:2000:5050 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 2000:5060 0E 0D 0C 0B 0A 09 08 07 06 05 04 03 02 01 00实验四统计学生成绩程序一、实验目的进一步掌握分支程序和循环程序的编写方法二、实验原理设有10个学生的成绩分别为56,69,84,82,73,88,99,63,100和80分。
汇编程序调试实验报告
POP AX;数据出栈
MOV [DI],AX;数据传送
INC DI
LOOP LOP2
MOV AH,4CH;终止进程
INT 21H
CODE ENDS
END START
(二)实例二
要求:编写程序,将内存中某数据块中的正数和负数分开,并分别将这些正数和负数送同
一数据段的两个缓冲区中,并在屏幕上显示正数和负数的个数。
微机原理与接口技术
作
业
班级:
一、实验目的:2
二、实验环境2
三、实验过程3
(一)基础知识储备3
(二)汇编语言程序设计3
(三)汇编程序调试3
四、调试实例4
(一)实例一4
(二)实例二6
(三)实例三9
(四)实例四12
五、实验总结15
(一)实验收获15
(二)实验感悟16
一、实验目的:
汇编语言是一种用助记符表示的程序设计语言。用汇编语言编写的源程序生成的目标
代码短,占内存少,执行速度快,适合于系统软件、实时控制软件、I/O接口驱动等程序
设计。通过本次实验,熟练掌握汇编程序的调试,深入了解MAS汇编语言及其程序设计方
法。
、实验环境
EDIT编辑器、MASME编程序、LINK连接程序、TD调试程序
、实验过程 (一)基础知识储备
1.了解微处理器80486的内部结构、寄存器组、工作模式等基本知识。
4.运行:运行可执行文件,验证程序是否正确。
5.调试:如果运行中有问题,可使用编辑或调试程序进行修改和调试,重复上述步骤,直 到运行正确为止。
四、调试实例
(一)实例一
要求:编写程序,将MBU为起始单元的5个数按相反次序传送到NBUF开始的存储单元中。
微机原理实习报告(带完全汇编源码)
目录一.实习目的 .................................................. 错误!未定义书签。
二、实习内容及要求...................................... 错误!未定义书签。
三、方案和工作原理说明.............................. 错误!未定义书签。
四、程序流程图 .............................................. 错误!未定义书签。
五、程序源代码及注释.................................. 错误!未定义书签。
六、电路的连接 .............................................. 错误!未定义书签。
七、调试中出现的问题、原因及排除方法.. 错误!未定义书签。
一.实习目的本课程的课程设计是自动化专业学生学习完《微机原理及应用》课程后,进行的一次以汇编语言为主,硬件设计为辅的综合训练。
本课程设计的目的在于加深对微机原理基本知识的理解,掌握汇编语言程序设计的基本方法;掌握运用微机原理开发系统的基本方法。
二.实习内容及要求1.实习内容简易电子琴原理:(1) 蜂鸣器输入不同频率的方波,会发出不同的声音;(2) 通过按键,由单片机控制产生不同频率的方波,从而发出不同的声音。
(3) 通过8255的PA口,使G6区的1~7号键由低到高发出1-7的音阶。
2.设计要求从课程设计的目的出发,通过设计工作的各个环节,达到以下要求:1)掌握汇编语言程序设计的基本方法。
2)进一步理解各种接口电路的应用。
例如8255并行接口。
3)掌握利用PC机扬声器发出不同频率声音的方法。
4)理解12864模块的应用。
(此为创新添加部分)三、方案和工作原理说明1.方案基于PC计算机的时钟晶振为1.MHz,利用电脑里面的蜂鸣器发出声音。
实验三:调试程序Debug的使用
16~17春《微机原理》课程实验报告姓名:学号:成绩:实验三:调试程序Debug的使用一、简述对Debug的功能理解。
通过这次实验,我觉得Debug对于汇编语言程序的编写和调试是非常重要的,我们在将所需的程序编好后经过汇编和连接得到的可执行程序往往并不能一运行就成功,而汇编和连接过程只能查出源程序的语法错误,并不能查出功能上的错误和不完善的地方,因此调试过程必须逐段进行,有时甚至是逐条指令的执行,以观察是否达到预期结果,从而发现程序语句编排上的错误。
而Debug正是可以实现这一功能的系统软件,它为我们提供了一个监督和控制程序运行过程的环境和条件,这样我们就可以发现程序中存在的问题,甚至直接修改一些小的问题。
二、按照实验指导书的“实验基本要求”以及“实验内容”的要求,描述相关实验内容的完成情况。
1.DEBUG的基本操作:(1)从WINDOWS进入DOS之后,输入命令启动DEBUG:C:>DEBUG 回车(2)输入R命令,查看和记录CPU各个寄存器的内容:-R回车看到什么?(3)输入A命令,汇编下面的字符“WINDOWS”显示程序(DEBUG调试环境中,默认为十六进制,因此源程序中十六进制数后面不写H):-A 100 ;从偏移地址是0100H处开始写指令MOV AH,2MOV DL, 57 ;57H 是“W”的ASCII码INT 21 ;INT 21是DOS 功能调用,AH=2代表2号功;能。
这3句合起来的功能是:显示DL中的字符MOV DL, 49INT 21MOV DL, 4EINT 21MOV DL, 44MOV DL, 4FINT 21MOV DL, 57INT 21MOV DL, 53INT 21INT 3 ;功能是产生一个断点,不要省略(4)输入U命令反汇编上面的程序:-U 100问:这里100代表什么?答:从偏移地址100处开始反汇编.(5)输入G命令连续运行上面的程序,记录运行结果:-G=100(6)输入E命令把上面程序中的数据57,49,4E,44,4F,57,53依次分别改为57,45,4C,43,4F,4D,45:-E 103 回车(以下同)-E 107-E 10B-E 10F-E 113-E 117(7)输入D命令查看程序机器码的存放情况:-D 100 11E ;看从100开始到11E的机器码(8)输入G命令再连续运行程序,并记录运行结果:-G=100(9)依次输入下面的T命令(单步执行)和G命令(设置断点并启动运行),记录各命令的运行结果:-T=100 回车-G=100 106 回车-G=100 10A 回车-G=100 10E 回车-G=100 11E 回车2.一字节十六进制数转换为ASCII码(只考虑大写字母)用E命令在DS:1000单元中存放十六进制数5A,用A命令从CS:0100单元开始存放下面程序的机器码,并调试运行(DEBUG调试环境中,源程序中十六进制数后面不写H):CS: 0100 8D360010 LEA SI,[1000]0104 8D3E2010 LEA DI,[1020]0108 8A04 MOV AL,[SI]010A 240F MOV BL,AL010C 240F AND AL,0F010E E80E00 CALL 011F0111 80E30 AND BL,F00114 B90400 MOV CX,40117 D2EB SHR BL,CL0119 88D8 MOV AL,BL011B E80100 CALL 011F011E F4 RET011F 3C09 CMP AL,090121 7602 JBE 01250123 0407 ADD AL,070125 0430 ADD AL,300127 8805 MOV [DI],AL0129 47 INC DI012A C3 RET运行结果:1)写出执行上述程序的命令行G=100 。
贵州大学微机原理实验三 -
微机原理与接口技术实验报告学院:计算机科学与信息学院专业:网络工程班级:092 姓名高灿学号0908060383 实验组实验时间2011.11.8 指导教师肖敏成绩实验项目名称实验三汇编程序设计:循环实验目的 1.熟悉8088指令系统,掌握程序设计方法2.熟悉汇编语言编程,掌握串操作指令的使用实验原理在Debug环境下调试汇编程序实验内容1.编写并调试一个排序子程序,其方法为用冒泡法将RAM中的几个单元字节无符号的正整数,按从小到大的次序重新排列。
2.在4000H~400FH中查出有几个字节是零,把个数放在4100H中。
3.在附加段中有一数组,首地址为BUFF,数组中第一个字节存放了数组的长度。
编一个程序在数组中查找0,找到后把他从数组中删去,后续项向前压缩,其余项补0。
4.编程序统计学生的数学成绩,分别归类90~99分,80~89分,70~79分,60~69分及60分以下,并将各段的人数送入内存单元中。
实验环境Debug环境下实验步骤1、数据排序实验程序1)从第一个数开始,依次把相邻的两个数进行比较,即第(N-2)个数与第(N-1)个数比较,第(N-1)个数与第N个数比较等等;若第(N-1)个数不大于第N个数,则两者交换,否则不交换,直到N个数的相邻两个数都比较完为止。
此时。
N个数中的最小数将被排在N个数的最后。
2)对剩下的(N-1)个数重复第⑴步,找到(N-1)个数中的最小数。
3)重复第⑵步,直到N个数全部排序好为止。
4)在4000H~400AH中通过键盘命令输入不等的10个数,运行本实验程序后检查4000H~400AH中内容是否按从大到小排列。
在和PC机联机时,用连续单步方式,可很清楚地看出数据排序时数据移动变化情况。
实验结果STACK SEGMENT STACK 'STACK'TOP LABEL WORDSTACK ENDSCODE SEGMENTASSUME CS:CODE SS:STACK START: MOV AX, STACKMOV SS, AXMOV SP, OFFSET TOPMOV BX, 4000HMOV CX, 10INPUT: MOV AH, 1INT 21HMOV [BX], ALINC BXLOOP INPUTMOV CX, 9L1: MOV BX, 4000HPUSH CXL2: MOV AL , [BX]CMP AL, [BX+1]JA COUNTXCHG AL, [BX+1]MOV [BX], ALCOUNT: INC BXLOOP L2POP CXLOOP L1MOV AX, 4C00HINT 21HCODE ENDSEND START一、实验五数据排序实验:2、找“零”个数程序1)在4000H~400FH的几个单元中输入零,运行本程序后检查4100H中是几个单元数。
微机原理汇编语言的上机过程 实验报告
微机原理技术与接口实验报告学院:专业:班级:姓名:学号:汇编语言程序的上机过程实验目的通过简单地操作了解汇编语言程序的基本内容,体会汇编语言的运行,为以后的实验打下一定的基础。
实验原理及操作步骤一、上机环境要运行调试汇编语言程序,至少需要以下程序文件:▪编辑程序:或其他文本编辑工具软件,用于编辑源程序。
▪汇编程序:MASM.EXE,用于汇编源程序,得到目标程序。
▪连接程序:LINK.EXE,用于连接目标程序,得到可执行程序。
▪调试程序:DEBUG.EXE,用于调试可执行程序。
二、上机过程汇编语言程序上机操作包括:编辑、汇编、连接和调试几个阶段。
1.编辑源程序用文本编辑软件创建、编辑汇编源程序。
常用编辑工具有:、记事本、Word等。
无论采用何种编辑工具,生成的文件必须是纯文本文件,所有字符为半角,且文件扩展名为.asm(文件名不分大小写,由1~8个字符组成)。
2.汇编用汇编工具对上述源程序文件(.asm)进行汇编,产生目标文件(.obj)等文件。
汇编程序的主要功能是:检查源程序的语法,给出错误信息;产生目标程序文件;展开宏指令。
汇编过程如下:在DOS状态下,输入命令:MASM MYFILE.ASM(回车),即启动了汇编程序。
此命令执行后,会出现下面的3行信息,依次按回车键(即选择默认值)即可建立3个输出文件,其扩展名分别为:.OBJ(目标文件),.LST(列表文件)和.CRF(交叉引用文件)。
Object Filename [MYFILE.OBJ]:Source Listing [Nul.LST]:Cross Reference [Nul.CRF]:依次按回车键,进行选择后,汇编程序就对汇编源程序进行汇编。
如果汇编过程中发现有语法错误,则屏幕上会显示出错语言的位置和出错的类型。
此时,需要进行修改,然后再进行汇编。
如此进行,直至汇编无错误,得到目标文件为止。
3.连接汇编产生的目标文件(.obj)并不是可执行的程序,还要用连接程序把它转换为可执行的EXE文件。
汇编语言实验报告1
汇编语言实验报告1贵州大学实验报告纸系别班级姓名学号课程名称微机原理与汇编语言设计成绩评定教师签名:实验时间2012年 12 月 23 日教师:马光喜实验一DEBUG程序的使用一、实验目的1.学习使用DEBUG程序的各种命令。
2.利用DEBUG学习3.了解计算机取指令、执行指令的工作过程。
4.掌握用DEBUG调试自编程序的方法。
二、实验内容DEBUG是专门为汇编语言设计的一种调试工具,它通过步进,设置断点等方式为汇编语言程序员提供了非常有效的调试手段。
1、DEBUG程序的启动DEBUG的命令格式:[drive:][path] DEBUG [d:][p][filename][.ext][param...]例如:在DOS提示符下,可键入命令:C>debugDEBUG所完成的初始化动作,假定文件名没有,启动DEBUG:段寄存器CS、DS、ES和SS置为DEBUG程序后的第一个段。
如果在DOS提示符下,可键入命令,包含文件名:C>debug name.exe段寄存器DS和ES指向PSP。
寄存器BX和CX含有程序长度。
2、DEBUG的主要命令(1)汇编命令A,格式为:-A[地址]该命令从指定地址开始允许输入汇编语句,把它们汇编成机器代码相继存放在从指定地址开始的存储器中。
贵州大学实验报告附 1 页(2)反汇编命令U,有两种格式:1)-U[地址]该命令从指定地址开始,反汇编32个字节,若地址省略,则从上一个U命令的最后一条指令的下一个单元开始显示32个字节。
2)-U范围该命令对指定范围的内存单元进行反汇编。
(3)运行命令G,格式为:-G [=地址1][地址2[地址3。
]]其中地址1规定了运行起始地址,后面的若干地址均为断点地址。
(4)追踪命令T,有两种格式:1)逐条指令追踪:-T[=地址]该命令从指定地址起执行一条指令后停下来,显示寄存器内容和状态值。
2)多条指令追踪:-T[=地址][值]该命令从指定地址起执行n条命令后停下来,n由[值]确定。
微机原理与接口技术(实验一)
实验一汇编语言上机调试工具DEBUG的使用一、调试工具DEBUG使用介绍DEBUG是为汇编语言设计的一种有效工具,它通过单步、设置断点等方式为汇编语言程序员提供了非常有效的调试手段。
DEBUG是独立可执行的程序。
1、 DEBUG程序的调用在DOS的提示符下,可键入命令:C:\DEBUG [驱动器][路径][文件名]屏幕上出现―-‖符号表示已进入DEBUG如键入文件名则DEBUG将指定的文件装入存储器中,用户可对其进行调试。
如未键入文件名,则用户可以用当前存储器的内容工作,可以执行DEBUG的各种命令2、常用DEBUG命令及其操作① _A(汇编)命令格式:A[地址] ;表示对以下输入的指令进行汇编说明:该命令未指定地址时,用CS:100H或上一次A命令的后续地址作起始地址。
输入出错时,显示:ERROR,并重新显示当前地址,等待输人。
举例:_A enter显示:CS段地址:起始偏移地址(输入要汇编的指令)例: 12FE:0100 …………;其中12FE为CS的段基址② _D命令:查看存储器内容格式:D[地址]、或D[范围]说明:该命令用于显示部分内存中的内容。
缺省的段地址是DS,缺省的偏移地址是100H 或上一次D命令的后续地址,缺省的长度为80字节。
显示的格式为:地址十六进制码 ASCII码不可打印字符的ASCII码用‗.‘显示,第一行自动调整边界。
举例:- D15 120该示例显示数据段中偏移地址从15H至120H间的数据区内容。
例: –d 0100 0120 ;查看数据段从偏移地址0100单元开始, 到0120单元的内容。
③ _E命令:显示和修改内存单元内容格式:E[地址]说明:该命令用于显示指定内存单元的内容并等待输入新的值。
举例:- E DS:01000F0E:0100 00.显示0F0E:0100单元的内容为00,小数点表示等待输入新数值,但通过键盘输入数值01后,01显示在小数点右边,如按下空格键后,出现下一个单元的内容在等待输入数据,若要退出E命令可按回车键。
微机原理 实验1(DEBUG的使用)
(3)显示和修改标志位状态 ) 格式: 格式:RF 若不需要修改任一个状态标志,则直接按 若不需要修改任一个状态标志,则直接按enter键; 键 若有一个或多个标志需要修改, 若有一个或多个标志需要修改,则可以输入此标志的 相反值。输入的标志的次序是无关的,输入的各个标 相反值。输入的标志的次序是无关的, 志之间,可以没有空格。 志之间,可以没有空格。 在调试程序DEBUG中提供了测试标志位的手段,它用符 中提供了测试标志位的手段, 在调试程序 中提供了测试标志位的手段 号表示标志位的值。每种标志位的符号表示如下表: 号表示标志位的值。每种标志位的符号表示如下表:
4、运行命令G(Go) 、运行命令 ( ) 格式: 格式:G [=address1] [address2 [address3 . . . ] ] 说明: 指定了运行的起始地址, 说明:address1指定了运行的起始地址,如不指定则从 指定了运行的起始地址 当前的CS:IP开始运行。后面的地址均为断点地址,当 开始运行。后面的地址均为断点地址, 当前的 开始运行 指令执行到断点时, 指令执行到断点时,就停止执行并显示当前所有寄存器 及标志位的内容和下一条将要执行的指令。 及标志位的内容和下一条将要执行的指令。
* 地址的格式为: [段地址 偏移地址 地址的格式为: 段地址 段地址:] 其中,段地址可以是段寄存器名,也可以是一个数值。 其中,段地址可以是段寄存器名,也可以是一个数值。若 命令中没有指定段地址, 命令自动显示DS段的内容 命令中没有指定段地址,则D命令自动显示 段的内容 。 命令自动显示 如:D DS:0100 、D 0400:0200、D 0100 、 * 范围的格式为: 范围的格式为 段地址:] (1)[段地址 开始偏移地址 结尾偏移地址 ) 段地址 * 结尾地址只允许有地址位移量,不允许有段地址 结尾地址只允许有地址位移量, 如:D CS:100 CS:110 是错误的。 是错误的。 应为: 应为:D CS:100 110 段地址:] (2) [段地址 开始偏移地址 ) 段地址 L长度 长度
第一次汇编报告——DEBUG调试程序的使用
1、实验目的及要求
2、实验原理、实验内容
3、实验仪器设备及材料
4、操作方法与实验步骤
5、实验数据记录及处理
6、实验结果分析及讨论
1、实验目的及要求
目的:
1.学习使用DEBUG程序的各种命令。
2.利用DEBUG学习了解计算机取指令、执行指令的工作过程。
3.掌握用DEBUG调试自编程序的方法。
要求:
A0000H~BFFFFH是8086的显存地址,改变其中的值时屏蔽内容会有改变,如 颜色改变,
而其值会直接显示在显示器上。
仪器设备损坏、非正常损耗材料(试剂)及处理情况:
无
教师对报告的最终评价及处理意见:
教师签字:
年月日
XXXX:0116 MOV AH,0 (10)
XXXX:0118 MOV CH,0 (11)
XXXX:011A MOV CL,[BX+SI+1] (12)
XXXX:011D ADD AX,CX (13)
XXXX:011F INT 20
(1)用D命令显示XXXX:0200 ---XXXX:0203单元内容。
1.实验前认真阅读实验教程中有关内容,明确实验目的和实验任务。
2.每次实验前应有预习报告,未预习者不允许参加实验。
实验准备:
2、实验原理、实验内容
1、参照实验准备,掌握DEBUG程序的各种命令,重点是命令R,D,A,U,T,E命令的使用。
2、按照以下步骤输入一系列的命令和指令,编写出简单的汇编语言指令,并完成指定任务。
XXXX:0107 MOV AX,[150] (04)
XXXX:010A ADD BX, ,AX (05)
XXXX:010C MOV AL,[BX] (06)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验课程名称微型计算机原理实验报告
实验项目名称利用DEBUG调试程序调试程序段专业班级电子信息科学与技术08级1班学生姓名学号
实验成绩指导教师签字
理学院
实验时间:2010年10月25日
实验一利用DEBUG调试程序调试程序段1.实验目的
(1)熟悉DEBUG有关命令的使用方法。
(2)利用DEBUG掌握有关指令的功能。
(3)利用DEBUG运行简单的程序段。
2.实验内容
(1)进入和退出DEBUG程序。
进入DEBUG程序,Windows中在命令提示符下进入DEBUG如图:退出DEBUG如图:
(2)学会DEBUG中的D命令、E命令、R命令、T命令、A命令、G命令等的使用。
对于U命令、N命令、W命令等,也应试一下。
R命令:
1)显示所有寄存器内容:
格式:-R↙
功能:以十六进制形式显示CPU内部各寄存器的值:以符号形式标志寄存器各标志位(除TF外)的值,并将CS:IP所指的内存内容反汇编成一
条指令,可视为将要执行的指令。
从显示可知,CS=10C1H,IP=0100H.
2)修改寄存器
格式:-R 寄存器名↙
功能:DEBUG首先显示指定寄存器的当前值,并在下一行首给出提示“:”,等待用户输入新值,若直接回车相当于不个忙寄存器的值。
3)修改标志值
格式:-RF↙
功能:先用符号显示当前各标志位的值,并在末尾给出提示符“-”,然后等待用户以符号形式输入新的标志值,对输入的次序没有要求,各标志值之间也可没有空格;若直接在“-”之后回车,则保留原标志值。
A命令
格式:-A 内存地址↙
●U命令
格式:-U 内存块↙
●N命令
●W命令
T命令
1)单步执行
格式:-T=内存地址↙
-P=内存地址↙(好像不好使)
2)多步执行
格式:-T=内存地址执行指令条数↙
-P=内存地址执行指令条数↙(好像也不好使)
●G命令
格式:-G=内存地址断点地址↙
●D命令
格式:-D内存块↙
●E命令
格式1:-E内存地址字符或数值串↙格式2:-E内存地址
(3)利用DEBUG,验证乘法、除法、加法、减法、带进位加、带借位减、堆栈操作指令、串操作指令的功能。
1)乘法
2)除法
3)加法
4)减法
5)带进位加
6)带借位减
7)堆栈操作指令
8)串操作指令
3.实验准备
(1)仔细设计有关DEBUG命令的内容,对有关命令,都要事先准备好使用的例子。
(2)作为例子,准备用A命令,输入在显示器上显示字符“S”的系统调用程序段。
(3)阅读将AX左移9位的程序段。
4.实验步骤
(1)在DOS提示符下,进入DEBUG程序。
在DOS子目录下启动DEBUG。
(2)详细记录每一步所用的命令,以及查看结果的方法和具体结果。
例:显示S
例:ABC
实验程序如下:
DATA SEGMENT
ARRAY DB 80,250,200,100,50 COUNT EQU $ - ARRAY
SUM DW ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA START: MOV AX,DATA
MOV DS,AX
MOV AX,0
MOV DI,OFFSET SUM
MOV BX,OFFSET ARRAY
MOV CX,COUNT
LOP: ADD AL,[BX]
ADC AH,0
INC BX
LOOP LOP
MOV [DI],AX
MOV AH,4CH
INT 21H CODE ENDS
END START
5.实验报告要求
(1)如何启动和退出DEBUG程序。
(2)整理每个DEBUG命令使用的方法,实际示例及执行结果。
(3)启动DEBUG后,要装入某一个.EXE文件,应通过什么方法去实现?格式:>\[d:][PATH]DEBUG 文件名.扩展名↙。