《汇编_语言》实验__指导书
汇编语言实验指导书
目录第一部分汇编语言程序的上机过程 (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。
汇编语言程序设计实验指导书
汇编语言实验报告题目:子程序设计班级:rbw111姓名:吴德鹏学号:201107092416完成日期:2013.12.22概述:《汇编语言程序设计》实验指导书是非计算机、非电类的其他专业:包括纺织、机械、热能等专业的《汇编语言程序设计》课程配套使用的实验指导。
在理论课的教学中着重介绍微机系统的组成及工作原理,针对INTEL 8088/8086系列介绍相应的指令系统和汇编语言程序设计,介绍了接口的一般概念和CPU与外设交换信息的常用方式的软硬件设计思想。
实验课测重培养学生的汇编语言设计能力及一些简单接口程序设计的方法,训练学生汇编语言程序调试的能力。
通过实验,使学生加深对课堂教学内容的理解,培养学生综合使用微型机的初步能力。
其中实验一、实验二是后续实验的基础,通过该实验,学生应能了解汇编语言源程序的一般格式,熟悉汇编语言程序的上机过程和调试程序的基本方法,重点放在DEBUG调试程序的命令使用方法上。
也可以将实验一、实验二合并为一个实验,按照*实验一的要求进行;实验三、四、五进一步培养学生的各种结构的程序设计能力;实验六主要是简单接口的综合应用,为学生建立一个微机应用系统的概念,使学生通过具体的实例对相关的接口有感性认识,提高学生的实际动手能力和独立解决问题的能力。
教师可以根据专业学时的多少和学生的具体情况来开设实验。
一、实验目的:1.进一步熟悉分支、循环程序设计的方法及用DEBUG调式程序的方法。
2.熟练掌握子程序的参数传递的方式、子程序的嵌套、递归调用及其设计方法和技巧。
3、培养学生创新精神和独立运用所学基本知识和技能分析问题和解决问题的能力。
二、实验属性:显示学生名次表:编制一程序,要求接收从键盘输入的一个班的学生成绩,并存放于50字的grade数组中,其中grade+i保存学号为i+1的学生的成绩。
然后根据grade中的学生成绩,把学生名次填入50字的rank数组中,其中rank+i的内容是学号为i+1学生的名次。
汇编实验指导书
实验一汇编语言程序的上机过程一、实验目的掌握汇编语言源程序的编辑、汇编、连接及运行过程,为以后的实验打下基础。
二、实验内容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.编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来。
《汇编语言程序设计》实验指导书
实验一简单程序编制和上机过程一.实验目的1.掌握计算机常用代码的软件转换技术。
2.熟悉DEBUG软件的使用。
3.掌握简单程序的编程方法。
二.实验内容代码转换是计算机和I/O设备进行信息交换的重要技术之一。
各种I/O设备所提供和接收的数据编码不尽相同。
为了处理这些信息,计算机必须将各种不同编码形式的信息转换成别种适当的数据形式。
例如,键盘输入的数据均为ASC Ⅱ码形式存储在内存中,通常要求将其转换成相应的数据形式。
一般实现代码转换有两种方法:1.软件法利用CPU的算术逻辑运算功能,通过运算或查表实现各种数据代码间的转换。
该方法经济但速度慢。
2.硬件法利用专用代码转换集成电路进行转换。
如74LS74可把BCD码转换为七段代码。
这种方法需要硬件费用,但速度快。
本实验要求掌握软件编码转换技术。
计算机常用的代码有二进制、八进制、十六进制、BCD码、ASCⅡ码、七段码等,它们之间的相互关系如下表所示。
本次试验的内容是ASCⅡ码转换为未组合BCD码设从键盘输入十进制数的ASCⅡ码已存放在起始地址CS :150H的单元中,把它转换成未组合BCD码后,再分别存入起始地址为CS:15AH的单元中。
若输入的不是十进制数的ASCⅡ码,则相应存放结果单元的内容为“FF”。
提示:1.组合BCD码是一位十进制数字占一个字节,高半字节为0,低半字节为该十进制数字的BCD码。
ASCⅡ码转换为未组合BCD码只需减30H。
2.程序框图如下图所示。
3.程序执行前,需要在CS:150H内存缓冲区写入待转换的ASCⅡ码。
方法如下:方法一:用A命令-ACS:150 DB 35,39,30,41,32CS:155 ∧C方法二:用E 命令-ECS:150,35,39,30,41,32方法三:用F命令-FCS:150 L5 35,39,30,41,321.执行程序后检查执行结果可用D命令:-DCS:15ACS:15A 05,09,00,FF,02ASCⅡ码转换为未组合BCD码的程序流程图参考程序如下:ORG 100HMOV CX,0005HMOV DI,150HBB:MOV BL,0FFHMOV A,[DI]CMP AL,3AHJNB DONESUB AL,30HJB DONEMOV BL,ALDONE:MOV AL,BLMOV [DI+0AH],ALINC DILOOP BBINT 20HORG 150HDB 35H,39H,30H,41H,32H实验二顺序结构的程序设计一.实验目的1.掌握计算机常用代码的软件转换技术。
汇编语言程序设计实验指导书
重庆师范大学涉外商贸学院计算机各专业实验用书汇编语言程序设计实验指导书(第一版)张开成编前言为适应教学内容由简到繁、由易到难、由浅入深的教学特点,我们编写了这本简易实验指导书,用以指导实验教学。
该指导书分两部分,第一部分指出实验的实验目的、实验内容、实验准备、实验要求、共提出十五个实验,需三十个学时完成。
第二部分为十五个实验的全部程序,仅供学生参考。
该实验指导书由数计学院计算机教研室张开成同志编写。
2010年2月第一部分提出各实验的实验内容、实验目的、实验要求和学时分配实验一:汇编语言基本操作实验(2学时)一、实验目的:明确QE、MASM、LINK三个系统软件的作用。
掌握汇编语言程序的编辑、汇编、连接过程。
二、实验内容:1、编写一个程序:用十进制输出一个按键的AS CⅡ值。
2、从键盘上读入两个一位数(必须保证按下数字键),输出它们的积。
三、实验准备:1、预习QE、MASM、LINK 三个软件的使用方法。
2、按实验要求,编写好实验源程序。
四、实验步骤:1、用QE编辑扩展名为.ASM的源文件。
2、汇编、连接生成扩展名为.EXE的可执行文件。
3、运行程序。
五、实验报告要求:1、总结用QE编辑源程序的方法。
2、说明源程序的连接、汇编过程。
3、分析运行结果。
4、按要求写出完整的实验报告(必须列出程序清单)。
实验二:分支程序设计实验(2学时)一、实验目的:1、学会简单分支和多分支程序的设计方法。
2、掌握程序的调试方法。
二、实验内容:1、从键盘读入两个一位数,输出它们的积。
若为非数字键,则显示字符“E”,退出程序。
2、从键盘接收一个按键,如为小写字母,则显示“L”,是大写字母,则显示“U”,如是数字,则显示“N”,都不是则显示“*”。
三、实验准备:1、预习分支程序设计方法。
2、按实验内容要求,编写好实验源程序。
四、实验步骤:1、用QE编辑扩展名为.ASM的源文件。
2、汇编、连接生成可执行文件.EXE。
3、运行程序。
汇编语言实验指导书
实 验 一实验名称: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调试程序。
汇编的实验指导书
汇编语言实验指导书讲课教师李娜讲课对象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系统的使用一、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-如在操作过程中有错误,系统会及时地通知操作者并要求操作者重新输入。
《汇编语言》课程实验指导书
《汇编语言》课程实验指导书《汇编语言》课程实验指导书扬州大学信息学院计算机科学与工程系 2007年5月实验一 DEBUG的使用(一)目的及要求进一步熟悉常用的单、双操作数指令和各种寻址方式的功能及使用格式,初步掌握调试程序DEBUG程序的基本使用方法,为以后的实验打下基础。
(二)实验内容1、用 DEBUG的基本命令,单步执行y=(x-1)2+30的程序,检查每条指令执行后目的地址及有关寄存器的内容。
2、用DEBUG的A命令,键入如下程序段: MOV BX,8275HMOV AX,3412H ;双精度数34128275H——AX、BX ADD BX,92A5HADC AX,2F65H ;加上双精度数2F6592A5H ADD BX,0EAE6HADC AX,9C88H ;加上双精度数9C88EAE6H然后用T命令单步执行,查看每条指令执行后有关寄存器的内容及标志位的变化。
注意:①用A命令时键入的数均为十六进制,故其后的“H”不要键入.②用T命令不适合执行“INT”指令。
3、学会使用DEBUG中的命令:D、G、E、R、T、A、U,为后面调试运行汇编源程序打下基础。
实验二分支、循环程序设计(一)目的及要求1、进一步理解条件转移指令的格式及功能,以便在分支程序中选用合适的指令。
2、提高设计及调试分支程序的能力。
3、掌握循环程序的结构及循环控制方法,提高循环程序的设计能力。
(二)实验内容1、用 DEBUG的基本命令,执行P120例5-2程序。
2、根据以下各题的要求写出其源程序井上机调试运行,显示(或打印)出运行结果。
①从键盘输入一字符串存放在IN-BUF 缓冲区中,然后在下一行以相反顺序显示出来。
②以附录1的格式显示(或打印)出 ASCll码表。
对于无法显示出的格式符或功能符,如空白0、响铃7、换行OAH、回车ODH、空格4DH等均用空格代替。
实验三子程序设计(一)目的及要求1、熟练掌握子程序的设计方法与调用方式,并能正确地书写子程序说明。
汇编语言实验指导书
实验目的与要求一、实验目的学习程序设计的基本发方法和技能,熟练掌握用汇编语言设计、编写、调试和运行程序的方法。
为后续课程打下坚实的基础。
二、实验要求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执行程序。
如果用户程序有错误或者没有直接将结果在终端上显示出来,程序执行完之后无法看见正确的结果。
那么怎么知道程序执行的结果是正确的呢?此外,大部分程序必须经过调试阶段才能纠正程序执行中的错误,得到正确的结果。
(完整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)。
汇编语言实验指导书
汇编语⾔实验指导书《汇编语⾔》实验指导书/实验报告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 [=地址] 条数单步⽅式指定⾏指定条数的各条指令。
汇编语言程序 实验指导书
《汇编语言程序设计》实验指导书计算机系统结构团队编西南科技大学计算机科学与技术学院2011年3月实验指导书说明汇编语言程序设计是一门实践性很强的课程,只有通过上机实践才有可能掌握设计技术并使其达到较高的水平,因此编写了实验指导书,为汇编语言程序设计课程的实验教学服务。
实验指导书共分三部分,第一部分是实验的预备知识,介绍了汇编语言程序运行时所需要的一些应用程序;第二部分是对实验报告的要求。
第三部分是实验题目,分为验证型实验和设计型实验。
在具体的实验过程中可以根据学生情况进行选择。
目录:第一部分汇编语言程序设计实验基础知识概述 (4)1.1、汇编程序MASM.EXE (4)1.1.1 宏汇编程序的功能 (4)1.1.2 汇编程序的用法 (4)1.1.3 MASM出错信息 (5)1.1.4 连接程序LINK.EXE (6)1.2 DEBUG命令详解 (7)1.2.1 DEBUG的功能 (7)1.2.2 DEBUG的使用方法 (7)1.2.3 DEBUG命令功能说明 (8)第二部分实验要求 (36)2.1 实验要求 (36)2.2 实验报告要求 (36)2.3 加强实践能力的培养 (36)第三部分实验内容 (37)实验1 MASM、LINK指令的使用实验 (37)实验2 汇编命令(伪指令)实验...................................................... 错误!未定义书签。
实验3 顺序结构程序实验................................................................ 错误!未定义书签。
实验4 简单分支结构程序实验 (39)实验5 循环结构程序实验 (41)实验6 子程序实验 (43)实验7 DOS功能调用 (46)实验8 排序和检索程序实验 (47)实验9 字符串操作实验 (51)第四部分参考资料 (57)第一部分汇编语言程序设计实验基础知识概述1.1、汇编程序MASM.EXE经过编辑的程序所建立的汇编语言源程序,是不能直接在计算机上运行的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
BUF DB “hello,world!$”
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
6、汇编命令A:
A命令的格式为:
-A [address]
该命令允许键入汇编语言语句,并能把它们汇编成机器代码,相继地存放在从指定地址开始的存储区中。
7、反汇编命令U :
U命令有两种格式:
1)从指定地址开始,反汇编32个字节,其格式为:
-U[address]
例如:
067C:0110 03 41 42 43 44 45 46 47 - 48 49 4A 4B 4C 4D 4E 4F .ABCDEFGHIJKLMNO
067C:0120 41 A
说明:
左边是用十六进制表示的存储单元地址,0100至0120是DEBUG要显示的存储单元段内偏移地址,而067C是当前数据段的段首址。中间是每个字节存储单元的内容。右边表示每个字节可以显示的字符,“.”表示是不可显示的字符。D命令一行显示16个字节单元的内容,前8个字节与后8个字节之间用-连接。
一般情况下,MASM汇编程序的主要功能有以下3点:
(1)检查源程序中存在的语法错误,并给出错误信息。
(2)源程序经汇编后没有错误,则产生目标程序文件,扩展名为.OBJ。
(3)若程序中使用了宏指令,则汇编程序将展开宏指令。
源程序建立以后,在DOS状态下,可以采用宏汇编程序MASM对源程序文件进行汇编,方法是在DOS提示符下键入以下命令:
2.修改存储单元内容的命令E:
E命令有两种格式如下:
第一种格式可以用给定的内容表来替代指定范围的存储单元内容。命令格式为:
-E address [list]
例如,-E DS:100 F3'XYZ'8D
其中F3,‘X’,‘Y’,‘Z’和8D各占一个字节,该命令可以用这五个字节来替代存储单元DS:0100到0104的原先的容。
18E4:0100 C70604023801 MOV WORD PTR[0204],0138 DS:0204=0000
其中:
第一行显示8086内通用寄存器的内容,第二行显示段寄存器及标志寄存器的内容,第三行显示当前IP指向的将要被CPU执行的指令地址在18E4:100处,其机器码为C70604023801,对应的汇编指令为MOV WORD PTR[0204],0138
filename[.ext] 是DEBUG将要调试的文件名。
param 是将被调试的程序(或文件)的命令行参数。
注:1、如果DEBUG命令行含有文件名,段寄存器DS和ES指向PSP。寄存器BX和CX含有程序长度。
2、在DEBUG中所有输入与显示的数值数据均为十六进制数,且其后不加H。
OV DN EI NG ZR AC PE CY - PONZDINV
即可,键入的顺序是任意的。
4.运行命令G:
G命令格式为:
-G [=address1][address2[address3 ...]]
其中,地址1指定了运行的起始地址,如不指定则从当前的CS:IP开始运行。后面的地址均为断点地址,当指令执行到断点时,就停止执行并显示当前所有寄存器及标志位的内容,和下一条将要执行的指令。
当我们建立了正确的可执行文件以后,就可以直接在DOS状态下执行该程序。
C:\MASM>abc
运行此命令后,我们会在屏幕上看到程序的输出结果:hello,world!。如果此时我们看到的结果同程序预期的结果不一致,就说明程序存在逻辑错误,这时就必须使用相应的调试程序进行调试,常用的调试程序有DEBUG与Turbo Debugger等,此实验中,将只介绍DEBUG常用命令的使用方法。
C:\MASM>EDIT 或TC
然后在编辑器的窗口中通过键盘输入以上源程序。并保存为文件abc.asm.后返回到DOS提示符下。
2. 将源程序文件汇编成目标程序文件:
汇编功能可以使用Microsoft的MASM进行,微软的汇编程序有多个版本,但使用方法大致相同,本实验将使用MASM 5.0进行汇编。
实验一: 汇编环境与DEBUG调试
目的与要求
熟悉汇编环境与汇编源程序的调试,重点掌握汇编的过程与常用DEBUG命令的用法
实验内容
一、熟悉汇编的编程环境
1.汇编语言源程序的建立:
可以使用任何文本编辑器建立汇编源程序文件,如:TC、EDIT等。但建立的文件扩展名建议为.asm,下面的源程序功能用于在屏幕上输出字符串“hello,world!”,我们通过此源程序的运行过程了解汇编的编程环境。
3.检查和修改寄存器内容的命令R:
R命令有三种格式:
1)显示CPU内所有寄存器内容和标志位状态,其格式为:
-R
AX=0000 BX=0000 CX=010A DX=0000 SP=FFFE BP=0000 SI=0000 DI=0000
DS=18E4 ES=18E4 SS=18E4 CS=18E4 IP=0100 NV UP DI PL NZ NA PO NC
这里没有指定段地址, D命令自动显示DS段的内容。如果只指定首地址,则显示从首地址开始的80个字节的内容。如果完全没有指定地址,则显示上一个D命令的最后一个单元的内容。
如:-D 显示下一片单元的内容
-D ES:1010 显示从ES段内偏移地址1010H开始的单元内容
-D 10L20 显示DS段内从偏移地址10H开始的连接20H个字节单元的内容
相关说明:
《汇编语言程序设计》实验的主要目的是掌握汇编程序调试的方法与一般的程序设计能力,为今后的硬件应用打下基础。因此本实验指导书重在强调实验调试的环节,有关程序设计的具体方法及相关算法请参见教材。
此文件中用黑体字加粗的内容一般为重要信息或实验的步骤与要求,未使用黑体加粗或有下划线的内容是提示信息或问题的答案。
第二种格式则是采用逐个单元相继修改的方法。命令格式为:
-E address
例如,-E CS:100
则可能显示为:
18E4:0100 89.
如果需要把该单元的内容修改为78,则可以直接键入78,再按空格键可以接着显示下一个单元的内容,这样可以不断修改相继单元的内容,直到Enter键结束该命令为止。若要反向修改单元内容,则按减号-。
BX 0369
:059F
则把BX寄存器的当前内容修改为059F。
3)显示和修改标志位状态,命令格式为:
-RF
系统将响应,如:
OV DN EI NG ZR AC PE CY -
此时如不修改其内容可按Enter键,否则,键入欲修改的内容,如:
汇编成功后,将得到一个新的文件abc.obj,此文件称为目标程序文件。
3.用连接程序生成可执程序文件:
经汇编以后产生的目标程序文件(.OBJ文件)并不是可执行程序文件,必须经过连接以后,才能成为可执行文件(即扩展名为.EXE)。连接过程使用以下命令进行:
C:\MASM>LINK abc;
-U 100
18E4:0100 C70604023801 MOV WORD PTR[0204],0138
1.显示存储单元的命令D,格式为:
-D [address] 或 -D[range]
例如,按指定范围显示存储单元内容的方法为:
-D 100 120
067C:0100 C7 D7 0D 0A 32 33 33 34 - D5 C5 B4 C6 30 10 42 0C ....2334....0.B……….
C:\MASM>MASM abc;
此命令行后的;用于屏蔽MASM的参数选择提问,而使用其默认的参数,对于大多数汇编源程序,MASM的默认参数选项是足够的,因此在此实验中将不介绍其参数选项的功能,有兴趣的同学可以去掉最后的分号进行汇编,并了解其细节。
汇编源程序若有错误,则汇编程序会给出错误信息,并在每条信息前有一数字N,此数字标识源程序中第N行检测到错误。汇编过程的错误分警告错误(Warning Errors)和严重错误(Severe Errors)两种。其中警告错误是指汇编程序认为的一般性错误;严重错误是指汇编程序认为无法进行正确汇编的错误,并给出错误的个数、错误的性质。这时,就要对错误进行分析,找出原因和问题,然后再调用屏幕编辑程序加以修改,修改以后再重新汇编,一直到汇编无错误为止。
孝感学院计算机科学系 本科
《汇编语言程序设计》
实验指导书
目 录
实验一: 汇编环境与DEBUG调试 2
实验二:8086汇编语言分支程序设计 8
实验三:8086汇编语言循环程序设计 10
实验四:8086汇编语言子程序程序设计 13
实验五:8086汇编语言中断与磁盘程序设计 17
5、跟踪命令T:
T命令有两种格式:
1)逐条指令跟踪
-T[=address]
从指定地址起执行一条指令后停下来,显示所有寄存器内容及标志位的值。如未指定则从当前的CS:IP开始执行。
2)多条指令跟踪
-T[=address][value]
从指定地址起执行n条指令后停下来,n由value指定。
START: MOV AX,DATA
MOV DS,AX
LEA DX,BUF
MOV AX,9
INT 21H
此命令行后的;功能同上面的MASM。此命令运行成功后,就会得到最终的可执行文件abc.exe。如果连接过程中出现错误,则显示出错误信息,根据提示的错误原因,要重新调入编辑程序加以修改,然后重新汇编,再经过连接,直到没有错误为止。连接以后,便可以产生可执行程序文件(.EXE文件)。