汇编语言实验指导书
汇编语言实验指导书
目录第一部分汇编语言程序的上机过程 (1)一、建立汇编语言的工作环境 (1)二、在计算机上运行汇编语言的步骤 (1)三、建立ASM文件 (1)四、用MASM程序产生OBJ文件 (3)五、用LINK程序产生EXE文件 (3)六、程序的执行 (3)七、举例 (3)第二部分汇编语言上机调试 (4)一、为何需要调试? (4)二、如何进行调试? (5)第三部分汇编语言上机内容 (8)实验一输出字符串 (8)实验二算术指令综合编程 (8)实验三查找子字符串 (9)实验四字符串正向、反向输出 (9)实验五信息检索 (9)实验六格式化输出 (9)实验七数组合并 (10)实验八字符统计 (10)实验九数制转换 (10)第四部分汇编语言实验参考代码 (11)实验一输出字符串 (11)实验二算术指令综合编程 (11)实验三查找子字符串 (12)实验四字符串正向、反向输出 (13)实验五信息检索 (14)实验六格式化输出 (17)实验七数组合并 (18)实验八字符统计 (20)实验九数制转换 (22)第一部分汇编语言程序的上机过程一、建立汇编语言的工作环境为运行汇编语言程序至少要在磁盘上建立以下文件:1、编辑程序,如EDIT.EXE2、汇编程序,如MASM.EXE3、连接程序,如LINK.EXE4、调试程序,如必要时,还可建立如CREF.EXE,EXE2BIN.EXE等文件。
二、在计算机上运行汇编语言的步骤1、用编辑程序建立ASM源文件,以ASM作为扩展名2、用汇编程序把ASM文件转换成OBJ文件3、用连接程序把OBJ文件转换成可执行文件4、在DOS提示符下直接键入可执行文件名即可执行该程序三、建立ASM文件建立ASM文件的编辑程序可以是DOS自身带的编辑程序EDIT.EXE,在DOS提示符下键入EDIT命令即可出现EDIT界面,其操作如下:D:\>edit源程序输入完后,以ASM作为扩展名进行保存,假设所保存的文件名为:ex.asm。
《汇编 语言》实验 指导书
孝感学院计算机科学系本科《汇编语言程序设计》实验指导书目录实验一:汇编环境与DEBUG调试 (2)实验二:8086汇编语言分支程序设计 (8)实验三:8086汇编语言循环程序设计 (10)实验四:8086汇编语言子程序程序设计 (13)实验五:8086汇编语言中断与磁盘程序设计 (17)相关说明:《汇编语言程序设计》实验的主要目的是掌握汇编程序调试的方法与一般的程序设计能力,为今后的硬件应用打下基础。
因此本实验指导书重在强调实验调试的环节,有关程序设计的具体方法及相关算法请参见教材。
此文件中用黑体字加粗的内容一般为重要信息或实验的步骤与要求,未使用黑体加粗或有下划线的内容是提示信息或问题的答案。
实验一:汇编环境与DEBUG调试目的与要求熟悉汇编环境与汇编源程序的调试,重点掌握汇编的过程与常用DEBUG命令的用法实验内容一、熟悉汇编的编程环境1.汇编语言源程序的建立:可以使用任何文本编辑器建立汇编源程序文件,如:TC、EDIT等。
但建立的文件扩展名建议为.asm,下面的源程序功能用于在屏幕上输出字符串“hello,world!”,我们通过此源程序的运行过程了解汇编的编程环境。
DATA SEGMENTBUF DB“hello,world!$”DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXLEA DX,BUFMOV AX,9INT21HMOV AH,4CHINT21HCODE ENDSEND START在DOS提示符下键入以下编辑器命令,如:C:\MASM>EDIT或TC然后在编辑器的窗口中通过键盘输入以上源程序。
并保存为文件abc.asm.后返回到DOS提示符下。
2.将源程序文件汇编成目标程序文件:汇编功能可以使用Microsoft的MASM进行,微软的汇编程序有多个版本,但使用方法大致相同,本实验将使用MASM 5.0进行汇编。
《汇编语言》实验指导书.
《汇编语言》实验指导书目录实验一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命令单步执行上述程序。
汇编语言实验指导书
实 验 一实验名称: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调试程序。
汇编语言指导书
实验内容及步骤 一、利用查表方法把DX的内容(十六进制数)转换成ASCII码 1、用A命令键入下列程序: MOV BX,1000 MOV DI,2000 MOV CX,4 LOP: PUSH CX MOV CL,4 ROL DX,CL POP CX MOV AL,DL AND AL,0F XLAT CLD STOSB LOOP LOP INT 20 2、用A命令在1000H处键入下列ASCII码并用D命令检查之: DB …0123456789ABCDEF? 用D命令检查时注意左边的ASCII码值和右边的字符。 4、用T命令逐条运行这程序到LOOP指令处,观察并记录每次运行结果,特别是SP和堆栈内容(用D命令检查)。 5、用G命令将此程序运行到结束,并用D命令检查2000H处所转换的结果。可注意屏幕右边的ASCII字符与DX是否一致。 二、数据串搬家程序: 1、用A命令键入下列程序: MOV SI,1000 MOV DI,1500 MOV CX,0F LOP: MOV AL,[SI] MOV [DI],AL INC SI INC DI LOOP LOP INT 20 2、用A命令DB伪指令在1000H键入下列字符串: ‘IBM_PC COMPUTER'
在操作时要注意提示信息,并按提示操作。 二、DEBUG 命令使用 1、键入 DEBUG 进入 DEBUG 控制状态,显示提示符 '- '。 2、用命令 F100 10F 'A' 将'A'的ASCII码填入内存。 3、用命令 D100 10F 观察内存中的十六进制码及屏幕右边的ASCII字符。 4、用命令 F110 11F 41 重复上二项实验,观察结果并比较。 5、用命令 E100 30 31 32 …… 3F将30H-3FH写入地址为100开始的内存单元中,再用D命令观察结果,看键入的十六进制数是 什么字符的ASCII码? 6、用H命令检查下列各组十六进制数加减结果并和你的手算结果比较: (1)34H,22H (2)56H,78H (3)A5,79H (4)1284H,5678H (5)A758H,347FH 7、用R命令检查各寄存器内容,特别注意AX,BX,CX,DX,IP及标志位中ZF,CF和AF的内容。 8、用R命令将AX,BX内容改写为1050H及23A8H。 三、熟悉汇编语言的编程过程 1、首先在运行菜单中运行CMD命令,进入DOS状态。 2、切入D:盘,进入MASM。 3、用EDIT <文件名.asm> 命令编辑下列源程序。 data segment message db "Hello World!",'$' data ends code segment assume cs:code,ds:data begin:mov ax,data mov ds,ax mov dx,offset message mov ah,9 int 21h mov ah,4ch int 21h code ends end begin 4、用MASM <文件名> 命令编译源程序。(如果出错,则需要重新编 辑,修改错误)。 5、用LINK <文件名>命令连接目标文件,生成可执行文件。(可以用 DIR命令查一下—)。 6、运行该可执行文件,检查是否正常输出字符串。 实验报告要求
汇编语言实验指导书
第一章DEBUG系统的使用一、DEBUG的作用DEBUG是DOS提供的用于程序调试的系统,作为DOS的外部命令随DOS的其它外部命令一起由DOS的提供产商向用户提供。
因此用户在使用DEBUG系统时一定要注意当前用户所使用的DOS 的外部命令中是否提供该命令(若DOS命令不全,有可能没有此命令)。
二、DEBUG的使用1、DEBUG的调用由于DEBUG是DOS的外部命令,因此必须在DOS的提示符状态下进行调用。
调用的方法如下:C:\>DEBUG [FILENAME]此处FILENAME应是文件的全名,即应包括文件的主名和扩展名(若文件有扩展名),如文件不在当前目录,则还因包括文件所存放的目录名。
但文件名也可以省略,此时表示(暂时)不调用任何文件。
(DOS 的提示符不一定是“ C:\> ”,可以是其它的形式,请使用者根据具体情况自行确定。
)当进入了DEBUG 系统后,系统的状态是在屏幕的左边显示一短杠:-此时用户可以在此进行相应的调试工作。
用户也可以在调入DEBUG系统的同时调入要调试的程序,调用的方法如下:C:\>DEBUG 若在当前目录中能找到相应的文件,则系统在屏幕的左边显示一短杠:-若在当前目录中能找不到相应的文件,则系统在屏幕上显示:file not find并在屏幕的左边显示一短杠:-注意:DEBUG调试程序只能调用当前目录的文件。
2、DEBUG的调试命令(1)汇编命令A(Assemble)格式:A[address]说明:address 是要进行汇编程序(编码)输入的首地址,可省略。
如:-a16D8:0100 mov ah,216D8:0102 mov al,116D8:0104 mov bx,020016D8:0107 mov cx,000116D8:010A mov dx,000116D8:010D int 1316D8:010F int 316D8:0110-或:-a20016D8:0200 mov ah,216D8:0202 mov al,116D8:0204 mov bx,020016D8:0207 mov cx,000116D8:020A mov dx,000116D8:020D int 1316D8:020F int 316D8:0210-如在操作过程中有错误,系统会及时地通知操作者并要求操作者重新输入。
汇编语言实验指导书
实验目的与要求一、实验目的学习程序设计的基本发方法和技能,熟练掌握用汇编语言设计、编写、调试和运行程序的方法。
为后续课程打下坚实的基础。
二、实验要求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执行程序。
如果用户程序有错误或者没有直接将结果在终端上显示出来,程序执行完之后无法看见正确的结果。
那么怎么知道程序执行的结果是正确的呢?此外,大部分程序必须经过调试阶段才能纠正程序执行中的错误,得到正确的结果。
《汇编语言》指导书(5,6,8专业)
《汇编语言程序设计》实验指导书实验一汇编语言上机过程和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 文件名。
汇编语言实验指导更完整
目录(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 是为汇编程序识别而必须加上去的,不可更改。
汇编实验指导书-1
实习一调试工具的使用方法训练1 调试工具DEBUG简介DEBUG是DOS操作系统为汇编语言程序设计者和系统管理员提供的一个通用调试工具,利用DEBUG可以读写、传送、比较、查找和显示存储器单元内容,设置程序起始执行地址或断点,执行程序或分段执行程序,跟踪程序执行,显示处理器状态,汇编或反汇编程序等。
用DEBUG 编程简单、方便和直观,可以直接查看程序执行情况,便于熟悉和理解指令,掌握基本编程技巧。
DEBUG只使用十六进制表示数据(十六进制数后不加“H”),屏幕的显示数据形式如下:1400:0100 24 65 6E 64 73 0D 0A 20-20 63 6F 64 65 20 20 24 *ends..code *1400:0110 73 65 67 6D 65 6E 74 0D-0A 20 20 20 20 20 20 24 segment.. *1400:0170 24 61 78 2c 30 0D 0A 09-20 20 20 20 70 75 73 68 *ax,0 push屏幕每行显示内容分为三部分,一行共显示十六个字节单元的内容。
第一部分是本行所显示的16个字节数据在存储器中的起始存放地址;第二部分是以十六进制显示的16个字节数据;第三部分是将本行所显示字节数据看作ASCII码时显示的字符,若某字节数据对应不可显示的ASCII码,则显示一个“.”字符代替该字节数据的显示字符。
DEBUG只有十几条单字母命令,功能强且易掌握,常用DEBUG命令如下:1)DEBUG的进入和退出进入DEBUG时,如果要同时装入某程序,键入下面的命令:H:> DEBUG <文件名> [<参数>]其中文件名指定要装入的程序目标码文件,其扩展名可以是.COM或.EXE。
<参数>是由被装入程序接收的参数。
此外,也可以用下面的方式进入DEBUG:H:> DEBUG-“-”是DEBUG的命令提示符,表明已进入DEBUG状态。
汇编语言实验指导手册(附个人编译答案)
汇编语言程序设计实验指导手册班级:_______________学号:_______________姓名:杨天啸电子与信息工程学院计算机科学系写在最前面的话这个文档在网上到处都是,这也体现了我们工大人大公无私的精神~\(≧▽≦)/~ 但是!答案是没有滴~~~因此老杨我作为一个伪学霸,特地整理了一下我自己编的程序,有些加以极其详细备注,这要特地感谢我的→_→战友←_← 啊,没有她的鸡蛋里挑骨头的询问,我也不会打得如此详细,我发表这个文档的目的不是让大家大肆抄袭,而是仅仅为大家提供一个汇编上的编程思路,当然我的程序肯定有不足之处啦,毕竟是伪学霸╮(╯▽╰)╭,所以大家一定要小心哦,不要踩雷,祝大家学习进步,心想事成,成为学霸,走上人生巅峰,抱得美人归*^_^*第一部分上机实验的目的和要求一、课程性质、目的与任务“汇编语言程序设计实验”课程是计算机科学与技术及其他相关专业学生的一门核心必修课程。
通过本课程的学习与实验,可以加深学生对汇编语言的理解,进一步掌握CPU、存储器及外设的性能和他们的基本使用方法,提高学生运用所学知识,独立分析问题与解决问题的能力。
二、教学基本要求本课为设计性实验课,学生试验前应按实验内容要求编制程序,学生在实验期间输入和调试程序,观察程序运行结果,课后写出试验报告。
指导教师在实验前概述实验程序算法,在实验期间做针对性的指导、检查实验结果,实验后批改实验报告。
三、上机实验前的准备工作在上机实验前应事先做好准备工作,以提高上机实验的效率,准备工作至少应包括:(1)了解所用的计算机系统的性能和使用方法;(2)复习和掌握与本实验有关的教学内容;(3)准备好上机所需的程序。
由于计算机实验室给每个学生安排的时间是有限的,要珍惜时间,充分利用。
应当在上机前按指定的题目编写好程序。
手编程序应书写整齐,并经人工检查无误后才能上机,以提高上机效率。
初学者切忌不编程序或抄别人程序去上机,应从一开始就养成严谨的科学作风;(4)对运行中可能出现的问题事先作出估计,对程序中自己有疑问的地方,应作出记号,以便在上机时给予注意;(5)准备好调试和运行时所需的数据。
汇编语言实验指导书
汇编语⾔实验指导书《汇编语⾔》实验指导书/实验报告2011年4⽉编制专业:班号:学号:姓名:哈尔滨华德学院计算机应⽤技术系实验⼀DEBUG调试程序和汇编程序的上机操作A DEBUG调试程序的使⽤⼀、实验⽬的学会在DOS环境下使⽤DEBUG调试程序⼆、DEBUG调试程序1.DEBUG调试程序的启动在运⾏菜单下单击DEBUG选项。
2.退出DEBUG—Q↙(回车)3.DEBUG的命令清单(1)显⽰内存单元内容的命令—D格式: D 地址显⽰从指定地址开始的128个字节的内容。
D 范围显⽰指定范围的内存内容。
D 从上次D命令结束位置接着显⽰。
例1:从数据段偏移地址FF40H单元开始,显⽰40H个字节的内容。
D FF40 L 40↙(回车)(2)修改内存单元内容的命令—E格式: E 地址表⽤表中内容替代指定地址开始的内存块内容。
E 地址显⽰指定地址的1个字节的内容,输⼊新值按空格键进⼊到下⼀字节位置;按“—”键返回到上⼀字节;按回车键则结束E命令。
(3)填充命令—F格式: F 范围表⽤表中内容反复赋值以填充指定范围的内存块。
(4)显⽰修改寄存器—R格式:R 显⽰并可修改指定寄存器的内容。
R 寄存器名显⽰并可修改标志寄存器的内容。
RF 显⽰并可修改标志寄存器的内容。
(5)汇编命令—A格式: A 地址从指定地址开始汇编,结果写⼊内存。
A 若不指定地址则从上次A命令结束位置开始汇编。
⾸次则从CS:100H开始汇编。
注:汇编语句中不能使⽤名字。
A命令只识别指令和DB,DW伪指令。
(6)反汇编命令—U格式:U [地址] 从指定地址或上次U命令结束位置开始把内存16字节(40列显⽰格式)或32字节(80列显⽰格式)内容反汇编。
U 范围把指定地址范围的内存块全部进⾏反汇编。
(7)跟踪命令—T格式:T [=地址] 从指定地址(缺省为当前CS:IP地址)执⾏⼀条指令,并显⽰寄存器内容,标志位的状态和下⼀条指令。
T [=地址] 条数单步⽅式指定⾏指定条数的各条指令。
汇编语言程序设计实验指导书、实验教学大纲
附件1-3《汇编语言程序设计课程》实验教学指导书课程编号:撰写人:刘伏贵审核人:湘潭大学信息工程学院二○○七年十月十八日前言一、实验总体目标《汇编语言程序设计》是一门重要的专业选修课,同时也是一门实践性很强的课程。
通过实验使学生对所学的汇编语言程序设计内容加深理解,增强实践动手能力,培养学生分析问题和解决问题的能力,以及进行汇编语言程序设计的实践。
在汇编语言程序设计课程的学习过程中,将分别开出《汇编程序与调试器的使用》、《DOS 命令与磁盘文件操作》、《汇编语言与结构化程序设计》、《汇编语言子程序设计》、《十进制数据直接处理程序设计》、《结构数据与汇编语言程序设计》、《记录数据与汇编语言程序设计》、《汇编语言程序设计综合实验》等八个实验。
由于汇编语言程序设计涉及到硬件、操作系统等诸方面的知识,完成实验的难度大。
因此,要求每一个学生必须按照教师的安排和要求,认真完成每一个实验,从而达到培养现代程序设计基本素养的目的。
二、适用专业年级专业:计算机科学与技术、网络工程年级:二年级三、先修课程《C语言程序设计》、《计算机组成原理》四、实验项目及课时分配五、实验环境个人计算机:120台Win 32 操作系统MS DOSMASM 6.0 及其以上版本的汇编程序及配套的80x86 汇编语言程序开发环境六、实验总体要求1、汇编语言程序设计的实验课主要是供学生测试、调试汇编语言程序。
2、必须充分重视实验课。
实验课是汇编语言程序设计课程的重要组成部分,是理论联系实践的重要环节。
通过它,能够培养学生独立分析和解决问题的能力。
3、在每个实验之前,学生必须准备好被测程序的有关设计资料(包括程序的基本设计说明、程序流程图、汇编语言程序清单等)、测试数据、测试驱动程序、测试需要的“桩模块”等。
4、必须做好实验前的一切准备工作,包括程序测试/调试的详细过程安排等。
在实验中应严格按照预先确定的实验过程进行实验,决不允许在实验过程中准备实验程序、测试数据与测试/调试过程计划。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
汇编语言程序设计实验指导书理学院计算机科学技术教研室目录汇编语言实验教学大纲 (1)汇编语言的上机过程 (4)实验一汇编语言的上机及顺序结构程序设计 (6)实验二分支结构程序设计 (7)实验三循环程序设计 (8)实验四BIOS及DOS功能调用 (12)实验五综合程序设计 (13)附录汇编语言常见错误信息解释 (14)《汇编语言程序设计》实验课教学大纲课程名称:汇编语言程序设计实验(Assembly Language Programming)课程编号:课程类别:专业课(非独立设课)学时:12学时(总学时40,其中理论28学时、实验课12学时)学分:1学分(总学分2.5分,其中理论1.5学分、实验课1学分)项目统计:5个(其中演示性0个,基础性4个,综合性1个,设计性0个;开放性0个)考核方式:考查适用专业:计算机科学与技术本科专业前修课程:高级语言程序设计建设开课学期:第4学期一、课程性质、目的任务《汇编语言程序设计》实验课是《汇编语言程序设计》课程的重要组成部分,通过实验教学可以帮助学生掌握汇编语言的基本指令、语句、程序结构及程序设计的基本方法和技能。
为后续课程的学习打下一定的基础。
二、教学基本要求1.掌握8086的编程结构;2.掌握常用寻址方式及常用指令;3.学习汇编源程序的编辑、汇编、连接、运行的全过程,熟悉DEBUG的使用;4.掌握三种基本结构的程序设计;5.掌握子程序设计;6.掌握BIOS及DOS功能调用。
四、主要仪器设备每组一套PⅡ以上的PC机。
五、参考教材及图书资料1.《IBM PC汇编语言程序设计》,沈美明等著,清华大学出版社;2.《汇编语言程序设计》,徐建民等编著,电子工业出版社;3.《IBM-PC汇编语言程序设计实验教程》沈美明等著,清华大学出版社。
六、教学方法与考核1. 教学方法采用实验讲解、辅导、学生验证并配合实验习题相结合的教学方法。
2.考核方法实验课考查、实验报告评定。
七、大纲正文实验一汇编语言的上机及顺序结构程序设计(2学时)[目的要求]1.掌握汇编源程序的结构;2.学习汇编语言的上机过程;3.熟悉DEBUG的使用;4.掌握基本指令的使用。
[基本内容]调试3-4个顺序结构程序,从而掌握汇编语言的上机过程、DEBUG的使用以及基本指令的使用。
实验二分支结构程序设计(2学时)[目的要求]掌握单分支、双分支以及多分支结构的程序设计。
[基本内容]1.单分支结构程序设计;2.双分支结构程序设计;3.多分支结构的程序设计。
实验三循环结构程序设计(2学时)[目的要求]掌握单重循环、多重循环结构的程序设计。
[基本内容]1.单重循环结构程序设计、2.多重循环结构程序设计实验四 BIOS及DOS功能调用(2学时)[目的要求]1.掌握BIOS功能调用及DOS功能调用的概念和方法;2.掌握常用的BIOS功能调用及DOS功能调用。
[基本内容]1.常用的BIOS功能调用;2.常用的DOS功能调用。
实验五综合程序设计(4学时)[目的要求]熟练掌握三种基本结构程序设计、掌握结构化程序设计方法,并能综合运用,从而培养学生综合分析问题和解决问题的能力。
[基本内容]设计并实现一个小型应用实例,要求:1、接收从键盘输入的一个班的学生成绩,存放于50字的grade数组中,其中grade+i 保存学号为i+1的学生成绩。
2、根据grade中学生成绩,把学生名次填入50字的rank数组中,其中rank+i的内容是学号为i+1学生的名次。
3、最后按学号顺序把名次从终端显示出来。
八、综合性或设计性实验项目说明实验名称:综合程序设计(实验五)实验项目说明:综合程序设计实验项目的完成需要在熟练掌握三种基本结构的基础上,采用结构化程序设计方法并结合DOS功能调用来完成,是一次综合复习与提高的过程。
在综合训练中采用基于问题的教学方法,然后围绕要解决的问题,进行分析和研究,确定程序结构并进行程序实现。
经过这些实践环节,大家可以得到锻炼,提高实际编程能力;特别是经过综合训练中实际问题的解决,不但能提高学习兴趣,还有利于培养学生综合分析问题和解决问题的能力。
课程负责人:黄勇大纲主撰人:黄勇大纲审核人:程节华计算机科学技术教研室2006.6汇编语言的上机过程1、8086汇编语言的工作环境(1)硬件环境: Intel CPU (8086、80286等)或与其兼容CPU(2)软件环境:①操作系统(DOS2.0以上),②编辑程序(),③汇编程序(MASM.EXE),④连接程序(LINK.EXE),⑤调试程序()。
2、汇编语言上机的一般过程汇编语言的一机的一般步骤为:编辑(用编辑程序形成汇编语言源程序)、汇编(用汇编程序将源文件汇编成目标文件)、连接(用连接程序将目标程序转换为可执行文件)、调试运行(执行可执行性文件,若有错误,利用DEBUG调试程序进行调试,直到没有错误为止。
(1)编辑一般情况下可用EDIT来编辑形成汇编语言源程序文件,即建立ASM文件。
EDIT是一个在DOS环境下使用的文本编辑程序,在DOS状态下,键入:EDIT 源文件名,即表示在当前目录下,建立一个源文件。
用ALT键可激活菜单菜单。
(2)汇编汇编用MASM宏汇编软件把ASM文件汇编成OBJ文件的过程。
使用格式:MASM 文件名例:MASM SHIYAN1 (或SHIYAN1.ASM)运行后,有3个问题需用户回答:①提示要求输入目标文件名,直接按回车,采用系统规定的文件名。
②询问是否建立列表文件,不需要时直接按回车,若需要,输入一文件名后,再按回车。
③询问是否建立交叉索引文件,不需要时直接按回车,若需要,输入一文件名后,再按回车。
说明:在汇编过程中,如果发现程序有语法错误,则列出出错位置、错误代码及错误性质,最后分别列出警告错误(Warning Errors)和严重错误(Serve Errors)的个数N和M,若N和M不为0,说明源程序程序有错误,需要对源程序进行修改后再进行汇编,直至N和M都为0H止。
(3)连接(用LINK产生EXE文件)汇编程序已产生出二进制的目标文件(OBJ),但OBJ文件并不是可执行的文件,还必须把OBJ文件转换成可执行的EXE文件。
格式:LINK 文件名例:LINK SHIYAN1注:连接时有3个需要用户回答的问题,用户可据需要回答。
连接完成后,连接程序给出的无堆栈段的警告性错误并不影响程序的执行,如果还有其他错误提示,说明源程序可能有错,需要修改源程序后再进行汇编和连接。
(4)运行程序形成EXE文件后,就可在DOS提示符下运行了。
那么如何检查运行结果是否正确?若结果不正确,如何调试程序,纠正程序中的错误,从而得到正确的结果?这里要使用DEBUG程序。
(5)调试(1)先进入DEBUG 并装入要调试的程序(例:SHIYAN1.EXE)DEBUG SHIYAN1.EXE(2)用反汇编命令U来确定程序各段在内存中的位置。
-U(3)在确定断点后,就可以用G命令使程序启动运行。
例:-G=0 001D ;执行程序(从0到001D单元)程序将停在断点处,并显示出所有寄存器发及各标志位的当前值,最后一行给出下一条将要执行指令的地址、机器语言及汇编语言。
我们可以从寄存器的内容来了解程序运行是否正确。
D命令(显示指定内存单元的内容)①输入显示的起始地址(只键入一具相对偏移量,段地址在DS中)例:-D100②若要显示指定范围的内容,则输入显示的起始地址和结束地址.例:-D 0100 011FQ命令(退出DEBUG)-Q 退出DEBUG,返回DOS实验1:汇编语言的上机及顺序结构程序设计一、实验目的1、掌握汇编语言的上机过程。
2、掌握顺序结构程序设计。
二、实验内容1、上机调试下面程序,并写出具体步骤、调试结果及程序的功能。
DATA SEGMENTBUF1 DB 34HBUF2 DB 2AHSUM DB ?DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV AL,BUF1ADD AL,BUF2MOV SUM ,ALMOV AH,4CHINT 21HCODE ENDSEND START2、上机调试下面程序、并写出调试结果及程序的功能。
DATA SEGMENTBUF DB 0,1,4,9,16,25,36,49,64,81X DB 5DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV BX,OFFSET BUFMOV AL,XXLATMOV X,ALMOV AH,4CHINT 21HCODE ENDSEND START实验二分支结构程序设计一、实验目的1、掌握常用的分支指令的使用。
2、掌握三种分支结构的程序实现方法。
二、实验内容1、调试下面的程序、写出调试结果及程序的功能。
DATA SEGMENTX DB 99DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXTEST X,01HJZ NEXT1INC XNEXT1: MOV AH,4CHINT 21HCODE ENDSEND START2、调试下面的程序、写出调试结果及程序的功能。
data segmentA db 23HB DB 25Hdata endscode segmentassume cs:code,ds:datastart:mov ax,datamov ds,axMOV AL,ACMP AL,BJZ NEXT1MOV DL,"#"JMP NEXT2NEXT1:MOV DL,"="NEXT2:MOV AH,4CHINT 21HCODE ENDSEND START3、调试下面的程序、写出调试结果及程序的功能。
DATA SEGMENTNUM DB 3DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV AL,NUMCMP AL,1JZ NEXT1CMP AL,2JZ NEXT2CMP AL,3JZ NEXT3NEXT1:MOV DL,31HJMP EXITNEXT2:MOV DL,32HJMP EXITNEXT3:MOV DL,33HJMP EXITEXIT:MOV AH,2INT 21HMOV AH,4CHINT 21HCODE ENDSEND START实验三循环程序设计一、实验目的1、掌握专用循环指令的使用。
2、掌握循环结构的程序实现方法。
二、实验内容调试下面的程序,并写出调试结果程序1:已知以BUF为首地址的10个数(字节型),求其和(设和小于127),结果存放在RES单元(字节型)。