汇编语言实验报告 上机操作和DEBUG练习。

合集下载

汇编实验报告(-)调试程序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字符显示,不可显示字符用点“.”表示。

实验一、汇编语言程序的上机过程及调试

实验一、汇编语言程序的上机过程及调试

实验一、汇编语言程序的上机过程及调试<i>汇编程序调试过程</i>实验一、汇编语言程序的上机过程及调试<i>汇编程序调试过程</i>一、实验目的熟练掌握汇编语言上机汇编、连接和装入运行。

学会使用调试程序DEBUG或TD来进行程序调试。

<i>汇编程序调试过程</i>二、实验内容(一)汇编程序建立过程a.建立汇编源程序─通过b.编译为目标文件d.连接为可执行文件c.不通过,重新修改(语句错误)f.不正确,用调试工具调试,重新修改(逻辑错误)e运行正确g.完成<i>汇编程序调试过程</i>汇编语言的源程序需要编译和连接后才能在计算机上执行。

汇编语言源程序扩展名规定为.ASM。

用MASM编译源程序后,将产生源程序的目标程序文件,其扩展名为.OBJ。

再经过连接程序(LINK)把目标程序文件与库文件或其他目标文件连接在一起形成可执行文件(扩展名为.EXE)。

这时就可以运行该程序了。

DOS下可直接键入可执行程序的文件名从而运行该程序。

<i>汇编程序调试过程</i>(二)过程详细说明步骤a: 建立汇编源程序如果现在的根目录不是E盘,写入E :然后回车,再打入cd *** (***是你新建的文件夹名),例如电气031班的同学,现在你的DOS界面根目录为:E\dq031 。

打入edit然后回车,EDIT的操作画面便会出现在屏幕上,alt键可以控制工具栏操作,←↑→↓箭头控制阴影选择的上下移动。

我们现在按alt键,选中flie, 按↓选中open,回车,找到刚刚拷贝的asm 文件,回车。

选择存盘并给你输入的文件起一个文件名,形式:*** . asm ;然后回到dos环境。

<i>汇编程序调试过程</i>步骤b: 编译目标文件在DOS提示符下键入MASM *** .asm回车,(其中***为你刚才在*****RE a 中建立的文件名)这时汇编程序的输出文件可以有三个(分别:.obj .lst .crf),便会出现三次提问,在这可以一路回车即可。

汇编语言上机实验内容

汇编语言上机实验内容

实验一上机操作一、实验目的掌握汇编语言程序编辑、汇编、连接、运行以及利用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!”传送到另一段中。

桂电汇编实验报告

桂电汇编实验报告

实验一汇编语言上机过程和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的使用

汇编语言源程序运行步骤和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的结束方式,将其编辑、连接、运行,熟悉汇编源程序不同的结束方式。

汇编语言程序设计实验DEBUG基本命令的使用

汇编语言程序设计实验DEBUG基本命令的使用
JMP RESTORE
ERROR:
MOV AH,9
LEA DX,WARN
INT 21H
JMP RESTINT 21H
CODES ENDS
END START
调试分析
运行截图
教师评阅:
年月日
评分
ASSUME CS:CODES,DS:DATAS
START:
MOV AX,DATAS
MOV DS,AX
RESTORE:
MOV AH,9
LEA DX,HINT
INT 21H
MOV AH,10
LEA DX,STRING
INT 21H
MOV BL,STRING+1
MOV BH,0
LEA SI,STRING+2
MOV BYTE PTR [SI+BX],'$'
MOV CX,BX
MOV BL,2
CHECK:
CMP STRING[BX],'A'
JL ERROR
CMP STRING[BX],'Z'
JG ERROR
ADD BL,1
LOOP CHECK
MOV BL,STRING+1
MOV BH,0
MOV CX,BX
MOV BL,2
《微机原理与汇编语言程序设计》实验(上机)报告
班级·学号姓名实验日期任课教师
实验名称
实验一DEBUG基本命令的使用
验证型
实验目的及要求:
1. 掌握DEBUG的基本命令及功能;
实验内容:
1.编写一个小程序,从键盘接收一个大写字母,存放到指定内存单元BUF1,并转换成为对应的小写字符,存放到内存单元BUF2。上机编辑、汇编、连接并运行。

汇编上机过程及DEBUG调试

汇编上机过程及DEBUG调试

汇编语言的一般上机操作过程一、上机前的软件准备●MS-DOS操作系统(如:MSDOS6.2、MSDOS7.0等)●文本编辑器(如:记事本、等)●汇编程序(如:MASM.EXE、ASM.EXE等)●连接程序(如:LINK.EXE等)●调试程序(如:DEBUG.EXE等)二、汇编语言程序的建立过程在编辑软件支持下,将源程序输入到计算机中。

注意:汇编语言源程序的扩展名为.ASM。

可使用任意一种文本编辑工具来建立和编写汇编语言源程序,例如,Word、Notepad、记事本等。

在MS-DOS下也可以使用其自带的文本编辑器EDIT。

使用方法是在DOS提示符下输入EDIT后回车,进入EDIT的操作界面后即可编写汇编语言源程序,完成编写后,将文件保存后缀名为.ASM的汇编源文件。

2.利用宏汇编程序对汇编源程序.ASM进行汇编,产生.OBJ文件利用宏汇编程序MASM对汇编源程序(扩展名为.ASM)进行汇编,产生扩展名为.OBJ的可重定位的目标代码。

MASM是一个宏汇编软件,使用时后面跟所要汇编的源程序名即可。

格式如下:C:\>MASM filename(.asm) 回车当屏幕上显示一些版权信息后会出现几个提示信息,如:要求输入目标文件名;询问是否建立列表文件(扩展名为.LST);询问是否建立交叉索引文件(扩展名为. CRF)。

Object filename [filename.OBJ]:回车Source listing [NUL.LST]:回车Cross-reference [NUL.CRF]:回车当上述问题回答完毕,MASM即开始汇编工作。

MASM对源程序进行汇编将采用两遍扫描方式,每一遍扫描都以遇到END伪指令作为结束点。

第一遍扫描是检查名字并产生一个符号表,确定每个变量名和符号的相对位置;第一遍扫描就将产生目标文件,并根据用户需要产生列表文件和交叉索引文件。

最后,经汇编后的上述源文件将生产3个文件,其中目标文件是一个二进制文件,供连接使用;列表文件是一个文本文件,它会列出源程序及相应的目标程序清单,同时给出符号表,表中分别给出段名、段的大小属性。

DEBUG命令练习

DEBUG命令练习

实验一、调试程序DEBUG实验目的:1、学习汇编语言的一种调试工具DEBUG 的使用方法2、以简单的传送指令(MOV)为例,掌握存储器操作数寻址方式书写格式3、掌握14个寄存器基本功能,理解存储器偏移地址,物理地址的概念实验内容:1、显示存储器单元内容的命令-D(书写格式,使用方法)2、显示和修改寄存器内容的命令-R(书写格式,使用方法)3、修改存储器单元内容的命令-E(书写格式,使用方法)4、反汇编命令–U,汇编命令–A(书写格式,使用方法)5、运行命令-T,-G,退出命令-Q等实验结果:实验二、汇编语言程序的上机过程实验目的:1、熟练掌握用汇编语言设计、编写、调试、运行程序的方法。

实验内容:1、编写出源程序、画出程序的流程图、2、用汇编程序MASM对源程序汇编产生目标文件*.OBJ,用连接程序LINK产生可执行文件*.EXE。

3、用DEBUG 进行调试。

MOV AX, 1234HMOV BX,5678HPUSH BXPUSH AXPOP BX ;执行后BX= (1)POP AX ;执行后AX= (2)MOV AX,6384H ;执行后AH= (3)MOV CL,4ROR AL,CL ;执行后AL= (4)AND AL,0F0H ;执行后AL= (5)实验三、数据传送指令实验目的:1、进一步加深对寄存器,存储器操作数、立即数概念理解。

2、掌握存储器操作数各种寻址方式的格式。

3、理解进栈出栈时指令的执行过程,累加器的端口地址表示。

4、理解地址传送指令源操作数都为存储器操作数。

5、理解标志寄存器传送指令。

实验内容:1. 若定义DAT DD 12345678H,则DAT+2字节单元的数据是()。

A. 78HB. 56HC.34HD. 12H2. 某计算机字长为16位,其内存容量为1M字节,按字(或字节)编址,它的寻址空间为()。

A. 512KBB. 512KC. 1024KD. 1024KB3.若程序中的数据定义如下:ORG 0030HDA T1 DB 10 DUP (?)DA T2 EQU 12HDA T3 EQU 34HDA T4 DW $+3 ,56H则数据项$+3 的值为()A. 003BHB. 003CHC. 003DHD. 003EH实验四、算术运算指令实验目的:1、掌握加法,减法和比较指令对OF,CF影响,进行一种简单的归纳。

汇编语言实验报告

汇编语言实验报告

汇编语言实验报告实验一汇编语言的源程序的输入一、实验目的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分。

实验一汇编语言上机及Debug调试

实验一汇编语言上机及Debug调试

实验一汇编语言程序上机过程以及调试(1)一、预习内容1.工具软件MASM、LINK的使用2.常用DEBUG命令的使用: G,D,R,T,U,Q3.完整程序设计方法的格式。

二、目的要求1.掌握常用工具软件MASM、LINK的使用2.掌握常用DEBUG命令: G,D,R,T,U,Q 能灵活使用这些命令调试程序3.掌握完整程序设计方法的格式,能正确书写数据段,代码段等。

三、实验内容比较两个字符串string1和string2所含的字符是否相同,如果相同则显示’Match'否则显示’No match’.请读程序,并将程序补充完整。

DSEG SEGMENTstring1 db 'Move the cursor backward.'string2 db 'Move the cursor backward.'mess1 db 'Match.',13,10,'$'mess2 db 'No match.',13,10,'$'DSEG ENDSCSEG SEGMENTassume cs:CSEG, ds:DSEG, es:DSEG,MAIN PROC FARstart: mov ax, dsegmov ds, axmov es, axlea si ,string1①cld②repz cmpsbjz matchlea dx,mess2jmp short dispmatch:lea dx,mess1disp: mov ah,09hint 21hmov ax, 4c00hint 21hMAIN ENDPCSEG ENDSend start实验步骤:1)用文字编辑工具(记事本或EDIT)将源程序输入完整后保存在d:\masm下,注意保存时将文件扩展名改为.asm(如test1.asm)。

2)屏幕左下角”开始”–“运行”输入cmd ,进入dos命令操作,先用d: 和cd mas m 命令改变路经,接着用”masm + 文件名” (如masm test1,这里文件名可以不带扩展名)对源文件进行汇编,产生.obj文件和.LST文件。

微机原理汇编语言的上机过程 实验报告

微机原理汇编语言的上机过程 实验报告

微机原理技术与接口实验报告学院:专业:班级:姓名:学号:汇编语言程序的上机过程实验目的通过简单地操作了解汇编语言程序的基本内容,体会汇编语言的运行,为以后的实验打下一定的基础。

实验原理及操作步骤一、上机环境❖要运行调试汇编语言程序,至少需要以下程序文件:▪编辑程序:或其他文本编辑工具软件,用于编辑源程序。

▪汇编程序: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文件。

DEBUG实验报告

DEBUG实验报告

DEBUG实验报告篇一:汇编debug实验报告一、实验目的、学习查看CPU和内存命令II。

实验设备与环境主流pcwin7_x64dosboxstatuswindowdebug.exe三、实验内容和步骤(截图和必要的图表文字说明)(1)使用debug,将下面的程序段写入内存,逐条执行,观察每条指令执行后,cpu中相关寄存器中内容的变化。

机器代码组装说明b8204emovax、4e20h051614addax、1416hbb0020movbx、2000h01d8addax、bx89c3movbx、ax01d8addax、bxb81a0movax、001ahbb2600movbx、0026h00d8addal、bl00dcaddah、bl00c7addbh、alb400movah、000d8addal、bl049caddal、9ch-1--命令:功能:结果:movax,4e20addax,1416movbx,2000addax,bx将4e20h存入ax,将ax+1416h存入ax,a将2000h存如bx,将ax+bx的值存入ax,ax=4e20hx=6236hbx=2000hax=8236h-3-movbx,ax将ax的值存入bx,bx=8236haddax,bx将ax+bx的值存入ax,ax溢出,ax=046chmovax,001a将001ah存入ax,ax=001ahmovbx,0026将0026h存入bx,bx=0026haddal,bl将al+bl的值存入al,ah=00h,al=40h,ax=0040haddah,bl将ah+bl的值存入ah,ah=26h,al=40h,ax=2640haddbh,al将bh+al的值存入bh,bh=40h,bl=26h,bx=4026hmovah,0将0000h存入ah,ah=00h,al=40h,ax=0040h,addal,bl将al+bl的值存入al,ah=00h,al=66h,ax=0066haddal,9ch将al+9ch的值存入al,ah=00h,al=02h,ax=0002h,(2)将下面3条指令写入从2000:0开始的内存单元中,利用这3条指令计算2的8次方。

汇编实验一 Debug命令练习

汇编实验一 Debug命令练习

汇编上机实验一 调试程序 DEBUG 命令练习
字符用“.”表示。 练习题目:
1. 观看数据段中偏移地址为 0100 开始的前 128 个单元的内容 2.观看数据段接下来的 128 个单元内容 3. 观看数据段中偏移地址为 0100 开始的 8 个单元的内容
四、 E 命令练习
E 命令功能:修改内存单元的内容。 格式:E 地址[内容表] 说明:具有两种操作:1)用内容表中的内容替换制定地址的一个或多个字节的内容;2)允 许顺序显示和修改字节内容,不修改的可按空格。如只键入一个地址偏移量,则缺省的段再 DS 中。按↙键结束命令。 练习题目:
U 反汇编命令功能:从指定的地址反汇编 32 字节的汇编语句,同时,显示出他们的地址、 十六进制值以及对应的汇编语句。 格式:U[地址]/[范围] 说明:地址、范围均缺省时,则以前条 U 命令反汇编的最后一条命令后的单元作为起始地 址,若以前未用过的 U 命令则以 CS:100 作为起始地址。
T 跟踪命令功能:逐条跟踪程序。 格式:T[=地址][值] 说明:执行自指定地址开始的一条或给定值条指令,每条指令执行完都会显示出所有寄存器 和标志位的内容,未给定地址则以 CS:IP 开始执行。
练习题目:
1.求出下列数据与 62A0H 之和,并根据结果设置标志位 SF,ZF,CF,OF 的值
①4321H 解:① 6 2 A 0 H
+ 4321H A5C1H
②1234H ③CFA0H ④9D60H OF=1,SF=1,ZF=0,CF=0
2、上机验证结果
步骤:-A↙ mov ax,62a0↙ add ax,4321↙ ↙
二、 R 命令练习
R 命令功能:显示和修改寄存器内容和标志。 格式:R 寄存器名 说明:显示/修改单个寄存器内容,例如:R AX↙

汇编语言实验报告1

汇编语言实验报告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的练习一、实验目的1、学习使用DEBUG程序的各种命令。

2、利用DEBUG学习8086指令系统。

二、实验任务1、参照说明,掌握DEBUG程序的各种命令,重点是命令R,D,A,U,T,P,G命令的使用。

2、用命令A汇编下列指令,判断指令正误并说明原因。

(1)ROR AX,8;错误,因为ROR指令的源操作数只能是数字1或是CL。

(2)LEA DI,[AX];错误,因为LEA指令的目的操作数不能是DI。

(3)MOV DS,2010;错误,因为段寄存器和立即数不能在MOV指令间传。

(4)PUSH AL;错误,因为PUSH指令的目的操作数只能是通用寄存器或是内存。

(5)OUT 900,AL;错误,因为900已经超过了8位二进制数的范围。

(6)MOV [BX],0;错误,因为内存和立即数之间的类型没有确定。

3、练习使用汇编命令1)利用加法指令求3+52)利用乘法指令求3*53)利用算术运算指令求3的补码4)学习使用逻辑运算指令。

求5和17相与、相或的结果。

5)利用不同移位指令将10011111右移3位,查看结果,并比较不同点。

三、实验设备PC机一台四、实验步骤1、实现3加5:2、实现3*5:3、实现求3的补码:4、实现5和17相与:对实验一的说明下面所有操作均在DOS状态下进行。

DEBUG.EXE是DOS操作系统提供的一个调试汇编语言程序的工具程序。

其主要功能为:▪可动态调试汇编语言程序;▪可检查或修改CPU各寄存器、标志及内存单元的内容;▪可输入汇编指令到指定的内存;▪可把要调试的程序(通常以可执行文件形式存储在磁盘上)调入到内存中,控制CPU按单步、设置断点等方式执行程序,检查程序运行过程中的中间结果,以便寻找程序出错的原因。

一、进入DEBUGC:\MASM>DEBUG二、常用DEBUG 命令1、DEBUG命令概述(1)特点A.除命令RF外,DEBUG命令本身均为单字符,后面跟一个或多个参数,有些命令不给参数也能运行,如下表[]中的参数,这种情况下用默认值作为参数;B.DEBUG下输入和显示的数均为十六进制数,故数字后不可加后缀H,O,B等,否则认为命令错;C.命令和参数不区分大小写;DEBUG主要命令一览表(2)常用参数含义A、内存地址内存地址表示一个内存区域的起始地址,由段地址和偏移地址两部分组成。

汇编语言编程实验报告

汇编语言编程实验报告

汇编语言编程实验报告汇编语言程序设计实验报告(一)汇编语言程序设计实验报告(一)一、预备知识汇编语言程序设计是一门实践性很强的课程。

编写程序、上机调试、运行程序是进一步学习和掌握汇编语言程序设计的必要手段。

二、实验目的1、掌握实验运行汇编语言所用的计算机机型2、熟悉常用编辑程序(行编辑程序EDLIN、全屏幕编辑程序QE及其它用于文件编辑的应用程序。

)3、掌握汇编程序ASM、宏汇编程序MASM1.0以上。

4、LINK连接程序5、DEBUG调试程序三、汇编语言源程序上机操作过程2、编辑源文件根据给定的任务,可编写程序。

如果经过检查认为所编程序无错时,就可在计算机上通过编辑程序建立源程序文件了。

一般在编辑过程中总会有错误产生,因此还要进行人工检查、修改以致重新编辑,直到所编辑的源程序无误为止,然后以一个源程序文件(ASM文件)存盘。

将包含QE文件的工作磁盘插入驱动器A:。

进入QEA\QE进入全屏幕后可以开始编程。

文件名取为Myprog。

asm;Ddisplystring (09H)CODESEGMENTPUBLICASSUME CS:CODE,DS:CODEORG 100HSTART:JMP BEGINMSG DB‘Hi ! This ia a dollar sign terminated string.’,’$’BEGIN:MOV AX,CS ;set up to display messageMOV DS,AXMOV DX,OFFSET,SG ;set up to display messageMOV AH,09H;display string function requestINT 21H ;call DOSMOV AH ,4CH ;terminate propram funct requestINT 21H ;Call DOSCODE ENDS;end of code segmentEND START;strat is the entry point输入完毕后,按ALT---X,存盘返回DOS3、汇编源程序文件(ASM,MASM)由编辑程序所建立的ASM文件只是个文本文件,计算机无法执行。

汇编语言实验报告

汇编语言实验报告

汇编语言实验报告实验一、汇编运行环境及方法、简单程序设计一、程序说明本程序用来比较两个字符串string1和string2所含的字符是否相同。

若相同’,否则显示‘No match’。

则显示‘Match在程序的数据段先定义两个字符串string1和string2,再定义两个字符串mess1’和‘Nomatch’。

再代码段比较字符串string1和string2,和mess2,分别代表‘Match通过比较判断是否相同。

若相同则显示‘Match’,否则显示‘No match’。

二、调试说明再EDIT中建立ASM文件,再用汇编程序对源程序汇编产生目标文件Obj,再用连接程序产生执行文件EXE。

再用Debug进行调试。

其中常用到的指令有:用-g命令来用运行程序,用-u命令来显示程序,用-d 命令来查看数据段的情况,-e或-f命令来修改需要改正的部分,用-t指令来逐步执行程序,用-r指令来查看寄存用器和修改寄存器的值,-q命令用来退出debug程序。

在这些命令的后面加上地址,可以将命令执行到相应的地方。

如用-g指令运行程序后,再用-u指令显示程序的执行借给如下:若将string2改为'Move the cursor backwards.',程序的其他部分不做改动,执行结果:若将mov cx,25语句改成mov cx,24,结果为:此时少做了一次循环,得到的结果就不正确了。

实验二、用DEBUG编程:使用堆栈段将AX和BX的内容进行交换等一、程序说明本实验包括两个部分,第一个部分是将AX和BX的内容进行交换,并用堆栈作为两寄存器交换内容的中间存储单元;第二部分是用DEBUG的命令将存储器偏移地AH, 0BH,0CH,0DH,0EH。

在DEBUG状态址300H,304H连续单元顺序装入0 下送入给出的程序中。

第一个程序先将AX的内容进栈,然后将BX的内容赋给AX,再将出栈的内容赋给BX即可。

第二个程序是在进入debug后,用-a指令输入给出的程序,然用-r指令安要求修改内存的内容,再用-t指令逐步执行每条指令,看修改的内存内容对指令执行结果的影响。

汇编语言实验debug

汇编语言实验debug

练习
(10)向内存从B8100H开始的单元中填写数据,如: -e b810:0000 01 02 03 04 05 05 06 注意:先填写不同的数据,观察产生的现象;再改变填写的的地址, 观察产生的现象。 (11)用汇编命令A输入如下指令: MOV AX,1 MOV BX,2 MOV CX,3 ADD AX,BX ADD AX,CX ADD AX,AX 用T跟踪观察寄存器内容的变化。 (12)上机练习课本P159第8题,并写出每个程序段执行后AL的内容及状态 标志位的值(提示:用A、R命令)
u范围从上一个u命令所显示地址后的第一个地址开始反汇编显示20h个字节内容起始地址从起始地址处开始显示20h个字节内容起始地址结束地址反汇编显示从起始地址到结束地址的内容例如
调试工具DEBUG的使用
一、上机目的 (1)学习如何在Windows的命令模式下启动 DEBUG。 (2)掌握DEBUG的常用基本命令。 (3)学习如何使用DEBUG查看CPU和内存以及 进行跟踪调试。
(1)-t 执行CS:IP指向的一条指令并显示各寄存器状态 (2)-t <指令条数> -t 3 执行CS:IP开始的连续的3条指令并显示各寄存器状态 (3)-t <=起始地址> <指令条数> -t =052A 5 该指令会连续执行从052A开始的5条指令
练习
(1)用R命令修改IP的值,并查看此时CS:IP的指向,存放 的机器码以及对用的汇编指令; (2)用R命令修改CS的值,并查看此时CS:IP的指向,存放 的机器码以及对用的汇编指令; (3)使用D命令,查看内存10000H处的内容; (4)使用D命令,查看1000:0~1000:8中的内容,并修改 这9个字节的内容为1、2、3、4、5、6、7、8、9 (5)采用三种不同的段地址和偏移地址查看同一物理地址

汇编语言调试程序DEBUG的练习

汇编语言调试程序DEBUG的练习

汇编语言调试程序DEBUG的练习一一、练习目的1、学习使用DEBUG程序的各种命令。

2、利用DEBUG学习8086指令系统。

二、练习任务1、参照说明,掌握DEBUG程序的各种命令,重点是命令R,D,A,U,T,P,G命令的使用。

用命令A汇编下列指令,判断指令正误并说明原因。

1).ROR AX,8;错误,因为ROR指令的源操作数只能是数字1或是CL。

2).LEA DI,[AX];错误,因为LEA指令的目的操作数不能是DI。

3).MOV DS,2010;错误,因为段寄存器和立即数不能在MOV指令间传。

4).PUSH AL;错误,因为PUSH指令的目的操作数只能是通用寄存器或是内存。

5).OUT 900,AL;错误,因为900已经超过了8位二进制数的范围。

6).MOV [BX],0;错误,因为内存和立即数之间的类型没有确定。

2、练习使用汇编命令1)利用加法指令求3+52)利用乘法指令求3*53)利用算术运算指令求3的补码4)学习使用逻辑运算指令。

求5和17相与、相或的结果。

5)学习数据传送指令三、设备PC机一台四、练习步骤1、实现3加5:2、实现3*5:3、实现求3的补码:4、实现5和17相与:5、传送指令(独立练习)1)用A命令在内存100H处键入下列内容:MOV AX,1234MOV BX,5678XCHG AX,BXMOV AH,35MOV AL,48MOV DX,75ABXCHG AX,DX2)用U命令检查键入的程序并记录,特别注意左边的机器码。

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

并注意标志位有无变化。

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

实验报告
蒙超
20093621
计算机科学技术学院
实验一
实验名称:上机操作和DEBUG练习。

实验目的:1.汇编语言上机过程练习。

2.熟悉DEBUG调试程序的命令。

实验要求:1.按汇编上机的操作过程,将下面给出的例子用编辑程序
EDIT.EXE完成编辑,用汇编程序MASM.EXE进行汇编,用连接
程序LINK.EXE完成连接,最后执行该程序。

2.用DEBUG调试程序的U命令查看指令,用D命令查看数据段
内容,用R命令查看寄存器内容,用T、P、G命令执行程序并
观察结果。

实验内容:第一个汇编语言程序HELLO WORLD。

程序:
DATA SEGMENT
STRING DB ‘HELLO WORLD!$’
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
MOV AH,9
MOV DX,OFFSET STRING
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END START
实验过程:
1将上面给出的例子用编辑程序EDIT.EXE完成编辑,用汇编程序MASM.EXE进行汇编,用连接程序LINK.EXE完成连接,最后执行该程序。

2用DEBUG调试程序的U命令查看指令
3用D命令查看数据段内容
4用R命令查看寄存器内容
5用T、P、G命令执行程序并观察结果。

实验总结:
熟悉了DEBUG调试程序的命令,U命令查看指令,D命令查看数据段内容,R命令查看寄存器内容,T、P、G命令执行程序。

相关文档
最新文档