汇编实验指导四
《汇编语言》实验指导书
(1)输入程序并汇编
_A100
0B03:0100 MOV DL,33
0B03:0102 MOV AH,2
0B03:0104 INT 2l
“0B03:0100”类似这样的地址是系统自动提供的,不需用户输入。至此程序已输入完毕,并汇编成机器指令。现在用G命令运行程序如下:
(2)运行程序
_G
3
Program terminated normally
编程思路(仅供参考):
该题目要求掌握运算中带符号数和无符号数运算的区别。本题目只考虑有符号数情况
参考程序清单:ABC.ASM
DATA SEGMENT
X DB1;x 单元存放数字1,以下类推
Y DB4
Z DB3
WDB?,? ;预留2个单元,存放运算结果
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
INT 21H
:
当要执行INT 21H这条指令时,若用T命令进行跟踪,则进入INT 21H程序(DOS功能调用)后,需要数十次T命令才能返回当前程序;若采用P命令进行调试,则只执行INT 21H一条指令,执行完立即返回,给调试者的感觉好象是执行了一条普通指令一样。因此,当读者以后遇到CALL、INT n指令或带重复前缀的数据串操作指令时,若不想观察相应过程的详细执行过程,就可以用P命令。
若是0则为偶数若为2则为奇数可以采用test指令和条件转移指令jz来实现在内存中以buf单元开始缓冲区中连续存放着10个学生的分数试编制程序统计英中90100分8089分6079分及60分以下少人并把结果分别存放在s9s8s7和s6试编制程序从键盘输入学生成绩abcd自动汇总并显示各类分数的人数假定各类分数的总人数在0止输入
汇编实验指导书
实验一汇编语言程序的上机过程一、实验目的掌握汇编语言源程序的编辑、汇编、连接及运行过程,为以后的实验打下基础。
二、实验内容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.编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来。
汇编语言程序设计实验指导
汇编语言程序设计实验指导【实验提要】以下列举的10个实验,都是以Intel的8086及后续系列微处理器的指令系统为核心,采用宏汇编工具MASM6. X以及调试工具DEBUG或DEBUG32,针对本教材所述内容进行相关的上机实践。
旨在帮助学生加深认识和理解理论教学知识,通过大量的上机实验熟悉8086 CPU的指令功能、用途和使用技巧,进而提高汇编语言程序设计的能力。
(带*号的为选作内容)实验一调试工具DEBUG的应用实验目的通过实验掌握下列知识:1、8086指令: MOV,ADD,ADC,SUB,SBB,DAA,XCHG的功能;2、DEBUG命令: A,D,E,F,H,R,T,U的使用;3、BCD码、ASCII码及用十六进制数表示二进制码的方法;4、寄存器: AX,BX,CX,DX,FLAGS,IP。
内容及步骤注:本次实验可以参照教材上关于DEBUG的叙述内容进行。
一、DEBUG 命令使用1、开机后,切换到命令提示符窗口下,出现提示符后键入命令DEBUG, 进入调试环境,显示提示符 '- '。
2、用命令 F 200 220 'AB' 将'AB'的两个ASCII码循环填入内存。
注:第一个参数200是当前段的起始偏移地址,第二个参数220是终了偏移地址,第三个参数‘AB’是被填入的数值,若不给出第二个参数则填入128(8行)个字节。
3、用命令 D200 观察内存中的十六进制码及屏幕右边的ASCII字符。
4、用命令 F230 23F 12 重复上二项实验,观察结果并比较。
5、用命令 E200 41 42 43 44 45将A-E的ASCII码写入地址为200开始的内存单元中,再用D命令观察结果,看键入的十六进制数和ASCII码的对应关系。
6、用H命令检查下列各组十六进制数的和与差(补码表示):(1)56H,34H (2)23H,45H (3)AB,3045H注:输入 H 12 34 则在下一行显示0046 FFDE,即二者的补码和与差。
《汇编语言程序设计》实验指导书
实验一简单程序编制和上机过程一.实验目的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.掌握计算机常用代码的软件转换技术。
《微机系统与汇编语言实验指导书》-V2.1
第一章汇编语言实验概述1.1 实验开设目的汇编语言实验是“微型计算机系统”课程内的重要实验环节。
本实验能帮助学生运用课程中所学到的汇编语言指令、语法和程序设计方法,自己编制相应要求的汇编语言程序或段落,通过上机运行调试等操作,培养学生解决问题和分析问题的实践能力。
使学生深入理解和掌握8086微处理器的汇编语言程序设计方法及指令系统中的常用指令,并对微型计算机系统的部分接口和底层设备进行操控实践。
1.2 总体要求独立完成课程必须完成的实验,选做部分有条件完成的实验。
实验中注意养成独立思考、分析问题和解决问题的能力。
按照各实验的具体要求,认真构思实验方案及解题步骤,勤于实验预习和充分准备,及时书写并按时上交相应实验报告。
实验报告内容与要求:一、实验编号(摘自本实验指导书具体实验项目)二、实验目的(摘自本实验指导书具体实验项目)三、实验要求(摘自本实验指导书具体实验项目)四、实验方案及解题程序的流程图(自己绘制相应的程序流程图)五、实验程序清单(填写自编源程序清单,并加注段落说明和重要指令说明)六、实验运行调试过程:1.写出源程序到可执行程序生成过程及相应操作命令2.写出显示原始数据操作的命令及摘抄机内原始数据3.写出运行程序或程序段落的命令及记录相关寄存器和内存单元值并分析执行结果4.写出程序或原始数据修改意图和修改命令5.重新执行修改后的程序并查看结果,并做出结果分析与实验成败判别七、实验心得与体会。
1.3 实验考核方式与要求1. 实验后按时上交实验报告,内容必须符合要求。
2. 评分方法:设计的程序和方法是否正确以及是否达到试验的基本要求。
3. 实验成绩占课程成绩的比例:15%-20%。
1.4 实验设备与环境每人一台P3以上微机系统,能运行WINDOWS-9X操作系统、及实模式DOS系统。
系统内预先装入MASM5及以上的汇编语言编译、连接及调试应用软件、DEBUG、EDIT 等命令文件。
实验附件:RS232通讯连接线缆。
汇编第四次实验报告
实验四字符及字符串的输入和输出一、实验目的1.熟悉如何进行字符及字符串的输入输出。
2.掌握简单的DOS系统功能调用。
二、实验预习要求1.复习系统功能调用的1、2、9、10号功能。
2.按照题目要求预先编写好实验中的程序段。
三、实验任务1.输入以下程序段并用F8键单步运行,执行INT 21H指令时,在键盘上按“5”键。
MOV AH,1INT 21H(1)运行结束后,(AL)=?它是哪一个键的ASCII码?(AL)=35。
他代表的是5的ASCII码。
(2)重复运行以上程序段,并分别用“A”、“B”、“C”、“D”键代替“5”键,观察运行结果有何变化?“A”、“B”、“C”、“D”分别是得到41、42、43、44.他们分别是A、B、C、D的ASCII码值。
2.在DS:1000H开始的内存区域设置如下键盘缓冲区:DS:1000H 5,0,0,0,0,0,0然后输入以下程序段并用F8键单步运行,执行INT 21H指令时,在键盘上键入“5”、“4”、“3”、“2”、“1”、〈回车〉这六个键。
LEA DX,[1000H]MOV AH,0AHINT 21H程序段运行完后,检查DS:1000H开始的内存区域:(1)DS:1001H单元的内容是什么?它表示了什么含义?DS:1001H内容为04H,他表示实际输入的字符个数。
(2)从DS:1002H开始的内存区域中的内容是什么?其中是否有字符“1”的ASCII码?为什么?从DS:1002H开始的内存区域中的内容分别是5、4、3、2和回车键的ASCII码。
其中没有字符“1”的ASCII码,因为实际长度只有4位,其中有一位是回车键,所以没有字符“1”的ASCII码。
3.输入以下程序段并运行之。
MOV DL,‘A’MOV AH,2INT 21H(3)观察屏幕上的输出,是否显示了“A”字符?显示了A了。
(在敲入代码的时候不可以直接敲入‘A’,而应该是敲入A的ASCII码即41)如下图:(4)分别用“#”、“X”、“Y”、“$”、“?”代替程序段中的“A”字符,观察屏幕上的输出有何变化。
汇编程序实验指导
组成原理与汇编8088/8086汇编语言实验指导仰恩大学计算机学院电子工程系一、实验目的1.初步了解8086/8088汇编程序的基本结构,利用Windows XP附件的写字板编辑简单的汇编语言源程序,形成扩展名为 .ASM 的文本文件格式(即汇编源程序)。
2.学习宏汇编程序MASM.EXE ,连接程序LINK.EXE,调试程序 DEBUG .EXE的使用。
3.在微机上、在Masm for Windows集成实验环境下,运行并调试8086/8088汇编源程序。
二、上机前的准备1. PC机的操作系统可以是Windoes98,也可以是Windows XP。
2.硬盘上安装Masm for Windows集成实验环境软件, 上面应有MASM、LINK、DEBUG等文件,还应有足够的空间以容纳你的汇编源程序。
3. 学习以上三个文件的使用方法,准备好上机的源程序并认真去读懂它。
三、用“写字板”编辑汇编的源程序1. 用“写字板”编辑好源文件LH, LH假设为李华同学的源程序文件名(下同),则文件名是LH.ASM ,文件的扩展名一定要用.ASM。
然后保存在C:盘的目录下。
2.编辑你的源程序时,注意不要有空行、光标也不要超过最后一行。
四、MASM.EXE编译程序的运行在Masm for Windows集成实验环境中打开LH.ASM文件,然后在点击运行项, 在其下拉菜单中点击编译成目标文件(OBJ), 如果你输入的文件完全正确,将在下面的栏中显示:编译源程序C:\>LH.ASM编译成功汇编的目的是要形成目标文件,即机器代码文件,也就是LH.OBJ文件。
该文件不是文本文件,因此用编辑软件是看不到的,看到的只是一些乱码。
五、 LINK.EXE 生成可执行文件的运行在Masm for Windows集成实验环境中点击运行项, 在其下拉菜单中点击生成可执行文件(EXE), 如果你输入的文件完全正确,将在下面的栏中显示:编译源程序C:\>LH.ASM生成EXE文件成功对LH.OBJ文件连接的主要目的是要生成LH.EXE文件。
汇编语言实验指导书
实 验 一实验名称: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。
汇编部分实验指导
目录实验的目的与基本要求实验目的与要求一、实验目的学习程序设计的基本方法和技能,熟练掌握用汇编语言设计、编写、调试和运行程序的方法。
为后续课程打下坚实的基础。
二、实验要求1.上机前要作好充分准备、包括程序框图、源程序步骤、测试方法、对运行结果的分心等。
2.上机时要遵守实验室的规章制度,爱护实验设备。
要熟悉与实验有关的系统软件(如编辑程序、汇编程序、连接程序和调试程序等)的使用方法。
在程序的调试过程中,有意识地学习及掌握debug程序的各种操作指令,以掌握程序的调试方法及技能。
为了更好地进行上机管理,要求用硬盘存储程序,并建立和使用子目录,以避免文件被人删除。
注意做好外备份!3 每次上机前准备好源程序,程序调试完后,须由实验辅导教师在机器上检查运行结果。
经教师认可的程序由教师在程序清单上签字。
每个实验完成后,交实验报告。
实验报告的要求如下:(1)实验目的,实验内容,实验要求;(2)设计说明:用来说明程序的功能、结构。
它包括:程序名、功能、原理及算法说明、程序及数据结构、主要符号名的说明等。
(3)调试说明:便于学生总结经验提高变成及调试能力。
它包括:调试情况,如上机时遇到的问题及解决办法,观察到的现象及其分析,对程序设计技巧的总结及分析等;程序的输出结果及对结果的分心;实验的心得体会,以及诸如调试日期、文件存放的软盘号等需要记录的信息。
(4)使用说明:程序提供给用户使用时必须作出的说明。
如:程序的使用方法,调试方式,操作步骤等;要求输入信息的类型及格式;出错信息的含义及程序的使用范围等。
(5)画出程序流程图。
交经辅导老师检查签名后的程序清单。
实验一程序编辑、编译、连接及调试一.实验目的学习和掌握程序编辑、编译、连接及调试方法,寄存器状态等。
二.实验内容EDIT、MASM、LINK、DEBUG 命令的使用。
重点学习DEBUG调试程序中如何查看装入的程序、数据段位置、数据存放区域、寄存器内容、标志寄。
三.实验题目:根据参考程序,完成一个k=x+y-z(字运算)的程序的编程及调试四.实验指导(一)、准备环境在D:盘或E:盘根目录上建一个子目录(如:MASM)MASM子目录中至少考入2个汇编必需用的文件:编译文件MASM.EXE 和连接文件LINK.EXE。
《汇编语言》课程实验指导书
《汇编语言》课程实验指导书《汇编语言》课程实验指导书扬州大学信息学院计算机科学与工程系 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 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.上机前对选定的实验题应有所了解,并写好程序。
2.上机过程中对重要方法和步骤、问题和结果应有记录。
3.所有程序原则上都要通过调试手段运行。
4.实验后进行分析和总结,给出实验报告。
二.实验报告的内容一般有:1.实验题的内容及要求。
2.思路和方法、算法描述及有注释和说明的程序清单。
3.程序调试和运行的重要步骤、问题和结果。
4.分析和总结。
三.实验环境的建立参看第二章第一节。
通常在WINDOWS XP系统下。
如果其他操作系统(如WIN 7),不支持汇编程序工作,可安装Masm for Windows集成实验环境asm20125(支持Win2000、WinXP、WinVISTA、WIN7等操作系统)。
/实验1 上机过程及程序调试实验目的:1.通过第二章两个简单实例认识汇编语言程序,初步了解程序格式;段定义;标号;DOS系统功能;操作数;指令;说明语句等作用。
2.掌握汇编语言程序从设计到形成可执行程序文件的方法和步骤。
即编辑、汇编、连接。
了解汇编语言的系统工作文件和工作环境。
理解汇编程序和连接程序的作用。
理解列表文件内容。
3.初步了解程序的运行和调试方法。
学会使用DEBUG主要命令和常用的DOS命令。
实验内容:【1】编辑第二章两个简单实例,通过汇编、连接。
【2】用DEBUG对hello程序进行调试。
问题:(1) 该程序在内存中的起始地址是多少?结束地址是多少?共占几个字节?(2) 0B63:0008表示什么意思?(3) 程序中定义的串‘HELLO, WORLD !$’在内存中的起始地址是多少?请用DEBUG命令显示该串。
(4) 如果用带有断点的G命令运行该程序,写出命令。
(5) 用P命令单步执行程序。
(6) 用T命令跟踪程序,在跟踪执行INT 21时出现什么问题?(7) 用A命令在偏移地址100H处建立该段程序,并运行。
(8) 用W命令把该段程序写成文件,再调入。
实验2 算术及位串处理程序实验目的:掌握多数位的算术运算、移位操作、字符串操作等程序的设计,学习使用分支与循环等基本编程方法,熟练使用DEBUG。
大学汇编语言实验指导
汇编语言实验实验一汇编运行环境及方法、简单程序设计一、实验目的:1、熟练汇编语言运行环境和方法。
2、了解如何使用汇编语言编制程序。
3、熟悉DEBUG常用的命令的使用方法。
4、会使用DEBUG命令调试程序。
二、实验内容:1、比较两个字符串STRING1和STRING2所含的字符是否相同,若相同,则输出MATCH,不相同则输出NOMATCH。
2、学会对汇编语言程序进行汇编、连接和运行。
3、学会用DEBUG中的D命令,E命令,R命令,G命令,F命令,U命令,A命令以及T命令。
三、实验要求:1、实验前要做好充分准备,包括汇编程序清单、调试步骤、调试方法,以及对程序结果的分析等。
2、本实验只要求在DEBUG调试程序状态下进行,包括汇编程序、调试程序和执行程序。
四、实验报告:1、程序说明。
说明程序的功能、结构。
检查两个字符串是否相同2、调试说明。
包括上机调试的情况、上机调试步骤、调试所遇到的问题是如何解决的,并对调试过程中的问题进行分析,对执行结果进行分析。
运行e28’forward’3、写出源程序清单和执行结果。
实验清单:datarea segmentstring1 db 'Move the cursor backword' string2 db 'Move the cursor backword' mess1 db 'Match.',13,10,'$'mess2 db 'No match!',13,10,'$'datarea endsprognam segmentmain proc farassume cs:prognam,ds:datarea,es:datarea start:push dssub ax,dxpush axmov ax,datareamov ds,axmov es,axlea si,string1lea di,string2cldmov cx,25repz cmpsbjz matchlea dx,mess2jmp short disp match:lea dx,mess1 disp:mov ah,09int 21hmov ah,4chint 21hmain endpprognam endsend start实验二循环程序设计-已知学生成绩,求每个学生的名次一、实验目的:1、熟悉循环、DOS功能调用等基本的程序结构。
汇编实验指导
风格化实验二内存操作数及寻址方法实验目的:通过实验掌握下列知识: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命名的磁盘文件中。
汇编实验一~实验四报告要求
汇编第一次集中实验报告要求:
实验一:汇编语言运行环境及方法、简单程序设计
要求:
1、绘制程序流程图
2、结合你的调试过程,整理其中用到的debug命令的使用方法和效果截图,并解释每一步骤的结论
3、调试中遇到的问题及解决方法
实验二:用DEBUG编程:使用堆栈段将AX和BX的内容进行交换等(补充)
要求:
1、任务1的指令序列
2、整理本次试验中用到的debug命令的使用方法及效果截图
实验三:存储器块清零和内存块移动
要求:
1、使用串处理指令写出完成实验任务1、2的完整程序(注意:要求从高地址开始,用地址减一的方式操作;不要使用过程写法;任务完成后要能返回操作系统)
2、调试中遇到的问题及解决方法
实验四:将键盘输入的小写字母用大写字母显示出来(补充)
要求:
1、写出源程序清单并附上执行效果截图
2、调试中遇到的问题及解决方法
附加:第五章习题3~5的源程序清单(其中第3题的要求从“4个压缩BCD码”简化为“1个压缩BCD码”)。
汇编实验指导
参考数据段定义:
data
segment
str
db ‘… …’,0dh,0ah, ‘$’
len
equ $-str-3
mess1 db ‘char:$’
mess2 db 0dh,0ah, ‘count:$’
data
ends
;字符串 ;串长度 ;提示信息1 ;提示信息2
显示字符串str 显示提示信息mess1,从键盘输入待查字符 调用子程序coun,查找字符并统计次数存bl
IBM-PC汇编语言程序设计 上机实验
实验一 DEBUG调试程序的使用
实验目的
熟悉DEBUG调试程序的调用及常用命令的使用方法
实验内容
DEBUG程序的调用 汇编及反汇编命令 A、U 的使用练习 显示及修改内存单元命令 D、E 的使用练习 显示或修改寄存器命令 R 的使用练习 单步及连续执行命令 T、G 的使用练习 退出命令 Q 的使用练习
INT 21H
从键盘输入1位十进制数
MOV AH,01H
INT 21H
SUB AL,30H
;把ASCII码转换为数字
显示十进制结果
ADD AL,30H
;把结果转换为ASCII码
MOV DL,AL
MOV AH,02H
INT 21H
源程序框架
DATA SEGMENT INFOR1 DB “INPUT THE FIRST DATA (<=4): $” INFOR2 DB 0DH,0AH,“INPUT THE SECOD DATA (<=4): $” INFOR3 DB 0DH,0AH,“THE SUM IS: $” DATA ENDS
实验报告
实验目的、一个ASCII码10H → BL
2015汇编实验指导
实验指导第一部分实验的目的和要求一实验要求1、实验前作好充分准备,包括程序框图、源程序清单、调试步骤、测试方法、对运行结果的分析等。
2、实验时要遵守实验室的规章制度,爱护实验设备。
要熟悉与实验相关的系统软件(如编辑程序、汇编程序、连接程序和调试程序等)的使用方法。
在程序的调试过程中,有意识地学习及掌握DEBUG程序的各种操作命令,以便掌握程序的调试方法及技巧。
3、为了更好地进行管理,要求用硬盘(注:D盘下)存储程序,以避免文件丢失。
注:文件名必须完整,源程序要带有后缀 .asm 。
路径名以及文件名中不能包含汉字,只能使用字符。
4、程序调试完后,须由教师在机器上检查运行结果,并进行相关问题的回答。
5、每个实验完成后,应写出实验报告,以班为单位上交。
二实验报告规范1、要求使用学校专用的实验报告纸。
填写的信息包括:课程名称、实验序号、专业、班级、姓名、同组实验者、实验时间。
2、报告书写要规范,内容言简意赅。
内容应包括:实验名称、目的、内容、原理、实验步骤、实验记录、数据处理(或原理论证、或实验现象描述、或结构说明等)。
3、一个实验对应一份实验报告。
三实验的目的实验目的不仅是为了验证书本理论,更重要的是对实践能力的培养。
其中包括:实际调试程序的能力,例如修改程序参数的能力,查看结果的能力,设置断点调试运行的能力等。
开发汇编语言应用程序的能力,例如应用有关汇编软件的能力,进行系统调用和BIOS功能调用的能力,进行模块程序设计的能力等。
四实验的评价方式每次实验的考核结果按优秀、良好、中等、及格和不及格来评价。
1、对实验理解透彻,能够全面、正确、独立地完成实验内容,得出结果,并按时提交准确、完整、规范的实验报告,可评为优秀。
2、按照设计任务要求能够顺利地完成任务,得出结果,按时提交较完整的、符合要求的实验报告,可评定为良好。
3、按照设计要求完成了硬件线路的连接或软件的编程与调试,基本完成了任务要求,提交符合要求的实验报告,可评为中等。
汇编语言-综合性实验指导记录单
五、考核标准:
1程序算法设计正确,流程图准确规范
2源程序结构合理、注释清晰、可读性好
3实验运行结果正确,达到实验要求
4实验报告格式规范、内容充实、文字流畅
5实验分析有自己的见解、有思考、有结论
三、实验设备及环境:
PC兼容机、Windows操作系统、汇编程序masm611
四、实验内容及要求:
实验内容:编制一程序,要求接收从键盘输入的一个班的学生成绩,并存放于50字节的GRADE数组中,其中GRADE+N保存学号N+1的学生成绩。然后根据GRADE中的学生成绩,把学生名次填入50字节的RANK数组中,其中RANK+N的内容是学号为N+1学生的名次。再按学号顺序和学生名次顺序把学生成绩显示出来。
1程序算法设计正确流程图准确规范2源程序结构合理注释清晰可读性好3实验运行结果正确达到实验要求4实验报告格式规范内容充实文字流畅5实验分析有自己的见解有思考有结论撰写人
《汇编语言》课程综合性实验指导单、实验题目:
显示学生名次表
二、实验目的:
进行汇编语言程序设计应用的综合性训练。综合运用汇编语言循环程序和子程序编程方法,巩固提高汇编语言程序设计能力应用水平。
撰写人:
撰写时间:2007-11-20
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验四、子程序设计
【实验目的】
(1)掌握子程序设计的方法及堆栈参数传递方法。
(2)进一步熟悉汇编语言源程序的编辑、汇编、连接及调试过程。
【实验内容】
(1)在数据段中定义两个有符号字变量(初始值自拟),用函数实现求两个字变量中大的值,并使用堆栈传入参数和用AX寄存器返回结果,并保存到maxv变量中。
【实验步骤】
(1)用编辑软件(记事本、UltraEdit等)编辑一个扩展文件名为ASM的汇编语言源程序。
(2)用汇编程序MASM汇编上述的汇编语言源程序,形成目标代码文件。
(扩展名为OBJ)
(3)用连接程序LINK连接目标代码文件,形成可执行文件。
(扩展名为EXE)
(4)用DEBUG32调试可执行文件,观察执行结果,以验证其正确性。
【实验要求】
(1)在程序的编写过程中,有意识地学习掌握各种分支和循环跳转方法。
(2)实验报告编写要规范,应包括:实验名称、目的、内容、实验步骤、实验原始记录(采用的实验数据及得到的结果,对Debug的显示截图)和实验总结。
实验报告还要附有源程序清单。
实验总结主
要包括上机调试的情况、调试所遇到的问题是如何解决的,并对调试过程中的问题进行分析,对执行结果进行分析。
附一.DEBUG的基本命令的使用
DEBUG是专门为汇编语言设计的一种调试工具,它通过步进,设置断点等方式为汇编语言程序员提供了非常有效的调试手段。
DEBUG的命令都是一个字母,后跟一个或多个参数:字母 [参数]
命令的使用中注意:
①字母不分大小写;
②只使用16进制数,没有后缀字母;
③分隔符(空格或逗号)只在两个数值之间是必须的,命令和参数间可无分隔符;
④每个命令只有按了回车键后才有效,可以用Ctrl+Break中止命令的执行;
⑤命令如果不符合Debug的规则,则将以“error”提示,并用“^”指示错误位置。
许多命令的参数是主存逻辑地址,形式是“段基地址 : 偏移地址”。
其中,段基地址可以是段寄存器或数值;偏移地址是数值。
如果不输入段地址,则采用默认值,可以是缺省段寄存器值。
如果没有提供偏移地址,则通常就是当前偏移地址。
对主存操作的命令还支持地址范围这种参数,它的形式是:“开始地址结束地址”(结束地址不能具有段地址),或者是:“开始地址 L字节长度”。
1、DEBUG程序的启动
在DOS提示符下,可键入命令:
C:\>DEBUG↙
DEBUG命令的完整格式为:DEBUG [d:][path][文件名][ 参数1][参数2]。
其中[d:]是盘符,[path]是路径,文件名是被调试文件的名称,它须是执行文件(EXE),两个参数是运行被调试文件时所需要的命令参数,在DEBUG程序调入后,出现提示符“-”,此时,可键入所需的DEBUG命令。
在启动DEBUG时,如果输入了文件名,则DEBUG程序把指定文件装入内存。
用户可以通过DEBUG的命令对指定文件进行修改、显示和执行。
如果没有文件名,则是以当前内存的内容工作,或者用命名命令和装入命令把需要的文件装入内存,然后再用DEBUG的命令进行修改、显示和执行。
2、DEBUG的主要命令
(1)、检查和修改寄存器内容的命令R,它有三种方式:
1)显示CPU内部所有寄存器内容和标志位状态,格式为:-R
例如:输入-R↙,得到结果如下:
2)显示和修改某个指定寄存器内容,格式为:-R 寄存器名
例如:输入-R AX,得到结果如下:
表示AX当前内容为0000,此时若不对其作修改,可按ENTER键,否则,输入修改
内容后,如:
则AX内容由0000改为0A0A
3)R命令显示标志寄存器标志位状态的含义如下表所示:
修改标志位状态,命令格式为:-RF
例如:输入-RF,输出结果如下:
这时若不作修改可按ENTER键,否则在“-”号之后键入修改值,键入顺序任意。
如:
(2)、汇编命令A,格式为:-A[地址]
该命令从指定地址开始允许输入汇编语句,把它们汇编成机器代码相继存放在从指定地址开始的存储器中。
A命令中如果没有指定地址,则接着上一个A命令的最后一个单元开始;若还没有使用过A命令,则从当前CS : IP开始。
例如:输入代码,则代码存储在OAFO:0100至OAFO:010D单元中。
(3)、反汇编命令U,有两种格式:
1)-U[地址]
该命令从指定地址开始,反汇编32个字节,若地址省略,则从上一个U命令的最后一条指令的下一个单元开始显示32个字节。
2)-U范围
该命令对指定范围的内存单元进行反汇编,例如:
-U 0100 011E或-U 100 11E 或-U 0AF0:0100 011E或–U 0AF0:0100 L1F(L用来引导指令的条数,1F为指令的条数),这些命令是等效的。
(4)、运行命令G,格式为:
-G [=地址1][地址2]
其中地址1规定了运行起始地址,后面的地址为断点地址。
若省略地址,则运行从IP 所指的地址开始。
例如:
(5)、追踪命令T,有两种格式:
1)逐条指令追踪:
-T
该命令从指定地址起执行一条指令后停下来,显示寄存器内容和状态值。
例如:
2)多条指令追踪:(有问题)
-T[=地址][值]
该命令从指定地址起执行n条命令后停下来,n由[值]确定。
(6)、显示内存单元内容的命令D,格式为:
-D[地址](从给出的地址开始连续显示128个字节的单元内容)或-D[范围],例如:
(7)、修改内存单元内容的命令E,它有两种格式:
1)用给定的内容代替指定范围的单元内容:
-E地址内容表
例如:-E 2000:0100 F3 “XYZ” 8D
其中F3,“X”“Y”“Z”和8D各占一个字节,用这五个字节代替原内存单元2000:0100到0104的内容,“X”“Y”“Z”将分别按它们的ASCII码值代入。
2)逐个单元相继地修改:
-E地址
例如:-E 100:
0AF0:0100 F3.E7
此命令是将原100号单元的内容F3改为E7。
E7是键入值。
(8)、命名命令N,格式为:
-N 文件名
此命令将文件名格式化在CS:5CH的文件控制块内,以便使用L或W命令把文件装入内存进行调试或者存盘。
例如:
(9)、装入命令L,它有两种功能:
1)把磁盘上指定扇区的内容装入到内存指定地址起始的单元中,格式为:
-L 地址驱动器扇区号扇区个数
2)装入指定文件,格式为:
-L [地址]
此命令装入已在CS:5CH中格式化的文件控制块所指定的文件。
在用L命令前,BX和CX中应包含所读文件的字节数。
3)装入已在文件控制块中的文件,格式为:
-L
此命令与-L [地址]相同功能。
(10)、写命令W,有两种格式:
1)把数据写入磁盘的指定扇区:
-W 地址驱动器扇区号扇区数
2)把数据写入指定文件中:
-W [地址]
此命令把指定内存区域中的数据写入由CS:5CH处的FCB所规定的文件中。
在用W命令前,BX和CX中应包含要写入文件的字节数。
(11)、十六进制运算命令H,格式为:
-H [数据1] [数据2]
其功能是将两个十六进制数进行相加、相减运算,结果显示在屏幕上。
例如:
(12)、退出DEBUG命令Q,该命令格式为:
-Q
它退出DEBUG程序,返回DOS,但该命令本身并不把在内存中的文件存盘,如需存盘,应在执行Q命令前先执行写命令W。
附二.DEBUG32的重要扩展命令的使用
(1)、R16/R32更换寄存器显示位数命令
R16 设置 16 bit 显示模式
R32设置 32 bit 显示模式
(2)CLS清屏命令。