汇编实验指导书
汇编语言实验一 指导书

实验一:汇编上机指导及例示一、实验目的●了解汇编语言程序的运行环境和所需的系统程序;二、实验要求●掌握如何编辑、汇编、连接和运行汇编程序;●掌握常用的DEBUG命令。
三、实验原理题:在屏幕上显示一条'THIS IS A SAMPLE PROGRAM OF KEYBOARD AND DISPLAY'提示信息,如从键盘上输入ESC键,则结束程序,如输入的不是大写字母,则在显示器上显示出来,如输入的是大写字母,则转换为小写字母输出。
四、实验设备计算机五、实验步骤1、用用文字编辑工具(常用EDIT或记事本)将源程序输入,其扩展名为.ASM。
2、用MASM对源文件进行汇编,产生.OBJ文件和.LST文件。
若汇编时提示有错,用文字编辑工具修改源程序后重新汇编,直至通过。
3、用TYPE命令显示产生的.LST文件。
4、用LINK将.OBJ文件连接成可执行的.EXE文件。
5、在DOS状态下运行LINK产生的.EXE文件。
用于调试程序时的输入格式:DEBUG FILENAME.??? 回车其中FILENAME是主文件名,???是扩展文件名,例如我们在此前已编译好了一个文件,它的名字为:djx.exe 要对它进行调试时就在DOS提示符下打:DEBUG djx.exe 回车,便可见到 '-' 提示符,如无任何提示说明正确,可进行调试按ESC键可返回DOS。
若未出现预期结果,用DEBUG检查程序。
附: 基本debug操作1、显示内存单元的内容:-d [地址] 或 [范围]2、修改内存单元的内容:-e 地址内容表或-e 地址3、显示CPU内部寄存器和标志位状态:-r4、显示和修改某个寄存器的内容:-r 寄存器名5、汇编命令:-a 地址6、逐条指令追踪:-t [=地址] (无地址则执行IP所指示的指令)7、退出debug:-g8、多条指令追踪:-t [=地址] [n]注:该指令从指定地址起执行n条命令后停下来9、运行命令:-g [=地址1] [地址2 [地址3...]]地址1规定了运行起始地址,后面的地址均为若干断点地址10、反汇编命令:(1)-u [地址]该命令从指定地址开始,反汇编32个字节,若省略地址,则从上一个u命令的最后一条指令的下一单元开始显示32个字节(2)-u 范围该命令对指定范围的内存单元进行反汇编如:-u 04ba:0100 0108等价于:-u 04ba:0100 L9下面给出一些常见出错信息,以便查对:1、Register already defined 汇编内部出现逻辑错误2、Unknown symbol type 在符号语句的类型中,有些不能识别的东西3、Symbol is multi-defined 重复定义一个符号4、Symbol not defined 符号没有定义5、Syntax error 语句的语法与任何可识别的语法不匹配6、Symbol is reserved word 企图非法使用一个汇编程序的保留字(例:定义add为一变量)7、Not proper align/combine type SEGMENT参数不正确8、One operand must be const 这是加法指令的非法使用9、Operands must be same or 1 abs 这是减法指令的非法使用10、Already have base register 试图重复基地址11、Illegal size for item 引用的项的长度是非法的,(如:双字移位)12、Illegal register value 指定的寄存器值不能放入“reg”字段13、Must be AX or AL 某些指令只能用AX或AL14、Improper use of segment reg 段寄存器使用不合法(如:mov ds,0)15、Division by 0 or overflow 给出一个用0作除数的表达式16、Value is out of range 数值大于需要使用的17、CS register illeal usage 试图非法使用CS寄存器18、DUP is too large for linker DUP嵌套太长,以至于从连接程序不能得到所要的记录。
汇编语言实验指导书(第1组)

实验一、Debug调试实验指导书一、实验目的1.进一步学习汇编语言基本指令使用方法;2.学习DEBUG调试工具的基本使用方法;掌握debug调试命令a、u、r、d、t、g等3.逐条观察程序指令的执行过程,理解指令的功能,理解程序自动、顺序地执行的概念,实践其过程(重点)。
二、实验题目1.编写、输入一个32位二进制数相加程序,逐条执行指令,观察指令执行情况。
2.使用已经过汇编和连接的小程序(t3-2.exe),将其装入内存,逐条执行指令,观察执行过程和结果。
在实验过程中,使用D命令修改XXX和YYY单元中的数据,再重新计算其结果。
三、编程提示1.启动计算机的WINDOWS操作系统,运行DEBUG程序。
2.方法1:在开始菜单中找到“运行”,输入“cmd”后回车,启动ms-dos command程序,再在该程序内输入“DEBUG”并按回车,即启动DEBUG调试程序。
3.方法2:在开始菜单中找到“运行”,输入“DEBUG”后确定,即启动DEBUG调试程序。
4.开始编程方法1:在debug中输入a命令,并回车。
显示出的地址是当前指令代码所存放的地址。
接着,逐条有序地输入汇编指令,直接回车即可结束程序指令的输入过程。
如需修改程序,则先确定错误指令的地址,再使用“a 地址号”命令修改。
注意,修改前后指令长度如发生改变,会对该指令以后的指令码的存储造成影响,使程序不能正确执行。
(为什么?)方法2:将事先已经准备好的可执行程序(.exe文件)装入存储器,使用如下命令:debug 文件名.exe。
(.exe必须写全,否则找不到程序文件,为什么?)5.程序调试过程(1)使用u命令将程序反汇编,观察其汇编指令的与源程序的对应关系,观察每一条指令的代码、存放地址、指令代码长度等;(重要)(2)使用r命令读出各寄存器中的数值,从CS:IP寄存器中的数值确定程序当前应执行的指令;(结合计算机硬件知识加以理解)(3)察看当前指令的长度、指令代码、指令功能、操作数的寻址方式、所涉及的寄存器和存储器中的数值;(4)使用d命令读出所关注的存储器中的数值,并计算其地址顺序;(5)使用t命令执行单条指令,察看指令执行后相关存储器和存储器中的数值变化情况,察看标志位寄存器的变化情况,判断指令执行后的计算结果是否正确?如遇到条件转移指令时要判断是否转移,转移或不转移时下一条指令的地址是什么?(重要)(6)使用e命令读出、修改存储器中的相关数据,可重新执行相关计算指令,再观察结果。
汇编实验指导书

实验一汇编语言程序的上机过程一、实验目的掌握汇编语言源程序的编辑、汇编、连接及运行过程,为以后的实验打下基础。
二、实验内容1、输入下列完整的程序STACK SEGMENT STACKDB 200 DUP(?)STACK ENDSDATA SEGMENTBUF DB‘HOW ARE YOU!$’DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSTART:MOV AX,DATAMOV DS,AXLEA DX,BUFMOV AH,9INT 21HMOV AH,4CHINT 21HCODE ENDSEND START(本程序的正确运行结果是在屏幕显示“HOW ARE YOU!”)2、完成课本P193习题5.1。
三、实验步骤(1)利用EDIT编辑源程序;(2)汇编源程序;(3)连接目标程序文件;(4)运行可执行文件。
四、实验报告要求写出以上两个实验内容的题目、源码、具体实验步骤和实验结果。
1.在屏幕上打印字符串”How are you?”。
(1)源代码:;打印字符串"How are you?"STACK SEGMENT STACKDB 200 DUP(?)STACK ENDSDATA SEGMENTBUF DB 'How are you?$'DATA ENDSCODE SEGMENTASSUME CS:CODE, DS:DATA, SS:STACKSTART: MOV AX, DATAMOV DS, AXMOV AX, STACKMOV SS, AX;在屏幕上打印字符串LEA DX, BUFMOV AH, 9HINT 21HMOV AH, 4CHINT 21HCODE ENDSEND START(2)具体实验步骤:编辑→保存→masm→link→运行(3)结果截图:2.编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来。
汇编指导书

第一部分 预备知识一、 汇编语言程序设计的上机过程开发8086/8088汇编语言源程序的过程如下:图1.1 上机过程及生成的文件1、编辑源程序为了将源程序送入计算机并建立一个源程序名为*.ASM 的源文件,可以使用任何流行的字处理程序或能编辑ASCII 文字符号的编辑程序。
例如调用DOS 下的全屏幕编辑程序EDIT 或Windows 下的记事本,建立和修改源程序,生成扩展名为.ASM 的文件。
在Windows 系统中,用鼠标点击开始菜单,指向程序→附件→MS DOS 方式(Windows XP 中为“命令提示符”),在MS DOS 提示符下键入EDIT ,启动编辑程序。
例如C:\>EDIT MYFILE.ASM通过以上操作, 建立了一个名为MYFILE.ASM 的汇编语言源程序。
汇编语言源程序的扩展名必须为.ASM ;若在以后的几个步骤中发现源程序有错,还要回到编辑程序中加以修改,并重新存盘。
2、将源程序文件汇编成目标程序文件一般情况下,MASM 汇编程序的主要功能有:⑴检查源程序中的语法错误,并给出错误信息。
⑵若源程序经汇编后没有错误,产生目标程序文件。
即将用汇编语言编制的源程序转换为机器代码的目标程序的文件(扩展名为.OBJ ),并可给出列表文件(.LST)和交叉索引文件(.CRF)。
⑶若程序中使用了宏指令,则汇编程序将展开宏指令。
在DOS 提示符下,键入MASM 命令行,命令行的格式为:myfile.exeMASM 源文件名[,[目标文件名][,[列表文件名][,[交叉索引文件名]]]][;] 注:命令行中的方括号内为可选项。
例:设有文件名为TRY.ASM的汇编语言源文件,则调用MASM进行汇编的过程为:C:\>MASM TRY.ASM ↙Microsoft (R) Macro Assembler Version 5.00Copyright (C) Microsoft Crop 1981 – 1985, 1987, All rights reserved.Object filename [TRY.OBJ]:TRY ↙Source listing [NUL.LST]:TRY ↙Cross–reference [NUL.CRF]:TRY ↙0Warning Errors0Severe Errors其中Object filename 为目标文件名,这是汇编的主要目的,该文件是我们需要的。
《汇编语言》实验指导书.

《汇编语言》实验指导书目录实验一Debug命令的使用 (3)实验二基本汇编指令的使用 (7)实验三汇编语言程序的调试与运行 (10)实验四系统功能调用程序的调试与运行 (15)实验五分支程序设计 (17)实验六循环程序设计 (20)实验七子程序设计 (23)实验八高级汇编语言程序设计 (25)实验九I/O程序设计 (30)实验十中断程序设计 (33)实验十一综合程序设计 (38)实验一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 健。
汇编实验指导1

《汇编语言程序设计》实验指导书实验1 DEBUG的使用1、实验目的掌握DEBUG常用命令的使用;熟悉8086CPU内部有多少寄存器;掌握访问段式存储器结构地址的表示方法。
2、实验内容将数据段中的两个数求和,结果保存在数据段中。
源程序、机器语言程序如下:CS:0100 Al 00 00MOV AX,[0000]CS:0103 03 06 02 00ADD AX,[0002]CS;0107 A3 04 00MOV [0004],AXCS:010A CB RETF数据段内容如下:DS:0000 2301 2500;两个已知数3、实验步骤(1)用E命令键人上述机器语言程序和数据段的初值。
—E DS:000 2301 2500—E DS:006 2A 2A 2A (2A为*标记,是为便于查看数据段内容而设置)—E CS:100 A1 00 00 03 06 02 00—E CS:107 A3 04 00 CB(2)用D命令检查数据段、代码段内容。
—D DS:0—D CS:100(3)用T命令逐条执行上述程序,注意观察每条指令执行后相应寄存器的变化。
(4)用U命令反汇编本程序。
—U 100 10A(5)用R命令修改IP的内容为0100重新执行上述程序。
—R IP显示:IP 010A:0100(6)用G命令运行程序。
—G =CS:0100 107观察:IP=AX=—G =CS:0100 10A观察:IP=AX=4、实验思考题(1)用A命令输入源程序:CS:0100 MOV AX,FFFFSTC0104 MOV DS,AXMOV BX,DSMOV ES,BXMOV CX,ESMOV SS,CXMOV DX,SSMOV SP,DXMOV BP,SPMOV SI,BPMOV DI,SIJNB 012lXOR AX,DIJNZ 0125CLCJMP 01040121 OR AX,DIJZ 01000125 HLT(2)用T命令单步执行上述程序。
汇编实验指导

汇编实验指导风格化实验二内存操作数及寻址方法实验目的:通过实验掌握下列知识:1、DEBUG命令:G,N,W,L及Q。
2、8088系统中数据在内存中的存放方式和内存操作数的几种寻址方式。
3、8088指令:INC,DEC,LOOP,INT 3,INT 20H,寄存器SI,DI。
4、8088汇编语言伪操作:BYTE PTR,WORD PTR。
5、求累加和程序和多字节加减法程序。
实验内容和步骤:一、内存操作数及各种寻址方式使用:内容:MOV AX,1234MOV [1000],AXMOV BX,1002MOV BYTE PTR[BX],20MOV DL,39INC BXMOV [BX],DLDEC DLMOV SI,3MOV [BX+SI],DLMOV [BX+SI+1],DLMOV WORD PTR[BX+SI+2],2846步骤:1)用A命令键入上述程序,并用T命令逐条运行。
2)每运行一条有关内存操作数的指令,要用D命令检查并记录有关内存单元的内容并注明是什么寻址方式。
3)1、直接寻址方式。
2、寄存器间接寻址方式。
3、寄存器间接寻址方式。
4、基址变址寻址方式。
5、相对基址变址寻址方式6、相对基址变址寻址方式注意D命令显示结果中右边的ASCII字符及双字节数存放法。
思考:有关指令中BYTE PTR及WORD PTR伪操作不加行不行?试一试。
二、求累加和程序:程序:MOV BX,1000MOV CX,10SUB AX,AXLOP: ADD AL,[BX]ADC AH,0INC BXJ: LOOP LOPINT3步骤:1)用A命令将程序键入到100H开始的内存中,在键入时记下标号LOP和J的实际地址,在键入LOOP指令时LOP用实际地址值代替。
2)用命令N AA将此程序命名为文件AA(文件名可任取)。
3)用R命令将BX:CX17改为程序长度值(即最后一条指令后面的地址减去开始地址)4)用命令W 100将此程序存到AA命名的磁盘文件中。
汇编语言实验指导书

实 验 一实验名称:DEBUG 练习和简单程序设计实验目的:通过对调试程序DEBUG 的使用和简单汇编源程序的设计的训练,掌握汇编语言设计、编写和运行程序的方法,为后续试验打下基础。
实验内容:(注:实验报告要求:操作验证性实验需写出实验步骤及每步的实验结果,并对实验结果进行必要的分析;设计性实验需包含:软硬件平台、流程图、源程序、调试步骤、运行结果等,源程序应加必要的注释。
)(一) DEBUG 练习:学习DEBUG1、 进入DEBUG ;的R 命令查看、改变CPU 命令修改寄存器BX 、SI 、3、 用DEBUG 的D 命令查看内存中的内容(以下内容分别使用不同的D 命令);1) 用D 命令查看从1000:0开始的128个内存单元的内容并纪录;2) 用D 命令查看从2000:8开始的128个内存单元的内容并纪录;3) 用D 命令查看从3000:0开始的10个内存单元的内容并纪录;4、 用DEBUG 的E 命令改写内存中的内容;用E 命令将内存1000:0—1000:9单元中的内容改写为0、1、2、3、4、5、6、7、8、9,并进行验证。
5、 用DEBUG 的U 命令将内存中的机器指令翻译成汇编指令;用E 命令从1000:0单元开始写入如下机器码,然后用U 命令将内存中的机器指令翻译成汇编指令,并分析实验结果各部分的含义。
机器码 对应的汇编指令b80100b9020001c86、 用DEBUG 的T 命令执行机器指令;用T 命令单步执行上题程序段的每条指令并纪录结果。
7、 用DEBUG 的A 命令以汇编指令的格式在内存中写入一条机器指令。
用A 命令将下面的程序段写入内存,用U 命令翻译成机器指令,逐条执行,观察每条指令执行后,CPU 中相关寄存器中内容的变化。
MOV AX,4E20HADD AX,1416HMOV BX,2000HADD AX,BXMOV BX,AXADD AX,BXMOV AX,001AHMOV BX,0026HADD AL,BLADD AH,BLADD BH,ALMOV AH,0ADD AL,BLADD AL,9CH(二)简单程序设计1、按要求编写汇编源程序,练习源程序的上机过程,并练习用DEBUG调试程序。
汇编指导书

汇编语言程序设计实验指导书凌利军胡宁亚计算机技术实验中心目录实验一 DEBUG的使用 (3)实验二数制转换程序 (7)实验三数组排序程序 (9)实验四子程序设计 (13)实验五宏调用程序设计 (18)实验六综合实验 (25)实验一 DEBUG的使用【实验目的】1.学习使用DEBUG调试程序的各种命令。
2.掌握8088/8086指令系统---数据传送指令、算术指令。
3.掌握用DEBUG调试程序的方法。
4.掌握8088/8086 CPU寄存器的用途和存储器组织及它们之间的关系。
5.掌握内存操作数及寻址方法。
6.掌握汇编语言伪操作:BYTE PTR,WORD PTR。
【实验性质】验证性实验(学时数:2H)【实验内容】一、DEBUG 命令的使用1.敲 DEBUG 进入 DEBUG 环境,显示提示符 '_ '。
2.用命令 D100 10F 观察内存中的16进制码及屏幕右边的ASCII字符。
3.用命令 E100 30 31 32 …… 3F 将30H~3FH写入地址为100H开始的内存单元中,再用D命令观察结果,看键入的16进制数是什么字符的ASCII码?4.用命令 F100 L0F 'A' 将'A'的ASCII码填入内存,用D命令查看结果。
5.用命令 F110 11F 41 将41H 填入内存,用D命令观察结果并比较。
6.用R 命令检查各寄存器内容,特别注意AX,BX,CX,DX,IP及标志位中ZF,CF和AF的内容。
7.用R命令将AX,BX内容改写为1234H及5678H。
8.用H命令检查下列各组16进制数加减结果并和你的手算结果比较:(1)34H,22H (2)56H,78H (3)A5,79H (4)1284H,5678H (5)A758,347FH二、8088/8086常用指令练习1.传送指令1)用A命令在内存100H处键入下列内容:MOV AX,1234MOV BX,5678XCHG AX,BXMOV AH,34MOV AL,56MOV CX,75ABXCHG AX,CX2)用U命令检查键入的程序,特别注意左边的机器码。
汇编语言实验指导书

实验目的与要求一、实验目的学习程序设计的基本发方法和技能,熟练掌握用汇编语言设计、编写、调试和运行程序的方法。
为后续课程打下坚实的基础。
二、实验要求1、上机前要作好充分准备,包括程序框图、源程序清单、调试步骤、测试方法、对运行结果的分析等。
2、上机时要遵守实验室的规章制度、爱护实验设备。
要熟悉与实验有关的系统软件(如编辑程序、汇编程序、连接程序和调试程序等)的使用方法。
在程序的调试过程中,有意识地学习及掌握debug程序的各种操作命令、以便掌握程序的调试方法和技巧。
3、每个实验完成后,应写出实验报告。
实验报告的要求如下:①实验目的②实验内容③算法分析及详细的寄存器和变量分配④流程图⑤程序代码⑥实验结果⑦分析总结(心得体会)实验一、汇编语言上机操作过程一、实验目的1、熟悉汇编语言程序的调试环境2、掌握部分DEBUG命令二、实验内容编写一个汇编语言程序,计算1+2+3+…+99+100,并将结果存入SUM字单元。
通过调试程序熟悉汇编语言的上机操作过程及部分命令。
三、上机操作过程1、建立ASM文件(编辑源程序)使用编辑程序EDIT在磁盘上建立源程序EX.ASM例如:D:\MASM>EDIT EX.ASM2、用MASM程序产生OBJ文件源文件建立后,就要用汇编程序对源文件汇编,汇编后产生二进制的目标文件(OBJ 文件)例如:D:\MASM>MASM EX3 、用LINK程序产生EXE文件汇编程序已产生出二进制的目标文件(OBJ),但OBJ文件并不是可执行文件,还必须使用连接程序(LINK)把目标文件转换为可执行的EXE文件例如:D:\MASM>LINK EX4、调试运行在建立了EXE文件后,就可以直接从DOS执行程序。
如果用户程序有错误或者没有直接将结果在终端上显示出来,程序执行完之后无法看见正确的结果。
那么怎么知道程序执行的结果是正确的呢?此外,大部分程序必须经过调试阶段才能纠正程序执行中的错误,得到正确的结果。
汇编语言实验指导更完整

目录(1)利用DEBUG调试汇编语言程序段 (1)(2)初级程序的编写与调试实验(一) (7)(3)初级程序的编写与调试实验(二) (18)(4)汇编语言程序上机过程 (24)(5)分支程序实验 (28)(6)循环程序实验 (33)(7)子程序实验 (37)(1)利用DEBUG调试汇编语言程序段一、实验目的1.熟悉DEBUG有关命令的使用方法;2.利用DEBUG掌握有关指令的功能;3.利用DEBUG运行简单的程序段。
二、实验内容1.进入和退出DEBUG程序;2.学会DEBUG中的D命令、E命令、R命令、T命令、A命令、G命令等的使用。
对于U 命令、N命令、W命令等,也应该试用一下;3.用DEBUG,验证乘法、除法、加法、减法、带进位加、带借位减、堆栈操作指令、串操作指令的功能。
三、实验环境PC微机DOS操作系统或Windows 操作系统MASM.EXE,LINK.EXE,或宏汇编集成环境四、实验要求1.仔细阅读有关DEBUG命令的内容,对有关命令,要求事先准备好使用的例子;2.作为例子,准备用A命令,输入在显示器上显示字符“$”的系统调用程序段;3.编写将AX左移9位的程序段。
五、主要实验步骤(一)学会使用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,验证命令运行结果。
汇编语言实验指导书

汇编语言实验指导书目录实验一DEBUG的启动及其基本命令的使用 (2)实验二存操作数及寻址方法 (6)实验三汇编语言程序的调试与运行 (8)实验四查表程序设计 (10)实验五系统功能调用 (12)实验六循环程序设计 (13)实验七分支程序设计 (15)实验八子程序设计 (18)实验九综合程序设计 (20)附录实验报告 (21)实验一DEBUG的启动及其基本命令的使用一.实验目的:掌握DEBUG 的基本命令及其功能二.实验容:DEBUG是专门为汇编语言设计的一种调试工具,它通过步进,设置断点等方式为汇编语言程序员提供了非常有效的调试手段。
1、DEBUG程序的启动在DOS提示符下,可键入命令:C>DEBUG[d:][path][文件名][ 参数1][参数2]其中文件名是被调试文件的名称,它须是执行文件(EXE),两个参数是运行被调试文件时所需要的命令参数,在DEBUG程序调入后,出现提示符“-”,此时,可键入所需的DEBUG命令。
在启动DEBUG时,如果输入了文件名,则DEBUG程序把指定文件装入存。
用户可以通过DEBUG的命令对指定文件进行修改、显示和执行。
如果没有文件名,则是以当前存的容工作,或者用命名命令和装入命令把需要的文件装入存,然后再用DEBUG的命令进行修改、显示和执行。
2、DEBUG的主要命令(1)汇编命令A,格式为:-A[地址]该命令从指定地址开始允许输入汇编语句,把它们汇编成机器代码相继存放在从指定地址开始的存储器中。
(2)反汇编命令U,有两种格式:1)-U[地址]该命令从指定地址开始,反汇编32个字节,若地址省略,则从上一个U命令的最后一条指令的下一个单元开始显示32个字节。
2)-U围该命令对指定围的存单元进行反汇编,例如:-U 04BA:0100 0108或–U 04BA:0100 L9此二命令是等效的。
(3)运行命令G,格式为:-G [=地址1][地址2[地址3。
]]其中地址1规定了运行起始地址,后面的若干地址均为断点地址。
汇编语言实验指导书

实验 1 DEBUG的使用一、实验目的1.通过实验了解和熟悉微机系统的配置。
2.学习在DEBUG状态下输入汇编源程序的方法。
3.初步掌握调试(在DEBUG状态下)的过程。
二、实验任务1. 本实验要求在DEBUG状态下输入汇编源程序,并用DEBUG命令进行调试。
用单步跟踪的方法验证指令的功能。
2. 以下是给定的参考程序,并在实验时在每条指令的“;”符号右边按要求填写指令的执行结果。
三、实验仪器微机一台.四、实验步骤1. 用DEBUG的Register命令检查所有寄存器内容,并作记录。
命令格式:R [寄存器名]该命令的功能是显示寄存器的内容,或修改某一指定寄存器内容,若[寄存器名]缺省,则显示所有寄存器内容。
例如:-R2. 用DEBUG的Assemble命令输入汇编源程序。
格式:A [内存地址]注:用“[ ]”符号括起来的部分表示可以省略。
该命令的功能是从指定的内存地址开始(括号不要输入)逐条输入汇编语言源程序并汇编成机器码存入内存。
若地址缺省,则接上一个A命令最后一条指令之后输入汇编语句,若没有用过A命令,则从CS:0100H地址开始输入。
例如:-A0CD3:0100-在输入A命令之后,或每输入一条指令之后,显示器的左端给出了内存的段地址和偏移地址。
每条指令均用回车(↙)结束。
若输入的指令有语法错误,DEBUG拒绝接收,并给出提示,此时可以重新输入。
程序的最后一条指令输入完之后,再按一次回车键(↙),即可结束汇编命令,回到DEBUG提示符“-”状态。
3. 用DEBUG的Unassemble命令反汇编。
命令格式:U [起始地址[终止地址]]该命令的功能是从起始地址到终止地址反汇编目标码,缺省值是接上一个U命令或从CS:0100H地址开始。
例如:-U显示器上将显示程序的内存地址、指令机器码的汇编源程序三列对照清单。
4. 用DEBUG的Trace命令单步跟踪程序。
命令格式:T [ =起始地址] [指令条数]该命令的功能是从指定的起始地址开始逐条执行指令,每执行完一条指令,屏幕显示所有寄存器内容和下一条指令地址和指令。
《汇编语言》实验指导书

《汇编语言》实验指导书计算机学院硬件实验室目录第1部分实验预备知识1.1汇编语言程序的上机操作过程1.2常用DEBUG命令的功能第2部分汇编语言实验实验1 DEBUG基本命令使用 (8)实验2 汇编语言程序的调试与运行 (9)实验3 顺序结构程序设计 (10)实验4分支程序设计 (11)实验5循环程序设计 (12)实验6子程序设计 (15)实验7中断服务程序设计 (16)实验8综合程序设计 (17)实验932位80x86程序设计 (20)第1部分实验预备知识汇编语言程序设计是一门实践性很强的课程。
编写程序、上机调试、运行程序是进一步学习和掌握汇编语言程序设计的必要手段。
建立程序、调试程序需要一些应用程序的帮助。
下面先介绍一些与上机操作有关的应用程序,以为第二部分的实验做出必要的准备。
1.1汇编语言程序的上机操作过程一、所需文件为运行汇编语言程序至少要在磁盘上建立以下文件:(编辑程序)或其他编辑软件MASM.EXE (汇编程序)LINK.EXE(连接程序)DEBUG.EXE(调试程序,DOS外部命令文件)二、运行汇编语言程序的操作步骤1.用编辑程序建立.ASM源文件;2.用汇编程序把ASM文件转换成.OBJ文件;3.用连接程序把OBJ文件转换成.EXE文件;4.用DOS命令直接输入文件名就可执行该程序。
三、汇编语言源程序上机操作过程第一步:建立汇编源程序(即:建立文件名.asm)这个过程就相当于我们在纸上编写源程序代码一样,只不过是将纸变为了计算机,这个过程也称源代码录入。
将源程序代码录入计算机的方法很多,下面将介绍具体方法。
(1)通过windows自带的EDIT.EXE文本编辑器进行输入。
双击图标或在DOS提示符下键入:EDIT回车,这时如果你系统内可调用时,EDIT的操作画面便会出现在屏幕上,你就可在提示下进行录入了,当录入完毕后,选择存盘并给你输入的文件起一个文件名,形式:filename.asm ;(其中filename为你起的文件名,由1-8个字符组成),asm 是为汇编程序识别而必须加上去的,不可更改。
(完整word)《汇编语言》实验指导书-201610,推荐文档

《汇编语言》实验指导书计算机学院网络工程系李冬艳2016.10.1实验一汇编语言上机环境及基本操作一、实验目的及要求1.学习及掌握汇编语言源程序的书写格式和要求,明确程序中各段的功能和相互之间的关系。
2.熟练掌握在计算机上建立、汇编、连接、调试及运行程序的方法。
二、实验内容1.汇编语言源程序的建立本例中给出的程序是要求编写3+5=8的程序,并把8存入AL或AX中。
设定源程序的文件名为ABC.ASM 。
(用任何一个种文本编辑器编写此程序,存盘)或双击桌面的“Masm for Windows 集成实验环境 2012.5”快捷文件图标,进入汇编语言集成开发环境DATAS SEGMENT;此处输入数据段代码DATAS ENDSSTACKS SEGMENT;此处输入堆栈段代码STACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKSSTART:MOV AX,DATASMOV DS,AX;======================================MOV AX ,3 ;自己写的代码Mov BX ,5 ;自己写的代码ADD AX ,BX ;自己写的代码(只有3条);此处输入代码段代码;======================================MOV AH,4CHINT 21HCODES ENDSEND START程序输入完毕后一定要将源程序文件存入盘中,以便进行汇编及连接,也可以再次调出源程序进行修改。
2.将源程序文件汇编成目标程序文件一般情况下,汇编程序MASM.exe的主要功能有以下3点:(1)检查源程序中存在的语法错误,并给出错误信息。
(2)源程序经汇编后没有错误,则产生目标程序文件,扩展名为.OBJ。
(3)若程序中使用了宏指令,则汇编程序将展开宏指令。
3.用链接程序link.exe生成可执行程序文件经汇编以后产生的目标程序文件(.OBJ文件)并不是可执行程序文件,必须经过链接以后,才能成为可执行文件(即扩展名为.EXE)。
汇编语言程序设计实验指导书、实验教学大纲

附件1-3《汇编语言程序设计课程》实验教学指导书课程编号:撰写人:刘伏贵审核人:湘潭大学信息工程学院二○○七年十月十八日前言一、实验总体目标《汇编语言程序设计》是一门重要的专业选修课,同时也是一门实践性很强的课程。
通过实验使学生对所学的汇编语言程序设计内容加深理解,增强实践动手能力,培养学生分析问题和解决问题的能力,以及进行汇编语言程序设计的实践。
在汇编语言程序设计课程的学习过程中,将分别开出《汇编程序与调试器的使用》、《DOS 命令与磁盘文件操作》、《汇编语言与结构化程序设计》、《汇编语言子程序设计》、《十进制数据直接处理程序设计》、《结构数据与汇编语言程序设计》、《记录数据与汇编语言程序设计》、《汇编语言程序设计综合实验》等八个实验。
由于汇编语言程序设计涉及到硬件、操作系统等诸方面的知识,完成实验的难度大。
因此,要求每一个学生必须按照教师的安排和要求,认真完成每一个实验,从而达到培养现代程序设计基本素养的目的。
二、适用专业年级专业:计算机科学与技术、网络工程年级:二年级三、先修课程《C语言程序设计》、《计算机组成原理》四、实验项目及课时分配五、实验环境个人计算机:120台Win 32 操作系统MS DOSMASM 6.0 及其以上版本的汇编程序及配套的80x86 汇编语言程序开发环境六、实验总体要求1、汇编语言程序设计的实验课主要是供学生测试、调试汇编语言程序。
2、必须充分重视实验课。
实验课是汇编语言程序设计课程的重要组成部分,是理论联系实践的重要环节。
通过它,能够培养学生独立分析和解决问题的能力。
3、在每个实验之前,学生必须准备好被测程序的有关设计资料(包括程序的基本设计说明、程序流程图、汇编语言程序清单等)、测试数据、测试驱动程序、测试需要的“桩模块”等。
4、必须做好实验前的一切准备工作,包括程序测试/调试的详细过程安排等。
在实验中应严格按照预先确定的实验过程进行实验,决不允许在实验过程中准备实验程序、测试数据与测试/调试过程计划。
汇编实验指导书

显示所有寄存器内容、标志位情况及下一条指令。
AX102A BX0000 CX0100 DX0000 SP0040 BP0000 SI0000 DI0000
DS1528 ES1428 SS1723 CS1822 IP0003 NV UP DI PL NZ NA PO NC
注意事项:
1、正确、合理使用存储器和寄存器。
• 准确地使用存储单元地址,会用各 种方式表示存储单元地址。
• 正确、合理使用CPU中各寄存器。
2、掌握调试工具DEBUG的使用。
2021/4/6
1
汇 编 语 言 程 序 的 开 发
2021/4/6
2
汇编语言程序的开发步骤 1、编辑—建立汇编语言源程序( .ASM )
18222:00201/04/36 8ED8 MOV DS,AX
11
4、修改命令E
1)修改存储单元内容
A、用内容表修改
- E [地址] [内容表] -E DS:100 F3’XYZ’8D
B、逐个修改
-E 地址 例: - E DS:0 1200:100 20 31 ;将20H修改为31H
输入一个字节的16进制数,替代原单元中的内容。
用任何一种编辑软件,如 EDIT等。
按逻辑段来组织源程序;
以END语句结束源程序; 源文件扩展名为 .asm,且不能省略。
• 源文件扩展名为 .asm,且不能省略。
2021/4/6
3
2、汇编源程序——生成目标( .OBJ )
汇编程序:MASM 格式: MASM *.ASM
主要功能
检查语法错误 实现宏替换 生成目标程序
单元202开1/4/6始连续存放。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
汇编语言实验指导书授课教师李娜授课对象 05计科、网络、06计科授课时间 07-08学年第一学期授课地点一、二、四机房课程简介一.实验课程的性质和目的汇编语言程序设计是计算机专业的一门专业基础课,是学好计算机底层系统构成的课程。
汇编语言程序设计是一门实用性很强的课程。
汇编语言程序程序设计实验教案是教案的重要环节,是理论教案的重要补充,只有通过实验,学生才能熟练掌握汇编语言程序设计的基本方法,并对其有更深刻的认识。
本门实验课是单独设课。
二.实验教案的方法和手段为了提高实验教案效果,实验严把预习、实验、实验报告3个环节。
实验在软件实验室机房完成,单独设组,个人完成实验,每项实验以小班为单位,实验考勤采用电子签到制度。
预习:安排学生学习实验内容,了解实验的过程和操作规程,并布置思考题和预习报告,让学生有目的地去查阅与实验相关的资料。
实验:实验开始前由指导教师讲解实验要点,提出注意事项。
实验过程中,主题是学生,教师是辅助作用,要求学生独立完成实验。
实验报告:实验结束后,强调学生及时填写实验记录表,对实验过程进行详细记录,对实验结果细致地分析、讨论,完成相关思考题作业。
三.课程学时本实验课实验总学时为32学时。
四.实验成绩的考核方法汇编语言实验成绩按百分制核定。
实验过程占50%,实验报告占50%。
五.大纲的适用范围本大纲适用计算机科学与技术专业和计算机应用与维护专业学生。
六.主要设备与器材配备七.实验项目汇总表实验一熟悉汇编语言编程环境一.实验目的<1)熟悉汇编语言编程环境;<2)掌握基本汇编程序。
二.实验仪器设备计算机三.实验重点、难点熟悉汇编语言编程环境;DEBUG常用命令的正确使用。
-T/-U/-Q/-G四.实验题目比较两个字符串string1和string2所含的字符是否相同,若相同则显示‘metch’,否则,显示’no match’。
五.实验内容、步骤1.调用EDIT建立ASM源文件。
2.用汇编程序MASM对源文件汇编产生目标文件OBJ。
<如有问题,可用DEBUG调试。
)3.用LINK联接程序产生执行文件EXE。
4.执行程序。
附:源程序;PROGRAM TITLE GOES HERE—COMPARE STRING;********************************************************data segmentstring1 db 'move the cursor backward.'String2 db 'move the cursor backward.'Mess1 db 'match.',13,10,'$'Mess2 db 'no match.',13,10,'$'data endsprognam segmentmain proc farassume cs:prognam,ds:data,es:datastart:push dssub ax,axpush axmov ax,datamov 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 start六.作业布置<1)完成本实验的实验报告。
<2)针对下一个实验预习课本相关章节;<3)预习实验指导书相关内容,设计上机源程序。
实验二简单程序设计一.实验目的掌握简单程序设计的方法二.实验仪器设备计算机三.实验重点、难点进一步熟悉汇编语言编程环境;四.实验题目试编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来。
五.实验内容、步骤1.调用EDIT建立ASM源文件。
2.用汇编程序MASM对源文件汇编产生目标文件OBJ。
<如有问题,可用DEBUG调试。
)3.用LINK联接程序产生执行文件EXE。
4.执行程序。
附:源程序;PROGRAM TITLE GOES HERE—DISPLAY;********************************************************data segmentmess1 db 'please input one character between a-z',13,10,'$'data endscode segmentmain proc farassume cs:code,ds:datastart:push dssub ax,axpush axmov ax,data 。
datarea segment addrmov ds,ax 。
into DS registermov es,ax 。
set ES register to current。
MAIN PART OF PROGRAMlea dx,mess1mov ah,09 。
call DOSint 21hbegin:mov ah,1 。
receive a data from keyboardint 21hcmp al,'a'jb stopcmp al,'z'ja stopsub al,20hmov dl,al 。
show the inputed charactermov ah,2int 21hjmp beginstop:retmain endpcode endsend start六.作业布置<1)完成本实验的实验报告。
<2)针对下一个实验预习课本相关章节;<3)预习实验指导书相关内容,设计上机源程序。
实验三串操作一.实验目的(1)进一步巩固课本中关于串操作指令学习。
(2)掌握用汇编程序设计中字符串的操作方法。
二.实验仪器设备计算机三.实验重点、难点串操作的隐含操作数的变化。
四.实验题目根据自己的情况建立数据段:student_name db ‘ ‘Student_id db ‘ ‘Print_line db 50 dup(?>把student_name移到print_line的前20个字节中,把student_id移到print_line的后10个字节中,并输出字符串print_line.五.实验内容、步骤1.调用EDIT建立ASM源文件。
2.用汇编程序MASM对源文件汇编产生目标文件OBJ。
<如有问题,可用DEBUG调试。
)3.用LINK联接程序产生执行文件EXE。
4.执行程序。
附:源程序;PROGRAM TITLE GOES HERE—DISPLAY;********************************************************data segmentSTUDENT_NAME DB 'LiJingjing'STUDENT_ID DB '04121026','$'PRINT_LINE DB 50 DUP(' '>,'$'data endsprognam segmentmain proc farassume cs:prognam,ds:data,es:datastart:push dssub ax,axpush axmov ax,datamov ds,axmov es,axbegin:lea si,STUDENT_NAME 。
move STUDENT_NAME's content to。
the head of PRINT_LINElea di,PRINT_LINEmov cx,10cldrep movsbstd 。
move STUDENT_ID to the end。
of PRINT_LINElea si,STUDENT_ID+7lea di,PRINT_LINE+49mov cx,8rep movsb。
PRINT STRINGlea dx,PRINT_LINEmov ah,09 。
show the content of print_lineint 21hretmain endpprognam endsend start六.作业布置<1)完成本实验的实验报告。
<2)针对下一个实验预习课本相关章节;<3)预习实验指导书相关内容,设计上机源程序。
实验四循环程序设计一.实验目的(1)学习循环次数确定的循环程序设计方法。
(2)学习循环次数不确定的循环程序设计方法。
二.实验仪器设备计算机三.实验重点、难点多重循环结构的程序设计。
四.实验题目(1)用汇编语言编程实现密码的验证任务,设密码为“3132”H,放在BX中。
(2)验证密码后,要求从键盘输入任意一串字符,碰到‘Q’则结束。
五.实验内容、步骤1.调用EDIT建立ASM源文件。
2.用汇编程序MASM对源文件汇编产生目标文件OBJ。
<如有问题,可用DEBUG调试。
)3.用LINK联接程序产生执行文件EXE。
4.执行程序。
附:源程序;PROGRAM TITLE GOES HERE—DISPLAYdata segmentmess1 db 'please input your password!',13,10,'$' mess2 db 'ok! please input your number:',13,10,'$' data endsprognam segmentmain proc farassume cs:prognam,ds:data,es:datastart:push dssub ax,axpush axmov ax,datamov ds,axmov es,axbegin:lea dx,mess1mov ah,09 。
show the content of print_lineint 21hmov bx,3132hmov ch,2mov dx,0ABC1:mov ah,07hint 21hmov cl,8shl dx,clmov dl,aldec chjnz ABC1cmp dx,bxjnz ABC2lea dx,mess2mov ah,09 。
show the content of print_lineint 21hABC3:mov ah,1int 21hcmp al, 'Q'jz ABC2jmp ABC3ABC2:retmain endpprognam endsend start六.作业布置<1)完成本实验的实验报告。