汇编语言实验指导书

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

目录

第一部分汇编语言程序设计实验 (2)

实验一输出字符‘A’ (2)

实验二数据的显示实验 (5)

实验三从键盘上输入数据实验 (12)

实验四字符串的显示实验 (17)

第一部分汇编语言程序设计实验

实验一输出字符‘A’

一、实验目的

1.通过这个简单的例子熟悉在微机上建立、汇编、链接和运行8086/8088汇编语言程序的过程。

2.掌握字符的显示方法。

3.学习DOS系统功能调用。

二、实验内容

输出字符…A?,程序流程图如图1-1所示。

图1-1输出字符…A?程序流程图

源程序如下:

PROG SEGMENT

ASSUME CS:PROG

MOV DL, 'A'

MOV AH, 2

INT 21H

MOV AH, 4CH

INT 21H

PROG ENDS

END

三、实验设备

PC机一台,MASM汇编程序

四、实验原理

DOS功能调用的两个子程序,调用方法如下:

(1)设置入口参数

(2)子程序编号送人AH

(3)INT 21H,子程序请求中断指令

有的子程序不需要入口参数,但大多数需要将参数送入指定地方。

MOV DL,'A'

MOV AH,2

INT 21H

上面用的程序是DOS系统功能调用的2号子程序,功能是将字符送入屏幕显示。其入口参数是把待输出字符的ASCII码送到DL寄存器中。例如:ASCII码若是0DH,2号子程序处理成回车;ASCII码若是0AH,处理成换行。

MOV AH, 4CH

INT 21H

这是DOS系统功能调用的4CH号子程序,功能是返回操作系统,没有入口参数。

五、实验步骤

1.用编辑软件(EDIT或记事本)将源程序输入,并存盘。

注意:源程序是用汇编语言语句编写的程序,并不能为机器所识别。源程序的扩展名为

ASM。

2.用宏汇编程序将.ASM源程序汇编成机器码的目标文件(OBJ文件)

命令格式是:

C:/>MASM 文件名↙

此时,汇编程序会在屏幕上给出提示,一般选择回车键作为回答。

Object filename [文件名.OBJ]:↙

Source listing [NUL.LST]:↙

Cross-reference [NUL.CRF]:↙

如果源程序没有错误,则在屏幕上会显示如下信息:

0 Warning Errors

0 Severe Errors

在汇编过程中,如果源程序有错误,要在编辑状态下进行修改,然后重新汇编,直到没有语法错误,才能生成.OBJ文件。其中“Warning Errors”为一般性错误,不影响OBJ文件的生成;而“Severe Errors”是致命错误,会导致汇编通不过,无法生成OBJ 文件。

汇编程序输出3个文件,第一个是目标文件,扩展名是OBJ,这个文件必须有。第二个是列表文件,扩展名是LST,列表文件给出源程序和目标代码程序。如果在源

程序中定义了宏,则列表文件显示的源代码会将宏展开。列表文件是可选的,如果不需要该文件,则直接按回车键即可。第三个是建立交叉引用文件,该文件给出了用户定义的所有符号,并且是可选的,如果不需要该文件,则直接按回车键。

3.用LINK程序产生执行文件(EXE文件)

命令格式是:

C:/>LINK 文件名↙

键入上述命令后,屏幕上会出现如下所示的提问,一般情况下,按回车即可。

Run File [文件名.EXE]:↙

List File [NUL.MAP]:↙

Libraries [.LIB]:↙

在连接过程,输出2个文件,第一个是可执行文件,扩展名是EXE,这是最终要运行的二进制文件,该文件必须有。第二个是内存分配图文件,文件中会列出各段的起始地址、终止地址、长度及段名。该文件是可选的,如果不需要该文件,则直接按回车键即可。第三个问题是询问是否用到库文件,若需要,输入文件名后按回车键,否则直接按回车键。

4.执行程序

命令格式是:

C:/> 文件名↙

上面生成可执行文件后,就可以在DOS下直接打入文件名,运行该文件。本例中,运行程序后,在屏幕上就会出现字符“A”,然后返回操作系统。

六、思考题

1.请说出一个完整的汇编程序从编写到运行所需的步骤。

2.修改源程序,改变屏幕显示的内容。

七、实验报告内容及要求

实验报告内容应包括实验目的、实验内容、实验设备、实验步骤以及心得体会,并按要求回答思考题1、2。

实验二数据的显示实验

一、实验目的

1.掌握屏幕上显示各种进制数据的方法。

2.掌握将内存中的二进制数转换为十进制、十六进制数的方法。

3.学会子程序的编写、调用及数据传递方法。

二、实验内容

1.把BX中的无符号二进制数转换成十进制数,在屏幕上显示出来。

2.把BX中的带符号二进制数转换成十进制数,在屏幕上显示出来。

3.求一个数据块(由10个单字节的无符号数组成)中的最大元素,并将结果以十进制数的形式在屏幕上显示出来。

4.求一个数据块(由20个单字节的带符号数组成)中的正数之和(和不超过字)和负数之和(和不超过字),并在屏幕上用十进制数的形式分别显示出两个和。

5.将寄存器BX中的二进制数转换成十六进制数,并在屏幕上显示出来。从高到低依次取出4位二进制数变为ASCII码输出即可。

三、实验设备:

PC机一台、masm汇编程序

四、实验原理:

1.把BX中的数按位由高到低转化成十进制数,即依次对其除以10000、1000、100、10、1,将获得的商放到DL中,加30H变成ASCⅡ码,调用DOS系统中断INT 21H的2号功能显示出来;对于每一位十进制数的获得和显示,实验通过编制子程序DEC_DIV并不断调用来实现。

2.先通过标志位判断BX中数的符号,如果是正数就直接转换成十进制数,进行显示,方法与内容1相同;如果为负数,则需要先对其求补,再屏蔽其符号位,相当于得到了这个负数的绝对值。在显示时,先把负号“-”显示出来,其余的显示与正数相同。

3.编程思路是把数据块中的第一个元素放到AL中,并通过循环把其余的元素和AL比较,如果新元素较大的话就取代原来的元素放到AL中。比较完成后,把最大的元素放到预先为其保留的地址中,并同时用内容1的方法把这个数以十进制形式显示出来。

4.编程思路是通过将被加数与0相比较,实现分支转移,将正数与负数分别累加到寄存器SI和DI中,并运用内容2显示带符号数的方法,通过调用子程序将其显示出来。其中为了换行,又加了两个2号系统功能调用,分别将换行和回车放到了被显示的两个字中间。

5.16位的二进制数,4位一组可以显示为4位十六进制数,从高到低依次取出4位二进制数变成ASCⅡ码输出即可。

五、实验步骤:

依照前面介绍的方法,对每一个实验内容对应的程序进行编辑、编译、连接和运行,直到达到实验要求。

1.实验内容1

(1)实验内容1的流程图,如图2-1所示:

图2-1 内容1流程图

(2)实验内容1的源程序,参考如下:

CODE SEGMENT

ASSUME CS: CODE

START: MOV BX, 0FFFH

MOV CX, 1000

CALL DEC_DIV

MOV CX, 100

CALL DEC_DIV

MOV CX, 10

CALL DEC_DIV

MOV CX, 1

CALL DEC_DIV

MOV AH, 4CH

INT 21H

DEC_DIV PROC NEAR

MOV AX, BX

MOV DX, 0

DIV CX

MOV BX, DX

MOV DL, AL

ADD DL, 30H

MOV AH, 2

INT 21H

RET

DEC_DIV ENDP

CODE ENDS

END START

2.实验内容2

(1)实验内容2的流程图,如图2-2所示:

图2-2内容2流程图3.实验内容3

(1)实验内容3的流程图,如图2-3所示:

图2-3 内容3流程图4.实验内容4

(1)实验内容4的流程图,如图2-4所示:

图2-4 内容4流程图

5. 实验内容5

(1)实验内容5的流程图,如图2-5所示:

图2-5 内容5流程图

六、思考题

1.请总结显示寄存器或者内存中的十进制和十六进制数据的方法。

2.请总结子程序编写、调用及参数传递的要点。

3.修改源程序,改变屏幕显示的内容。

七、实验报告内容及要求

实验报告内容应包括实验目的、实验内容、实验设备、实验步骤以及心得体会,并按要求回答思考题1、2、3。

实验三从键盘上输入数据实验

一、实验目的

1.掌握从键盘上输入数据的方法。

2.键盘上输入的是ASCII字符,掌握如何将ASCII字符转换为机内数字。

二、实验内容

1.从键盘上输入一个十进制数(0~65535),转换成二进制数并放入寄存器BX 中。

2.从键盘上输入0~65535范围的一个十进制数,在屏幕上显示出相应的十六进制数。

三、实验设备

PC机一台、masm汇编程序

四、实验原理

1.内容1的编程思想是对于输入的字符,先判断它是不是1~9的数字字符,若不是,直接跳出循环,若是的话,将ASCⅡ码转化成对应数值并存到AX中,对于下一个输入的数值,判断完成后,通过将AX和BX内容交换并将AX中的数*10,再累加实现。

2.内容2的编程思想是先按照内容1的思路将字符输入、判断并转化为其对应二进制数,然后再通过把二进制数转化为十六进制数的方法实现。为了使显示出来的数比较直观,在程序中又调用了2号系统功能显示,H代表十六进制数,并通过换行和回车把数放在两行。

3.DOS调用INT 21H 的1号功能子程序的作用是:从键盘上输入一个字符,并将其键值(相应字符的ASCII码值)放入寄存器AL中。1号调用不需要入口参数。

调用格式是:

MOV AH, 1

INT 21H

执行上述指令后,系统将扫描键盘,等待按键按下,如果有键按下,就将其键值对应的ASCII码值读入到寄存器AL中,同时将这个字符显示在屏幕上。

五、实验步骤:

依照上次实验步骤,对每一个实验内容对应的程序进行编辑、编译、连接和运行,直到达到实验要求。

1. 实验内容1

(1)实验内容1程序流程图

实验内容1程序流程图如图3-1所示。(2)实验内容1的源程序,参考如下:

CODE SEGMENT

ASSUME CS:CODE START PROC

CALL DECBIN

CALL XIANSHI

MOV AH,4CH

INT 21H

START ENDP

DECBIN PROC NEAR

MOV CX,10

MOV BX,0

LOP1: MOV AH,1

INT 21H

CMP AL,30H

JL EXIT

CMP AL,39H

JG EXIT

SUB AL,30H

MOV AH,00H

XCHG AX,BX

MUL CX

ADD BX,AX

JMP LOP1

EXIT: RET

DECBIN ENDP

XIANSHI PROC NEAR

LP1: MOV CX,10000

CALL DEC_DIV

MOV CX,1000

CALL DEC_DIV

MOV CX,100

CALL DEC_DIV

MOV CX,10

CALL DEC_DIV

MOV CX,1

CALL DEC_DIV

RET

XIANSHI ENDP

DEC_DIV PROC NEAR

MOV AX,BX

MOV DX,0

DIV CX

MOV BX,DX

MOV DL,AL

ADD DL,30H

MOV AH,2

INT 21H

RET

DEC_DIV ENDP

CODE ENDS

END START

图3-1 内容1程序流程图

(2)实验内容1运行结果

输入2568后,程序显示如图3-2所示:

图3-2 实验内容1运行结果

2. 实验内容2

(1)实验内容2程序流程图

实验内容2程序流程图如图3-3所示。

图3-3 实验内容2程序流程图

输入6969,显示结果如图3-4所示:

图3-4实验内容2运行结果

六、思考题

1.请总结从键盘上输入字符的方法。

2.请总结将二进制数转换为十六进制数并显示的方法。

3.修改源程序,改变屏幕显示的内容。

七、实验报告内容及要求

实验报告内容应包括实验目的、实验内容、实验设备、实验步骤以及心得体会,并按要求回答思考题1、2、3。

实验四字符串的显示实验

一、实验目的:

掌握字符串的显示方法。

二、实验内容:

1. 在内存中存有一个字符串,以0为结尾,程序开始输出“HELLO”然后等待从键盘输入一个字符,在字符串中寻找该字符,若找到,输出“yes”;若找不到,输出“no”,然后再输入下一个字符。

2. 实验内容1的程序是一个无限循环的程序,若按“ESC”键,让程序推出循环,使系统返回DOS。已知“ESC”键的键值是1BH。按照上面的要求对实验内容1的程序进行修改,然后再重新汇编、链接和运行。

三、实验设备:

PC机一台、masm汇编程序

四、实验原理:

该程序要用到DOS系统功能调用的9号子程序,9号子程序的功能是在屏幕上输出一个字符串,字符串要以字符“$”做为结尾符,但“$”在屏幕上不显示。

调用9号子程序的格式是:

MOV DX,字符串起始地址(入口参数)

MOV AH,9

INT 21H

9号子程序遇到“0DH”处理成回车;

遇到“0AH”处理成换行;

遇到“20H”处理成空格。

五、实验步骤:

1. 实验内容1

(1)实验内容1程序流程图如图4-1所示。

(2)实验内容1源程序参考如下:

DATA SEGMENT

STR1 DB 'HELLO',0DH,0AH,'$'

STR2 DB 20H,'YES',0DH,0AH,'$'

STR3 DB 20H,'NO',0DH,0AH,'$'

STR4 DB '1 2 3 0 4 5 A B a=! ?',00H

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DA TA START PROC FAR

图4-1 实验内容1程序流程图

MOV AX,DA TA

MOV DS,AX

MOV DX,OFFSET STR1

MOV AH,9

INT 21H

LOOP1: MOV AH,1

INT 21H

MOV BX,OFFSET STR4 GON: MOV AH,[BX]

CMP AH,0

JZ NO

INC BX

CMP AH,AL

JNZ GON

MOV DX,OFFSET STR2 GO: MOV AH,9

INT 21H

JMP LOOP1

NO: MOV DX,OFFSET STR3

JMP GO

RET

START ENDP

CODE ENDS

END START

(3)实验内容1运行结果

实验内容1运行结果如图4-2所示:

图4-2实验内容1运行结果2. 实验内容2

(1)实验内容2程序流程图如图4-3所示。

图4-3 实验内容2程序流程图(2)实验内容2运行结果

实验内容2运行结果如图4-4所示:

汇编实验指导书

汇编语言实验指导书 授课教师李娜 授课对象 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 segment string1 db 'move the cursor backward.' String2 db 'move the cursor backward.'

指令系统和汇编语言程序的设计实验

第二章指令系统和汇编语言程序设计实验 本章实验主要包括指令系统和汇编语言程序设计两部分。采用软件模拟调试的方法, 目的在于通过这些实验可以使学生巩固所学知识, 加深对 MCS-51单片机部结构、指令系统的理解,更进一步掌握汇编语言程序设计的方法和技巧。 第一节指令系统实验 实验一熟悉键盘操作及数传指令编程设计 一、实验目的 1.熟悉软件模拟调试的环境及键盘操作。 2.掌握汇编语言程序设计的方法,加深对指令的理解。 3.学会软件模拟调试和察看修改观察项的方法。 二、实验容 印证数据传送指令的功能、寻址方式以及 PC 指针、 SP 指针、 DPTR 指针、Ri 指针分别对代码段、堆栈段、外扩数据存储器段、位寻址区等不同存储器的访问方式。 三、实验步骤 1.进入调试软件环境,输入源程序; 2.汇编源程序; 3.用单步方式运行程序; 4.检查并记录各寄存器和存储单元容的变化。 四、程序清单

1. 部 RAM 数据传送 需要查看的数据有 30H,31H,A,R0等。 ORG 0000H MOV R0,#30H MOV 30H,#45H MOV 31H,#46H MOV R2,30H MOV 02H,31H MOV A,#87H MOV 0E0H,30H MOV 30H,A MOV 31H,R0 SJMP $ END 2. 外部数据传送 需要查看的数据有外部数据存储器单元 2000H ,外部程序存储器单元2001H 。 ORG 0000H MOV A,#89H MOV DPTR,#2000H

MOVX DPTR,A INC DPTR CLR A MOVC A,A+DPTR SJMP $ ORG 2000H DB 44H DB 78H DB 67H END 3. 堆栈操作 需要查看的数据有 50H 、 51H 、 A 及 SP 指针和堆栈区中数据随 PUSH 和POP 指令执行后的变化情况和数据的存放次序等。 1 可用于保护现场和恢复现场的程序 ORG 0000H MOV SP,#5FH MOV 50H,#3BH MOV 51H,#2FH MOV A,#12H

汇编语言循环程序实验报告

东北大学 计算机硬件技术基础实验报告 一、实验目的 (1) 加深对循环结构的理解; (2) 掌握循环程序的设计方法; (3) 熟练掌握DEBUG的常用命令,学会用DEBUG调试程序。 二、实验内容 1.已知以BUF为首地址的字存储区中存放着8个有符号二进制数,是编写程序将其中大于等于0的数依次送BUF1为首地址的字存储区中,小于0的数依次送以BUF2为首地址的字存储区中。同时将大于等于0的数的个数送A字变量,将小于0数的个数送B字变量。 2.设STR字符串是以0结尾。试编写一个把字符串中的所有大写字母改为小写字母的程序并将转换后的字符串显示输出。 3.试编程从自然数1开始累加,直到累加和大于5050为止,统计被累加的自然数的个数,并把统计的个数送入COUNT单元,累加和送入TOTAL单元。 三、算法描述流程图 实验内容1、2、3的流程图分别为图1、图2、图3。

图 1 图 2 图3

四、实验步骤 1.已知以BUF为首地址的字存储区中存放着8个有符号二进制数,是编写程序将其中大于等于0的数依次送BUF1为首地址的字存储区中,小于0的数依次送以BUF2为首地址的字存储区中。同时将大于等于0的数的个数送A字变量,将小于0数的个数送B字变量。 1)输入源程序: DATA SEGMENT BUF DW 23,123,-12,-210,45,0,90,-453 BUF1 DW 8 DUP(0) BUF2 DW 8 DUP(0) A DW ? B DW ? DATA ENDS CODE SEGMENT ASSUME CS: CODE, DS: DATA START: MOV AX, DATA MOV DS, AX LEA BX, BUF LEA SI, BUF1 LEA DI, BUF2 MOV A,0 MOV B,0 MOV CX,8 L0: MOV AX,[BX] CMP AX,0 JGE L1 MOV [DI],AX ADD DI,2 INC B JMP NEXT L1: MOV [SI],AX ADD SI,2 INC A NEXT: ADD BX,2 LOOP L0 MOV AH, 4CH INT 21H CODE ENDS END START 2)运行程序。

实验四-循环结构汇编语言程序的设计实验报告

循环结构汇编语言程序设计实验报告

实验四循环结构汇编语言程序设计 一、实验目的 1、学习循环结构的汇编语言程序的设计和调试。 2、学习通过直接对8086计算机的寄存器和存的直接访问,编写更高效简洁的汇编程序。 3、加深掌握计算机整体的工作过程。 3、加深对排序算法的理解。 二、实验任务 编写程序求出数组A中(20个元素)的最大值和最小值(数组没有排序)。 要求至少采用二种不同的排序算法来实现。( 快速排序,归并排序、堆排序、Shell排序、插入排序、冒泡排序、交换排序、选择排序、基数排序……) 三、实验容 为了更好地实现老师所布置的实验任务,我们根据情况选取以下两种方式实

验。 1、利用冒泡排序的方式求解数组A中元素的最大值最小值。设计流程图如 下所示: 2、利用选择排序的方式求得数组A中元素的序列。设计流程图如下所示:

四、实验环境 PC机: winXP/win7(32位)/win7(64位)+winxp 虚拟机 汇编工具:Masm.exe+Link.exe。 五、实验步骤 1)建立和生成的文件 (1)编写的源程序,源程序名为abc、扩展名为.asm (2)源程序经汇编程序Masm.exe汇编(翻译)后生成二进制目标程序,文件名为abc.obj (3)目标程序需要经Link.exe连接生成可执行程序,文件名为abc.exe 2)汇编环境 最基本的汇编环境只需要两个文件:Masm.exe和Link.exe。将这两个文件拷入到已经建好的文件夹(例如 huibian)中,并将文件夹huibian放在硬盘根

目录C :\>下 3)上机步骤 进入DOS窗口中执行。 4)调试程序 进入DEBUG后,调试程序 5)调试成功后重新汇编、连接并生成可执行代码 6)执行程序,并对运行结果截图。 利用冒泡排序求得数组A中元素的最大值最小值的实验结果如下图所示:(说明:输入数据为:13,0,59,900,587,1,657,234,34,48) 利用选择排序对数组A中元素排序得到的序列得实验结果如下图所示:(说明:输入数据为13,0,59,900,587,1,657,234,34,48)

汇编语言程序设计实验指导书

汇编语言实验报告题目:子程序设计 班级: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学生的名次。再按学号顺序把名次从终端上显示出来。 说明:程序设计中应体现出模块化程序设计思想和方法。 三、实验仪器设备: 提供实验条件。 Pc机并在debug的环境下进行调试

计算机组成原理实验1-汇编语言实验

微处理器与接口技术 实验指导

实验一监控程序与汇编语言程序设计实验 一、实验要求 1、实验之前认真预习,明确实验的目的和具体实验内容,设计好主要的待实验的程序,做好实验之前的必要准备。 2、想好实验的操作步骤,明确通过实验到底可以学习哪些知识,想一想怎么样有意识地提高教学实验的真正效果。 3、在教学实验过程中,要爱护教学实验设备,认真记录和仔细分析遇到的现象与问题,找出解决问题的办法,有意识地提高自己创新思维能力。 4、实验之后认真写出实验报告,重点在于预习时准备的内容,实验数据,实验过程、遇到的现象和解决问题的办法,自己的收获体会,对改进教学实验安排的建议等。善于总结和发现问题,写好实验报告是培养实际工作能力非常重要的一个环节,应给以足够的重视。 二、实验目的 【1】学习和了解TEC-XP16教学实验系统监控命令的用法; 【2】学习和了解TEC-XP16教学实验系统的指令系统;

【3】学习简单的TEC-XP16教学实验系统汇编程序设计。 三、实验注意事项 (一)实验箱检查 【1】连接电源线和通讯线前TEC-XP16实验系统的电源开关一定要处于断开状态,否则可能会对TEC-XP16实验系统上的芯片和PC机的串口造成损害。 【2】五位控制开关的功能示意图如下: 【3】几种常用的工作方式【开关拨到上方表示为1,拨到下方为0】 (二)软件操作注意事项 【1】用户在选择串口时,选定的是PC机的串口1或串口2,而不是TEC-XP16实验系统上的串口。即选定的是用户实验时通讯线接的PC机的端口; 【2】如果在运行到第五步时没有出现应该出现的界面,用户需要检查是不是打开了两个软件界面,若是,关掉其中一个再试; 【3】有时若TEC-XP16实验系统不通讯,也可以重新启动软件或是重新启动PC再试; 【4】在打开该应用软件时,其它的同样会用到该串口的应用软件要先关掉。

汇编语言学习知识程序设计实验

目录 目录 (1) 实验一利用DEBUG熟悉常用指令的使用 (2) 一、实验目的 (2) 二、示例 (2) 三、实验题 (2) 实验二汇编程序和连接程序的使用 (6) 一、实验目的。 (6) 二、示例。 (6) 三、实验题。 (8) 实验三顺序结构程序设计 (11) 一、实验目的 (11) 二、示例 (11) 三、实验题 (12) 四、实验报告 (15) 实验四循环结构程序设计 (16) 一、实验目的 (16) 二、示例 (16) 三、实验题 (18) 实验五分支结构程序设计 (21) 一、实验目的 (21) 二、示例 (21) 三、实验题 (22) 实验六子程序设计 (29) 一、实验目的 (29) 二、实验题 (29)

实验一利用DEBUG熟悉常用指令的使用 一、实验目的 熟悉指令系统,掌握常用指令的用法;通过实验加深对各种寻址方式的理解;能熟练使用DEBUG中的命令对指令进行反汇编,观察并了解机器代码。 二、示例 请分别用一条汇编语言指令完成如下功能:(过程略)。 1.用寄存器BX和SI的基址变址寻址方式把存储器的一个字节与AL寄存器的内容相加,并把结果送到AL中。 ADD AL,[BX][SI] 2.用位移量为0520H的直接寻址方式把存储器中的一个字与3412H相加,并把结果送回该存储单元。 ADD WORF PTR [0520H],3412H 三、实验题 1.调试、验证下列指令的结果,已知(DS)=2000H,(BX)=0100H,(SI)=0002H,(BP)=0200H,(SS)=2300H,(20100)=12H,(20101)=34H,(20102)=56H,(20103)=78H,(21200)=2AH,(21201)=4CH,(21202)=B7H,(21203)=65H,(23204)=88H,说明各指令执行完后AX寄存器的内容。要求输入指令,相应存储单元的内容要事先设置,单步 P执行,观察执行结果。 (设置存储器的值)

汇编语言程序设计-实验指导书

汇编语言程序设计 实验指导书 编写:郑利平 合肥工业大学计算机与信息学院 2008-9-1

汇编语言程序设计实验指导书 《汇编语言程序设计》实验是学习本课程的每个考生必须要通过的一个重要的实践环节,根据“汇编语言程序设计自学考试大纲”规定:上机实验单独作为本课程的实验考核成绩。《汇编语言程序设计》是一门实践性很强的课程,只有多上机操作,对汇编语言源程序进行编辑、汇编、连接、调试和运行全过程的训练,才能加深对本课程基本知识的理解,才能熟练地掌握程序设计的方法与技巧,才能学好本课程。 本实验指导书是完全按照《汇编语言程序设计自学考试大纲》中“实验大纲”的要求编写的,为便于考生较好完成上机操作和实验报告,特此作出如下说明和要求: (1)做好上机实验的准备工作:应考者对每个实验需要进行预习,了解相关内容和具体要求,熟悉上机操作步骤,学会相关系统软件的使用,掌握各种操作调试命令。 (2)编写源程序:按照实验题目的要求,应考者要事先独立完成汇编语言源程序的编写工作,并对源程序进行认真的静态检查,减少错误的发生。 (3)完成实验报告:做完上机实验,应考者要严格按照实验报告的格式要求写出实验报告。实验报告的内容为:实验名称、实验的目的、实验的内容和要求、实验步骤、实验结果并附上源程序清单和程序流程图。

实验一DEBUG的使用 (一)实验目的 1、熟悉DEBUG程序中的命令,学会在DEBUG下调试运行汇编语言源程序。 2、掌握8086/8088的寻址方式及多字节数据的处理方法。 (二)实验设备 硬件环境:IBM-PC及其兼容机 软件环境:操作系统DOS3.0版本以上 调试程序https://www.360docs.net/doc/4c12753757.html, (三)实验内容和要求 实验内容: 1、利用DEBUG程序中的“E”命令,将两个多字节数“12345678H”和“FEDCBA98H”分别送入起始地址为DS:0200H和DS:0204H两个单元中。 2、分别用直接寻址方式和寄存器间接寻址方式编写程序段,实现将DS:0200H单元和DS:0204H单元中的数据相加,并将运算结果存放在DS:0208H 单元中。 实验要求: 本次实验的内容均在DEBUG下完成,实现数据的装入、修改、显示;汇编语言程序段的编辑、汇编和反汇编;程序的运行和结果检查。 (四)预习要求 1、复习DOS启动方式和DOS有关命令的使用; 2、阅读本书后的附录,熟悉掌握DEBUG调试程序中的A、D、E、G、Q、R、T、U命令的书写格式及功能; 3、复习寻址方式和相关的数据传送指令及算术运算指令。 (五)实验步骤 1、启动DOS操作系统 2、运行https://www.360docs.net/doc/4c12753757.html,程序(若当前盘为C) C:>DEBUG↙ – ;(“–”为DEBUG提示符,仅当屏幕出现该提示符后,才可输入DEBUG 命令) 3、用“A”命令编辑和汇编源程序 –A ↙ 186E:0100 MOV AX,[0200]↙ 186E:0103 MOV BX,[0202]↙ 186E:0107 ADD AX,[0204]↙ 186E:010B ADC BX,[0206]↙ 186E:010F MOV [0208],AX↙ 186E:0112 MOV [020A],BX↙

余敦辉《汇编语言》实验指导书实验1-实验3

《汇编语言》实验指导书

目录 实验一Debug命令的使用 (3) 实验二基本汇编指令的使用 (9) 实验三汇编语言程序的调试与运行 (13) 实验四系统功能调用程序的调试与运行………………错误!未定义书签。 实验五分支程序设计……………………………………错误!未定义书签。 实验六循环程序设计……………………………………错误!未定义书签。 实验七子程序设计………………………………………错误!未定义书签。 实验八高级汇编语言程序设计…………………………错误!未定义书签。 实验九I/O程序设计……………………………………错误!未定义书签。 实验十中断程序设计……………………………………错误!未定义书签。 实验十一综合程序设计 (38)

实验一Debug命令的使用 一、知识点 1、DEBUG简介 DEBUG.EXE是DOS提供的用于调试可执行程序的一个工具软件。在汇编语言程序调试中很常用。 DEBUG的提示符是“-”,所有DEBUG调试命令军在此提示符下输入。 DEBUG命令都是一个字母,后跟一个或多个参数,也可使用默认参数。 DEBUG命令的使用注意问题: (1)字母不分大小写 (2)只使用十六进制数,但没有带后缀字母“H” (3)命令如果不符合DEBUG的规则,则将以“error”提示,并以“^”指示出错位置。 (4)每个命令只有按下回车键后才有效,可以用Ctrl+Break终止命令的执行。 2、Debug的调入和退出 以WIN7环境为例,点击“开始/运行…”,在“运行”对话框中输入命令:cmd,然后点击“确定”,进入DOS命令行状态: C:\Documents and Settings\lfy> 然后输入命令: >Debug 进入Debug调试状态,出现Debug命令提示府“-”,在此提示符下可运行所需要的Debug 命令了。 退出Debug的命令:Q 3、Debug常用命令 (1)汇编命令A,格式为: - A [地址] 功能:从指定地址开始允许输入汇编指令,并将该指令汇编成机器指令代码从指定地址开始存放。若不指定地址,则系统从默认的地址开始存放。按回车键退出汇编状态 应用:用于调试一条指令或几条指令组成的一个程序段。

汇编语言程序设计实验报告

微机原理实验报告 实验名称汇编语言程序设计 一、实验目的 1、掌握Lab6000p实验教学系统基本操作; 2、掌握8088/8086汇编语言的基本语法结构; 3、熟悉8088/8086汇编语言程序设计基本方法 二、实验设备 装有emu8086软件的PC机 三、实验内容 1、有一个10字节的数组,其值分别是80H,03H,5AH,FFH, 97H,64H,BBH,7FH,0FH,D8H。编程并显示结果:如果数组是无符号数,求出最大值,并显示; 如果数组是有符号数,求出最大值,并显示。 2、将二进制数500H转换成二-十进制(BCD)码,并显示“500H 的BCD是:” 3、将二-十进制码(BCD)7693转换成ASCII码,并显示“BCD 码7693的ASCII是:” 4、两个长度均为100的内存块,先将内存块1全部写上88H,再 将内存块1的内容移至内存块2。在移动的过程中,显示移动次数1,2 ,3…0AH…64H(16进制-ASCII码并显示子程序) 5、键盘输入一个小写字母(a~z),转换成大写字母 显示:请输入一个小写字母(a~z): 转换后的大写字母是: 6、实现4字节无符号数加法程序,并显示结果,如99223344H + 第1页

99223344H = xxxxxxxxH 四、实验代码及结果 实验代码见代码附录 1.1程序运行结果 图1 无符号最大值结果截图 1.1 程序运行结果

图2 有符号最大值截图2.0 程序运行结果

图3 BCD码显示3.0 程序运行结果

图4 ASCII码显示4.0 程序运行结果

图5 移动次数显示5.0 程序运行结果

第3章-MCS-51系列单片机的指令系统和汇编语言程序范文

第3章MCS一51系列单片机的指令系统 和汇编语言程序 3·1汇编指令 3·1·1请阐明机器语言、汇编语言、高级语言三者的主要区别,进一步说明为什么这三种语言缺一不可。 3·1·2请总结: (1)汇编语言程序的优缺点和适用场合。 (2)学习微机原理课程时,为什么一定要学汇编语言程序? 3·1·3MCS一51系列单片机的寻址方式有哪儿种?请列表分析各种寻址方式的访问对象与寻址范围。 3·1·4要访问片内RAM,可有哪几种寻址方式? 3·1·5要访问片外RAM,有哪几种寻址方式? 3·1·6要访问ROM,又有哪几种寻址方式? 3·1·7试按寻址方式对MCS一51系列单片机的各指令重新进行归类(一般根据源操作数寻址方式归类,程序转移类指令例外)。 3·1·8试分别针对51子系列与52子系列,说明MOV A,direct指令与MOV A,@Rj 指令的访问范围。 3·1·9传送类指令中哪几个小类是访问RAM的?哪几个小类是访问ROM的?为什么访问ROM的指令那么少?CPU访问ROM多不多?什么时候需要访问ROM? 3·1·10试绘图示明MCS一51系列单片机数据传送类指令可满足的各种传送关系。3·1·11请选用指令,分别达到下列操作: (1)将累加器内容送工作寄存器R6. (2)将累加器内容送片内RAM的7BH单元。 (3)将累加器内容送片外RAM的7BH单元。 (4)将累加器内容送片外RAM的007BH单元。 (5)将ROM007BH单元内容送累加器。 3·1·12 区分下列指令的不同功能: (l)MOV A,#24H 与MOV A.24H (2)MOV A,R0与MOV A,@R0 (3)MOV A,@R0与MOVX A,@R0 3·1·13设片内RAM 30H单元的内容为40H; 片内RAM 40H单元的内容为l0H; 片内RAM l0H单元的内容为00H; (Pl)=0CAH。 请写出下列各指令的机器码与执行下列指令后的结果(指各有关寄存器、RAM单元与端口的内容)。 MOV R0,#30H MOV A,@R0 MOV RI,A MOV B,@Rl MOV @R0,Pl MOV P3,Pl MOV l0H,#20H MOV 30H,l0H

汇编语言——输入输出程序设计实验

实验四输入/输出实验(2学时综合性实验) 1.实验目的 (1) 掌握输入输出程序设计的概念和方法。 (2) 了解PC机外围芯片8259的功能。 (3)学习如何在PC机上编写具有输入输出功能的程序,包括8259芯片的使用方法。 2.实验说明 本实验要求自行编写一个显示器输出处理程序,它可以完成内存中保存的一串字符在屏幕显示, 因此本实验既属于输入输出实验,也属于中断实验。 3.实验内容 编写一个显示器输出处理中断程序(名为NEW09),实现DOS 21H中断的9号功能,在屏幕上输出内存缓冲区BUF中以”$”结束的一串字符串。要求:缓冲区的偏移地址采用DX寄存器进行传递。 4.实验准备 (1) 预习输入输出程序设计的特点和方法。 (2) 仔细阅读参考程序,弄清外围芯片接口初始化的意义和方法。 5.实验步骤 (1) 建立源文件,并通过汇编和连接,产生可执行文件。 (2) 运行程序,观察常规字符键及功能键按下时程序的反应, DATAS SEGMENT buf db'li hongbin','$';此处输入数据段代码 DATAS ENDS STACKS SEGMENT ;此处输入堆栈段代码 STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS

main proc far START: mov al,68h mov ah,35h int 21h push es push bx push ds mov bx,offset buf mov dx,offset new09 mov ax,seg new09 mov ds,ax MOV AX,DATAS MOV DS,AX pop ds pop bx pop es sti mov al,68h mov ah,25h int 21h main endp

汇编语言程序设计实验篇emu

1.汇编语言程序设计实验篇 1.1.汇编系统软件简介 Emu8086-Microprocessor Emulator是集源代码编辑器、汇编/反汇编工具以及debug 的模拟器。它能模拟一台"虚拟"的电脑运行程序,拥有独立的“硬件”,避免访问真实硬件。该软件兼容Intel的下一代处理器,包括PentiumII、Pentium4。利用该软件提供的调试工具,能够单步跟踪程序,观察程序执行过程中寄存器、标志位、堆栈和内存单元的内容。 1.1.1创建程序 https://www.360docs.net/doc/4c12753757.html, TEMPLATE程序 本章与指令相关的实验都是用COM TEMPLATE类型的程序完成的。打开emu8086,在“welcome…”对话框中,单击按钮,创建文件。 在“choose code template”对话框中,选择“COM template-simple and tiny executable file format, pure machine code.”后,单击按钮。

在如所示的编辑界面中,在“;add your code here”部分输入相应的指令,第一条指令默认的偏移地址为100h。 输入全部指令后,单击按钮,保存相应的程序段。 2.EXE TEMPLATE程序 本章与DOS功能调用和汇编源程序相关的实验都是用EXE TEMPLATE程序完成的。打开emu8086,在“welcome…”对话框中,单击按钮,创建文件。

在“choose code template”对话框中,选择“EXE template-advanced executable file.header: relocation, checksum.”后,单击按钮。 在如图所示的编辑界面中,已经可以给出了源程序的框架,包含数据段、堆栈段和代码段的定义以及必要的功能调用等,在“add your data here”和“;add your code here”部分可以分别输入相应的变量定义和指令。

实验指导书参考2

汇编语言程序设计实验指导书

汇编语言程序设计实验指导书 《汇编语言程序设计》实验是学习本课程的每个考生必须要通过的一个重要的实践环节,根据“汇编语言程序设计自学考试大纲”规定:上机实验单独作为本课程的实验考核成绩。《汇编语言程序设计》是一门实践性很强的课程,只有多上机操作,对汇编语言源程序进行编辑、汇编、连接、调试和运行全过程的训练,才能加深对本课程基本知识的理解,才能熟练地掌握程序设计的方法与技巧,才能学好本课程。 本实验指导书是完全按照《汇编语言程序设计自学考试大纲》中“实验大纲”的要求编写的,为便于考生较好完成上机操作和实验报告,特此作出如下说明和要求: (1)做好上机实验的准备工作:应考者对每个实验需要进行预习,了解相关内容和具体要求,熟悉上机操作步骤,学会相关系统软件的使用,掌握各种操作调试命令。 (2)编写源程序:按照实验题目的要求,应考者要事先独立完成汇编语言源程序的编写工作,并对源程序进行认真的静态检查,减少错误的发生。 (3)完成实验报告:做完上机实验,应考者要严格按照实验报告的格式要求写出实验报告。实验报告的内容为:实验名称、实验的目的、实验的内容和要求、实验步骤、实验结果并附上源程序清单和程序流程图。

实验一DEBUG的使用 (一)实验目的 1、熟悉DEBUG程序中的命令,学会在DEBUG下调试运行汇编语言源程序。 2、掌握8086/8088的寻址方式及多字节数据的处理方法。 (二)实验设备 硬件环境:IBM-PC及其兼容机 软件环境:操作系统DOS3.0版本以上 调试程序https://www.360docs.net/doc/4c12753757.html, (三)实验内容和要求 实验内容: 1、利用DEBUG程序中的“E”命令,将两个多字节数“12345678H”和“FEDCBA98H”分别送入起始地址为DS:0200H和DS:0204H两个单元中。 2、分别用直接寻址方式和寄存器间接寻址方式编写程序段,实现将DS:0200H单元和DS:0204H单元中的数据相加,并将运算结果存放在DS:0208H 单元中。 实验要求: 本次实验的内容均在DEBUG下完成,实现数据的装入、修改、显示;汇编语言程序段的编辑、汇编和反汇编;程序的运行和结果检查。 (四)预习要求 1、复习DOS启动方式和DOS有关命令的使用; 2、阅读本书后的附录,熟悉掌握DEBUG调试程序中的A、D、E、G、Q、R、T、U命令的书写格式及功能; 3、复习寻址方式和相关的数据传送指令及算术运算指令。 (五)实验步骤 1、启动DOS操作系统 2、运行https://www.360docs.net/doc/4c12753757.html,程序(若当前盘为C) C:>DEBUG↙ – ;(“–”为DEBUG提示符,仅当屏幕出现该提示符后,才可输入DEBUG 命令) 3、用“A”命令编辑和汇编源程序 –A↙ 186E:0100 MOV AX,[0200]↙ 186E:0103 MOV BX,[0202]↙ 186E:0107 ADD AX,[0204]↙ 186E:010B ADC BX,[0206]↙ 186E:010F MOV [0208],AX↙ 186E:0112 MOV [020A],BX↙

指令系统及汇编语言程序设计

第3章指令系统及汇编语言程序设计 一、简答题 1、80C51系列单片机的指令系统有何特点? 2、80C51单片机有哪几种寻址方式?各寻址方式所对应的寄存器或存储器空间如何? 3、访问特殊功能寄存器SFR可以采用哪些寻址方式? 4、访问内部RAM单元可以采用哪些寻址方式? 5、访问外部RAM单元可以采用哪些寻址方式? 6、访问外部程序存储器可以采用哪些寻址方式? 7、为什么说布尔处理功能是80C51单片机的重要特点? 8、对于80C52单片机内部RAM还存在高128字节,应采用何种方式访问? 9、试根据指令编码表写出下列指令的机器码。 (1)MOV A,#88H (2)MOV R3,50H (3)MOV P1.1,#55H (4)ADD A,@R1 (5)SETB 12H 10、完成某种操作可以采用几条指令构成的指令序列实现,试写出完成以下每种操作的指 令序列。 (1)将R0的内容传送到R1; (2)内部RAM单元60H的内容传送到寄存器R2; (3)外部RAM单元1000H的内容传送到内部RAM单元60H; (4)外部RAM单元1000H的内容传送到寄存器R2; (5)外部RAM单元1000H的内容传送到外部RAM单元2000H。 11、11、若(R1)=30H,(A)=40H,(30H)=60H,(40H)=08H。试分析执行下列程序段 后上述各单元内容的变化。 MOV A,@R1 MOV @R1,40H MOV 40H,A MOV R1,#7FH 12、若(A)=E8H,(R0)=40H,(R1)=20H,(R4)=3AH,(40H)=2CH,(20)=0FH, 试写出下列各指令独立执行后有关寄存器和存储单元的内容?若该指令影响标志位,试指 出CY、AC、和OV的值。 (1)MOV A,@R0 (2)ANL 40H,#0FH (3)ADD A,R4 (4)SWAP A (5)DEC @R1 (6)XCHD A,@R1 13、若(50H)=40H,试写出执行以下程序段后累加器A、寄存器R0及内部RAM的40H、41H、 42H单元中的内容各为多少? MOV A,50H MOV R0,A MOV A,#00H MOV @R0,A MOV A,3BH MOV 41H,A MOV 42H,41H 14、试用位操作指令实现下列逻辑操作。要求不得改变未涉及的位的内容。

汇编语言程序设计实验

第2章汇编语言程序设计实验 2.1、实验1-1——多字节数的运算 1、实验目的计科1406 熟悉汇编语言的上机环境和各种工具(编辑、汇编、连接、调试);201416010608掌握完整段和简化段两种汇编程序的编写;李文俊 掌握简单汇编程序的处理和调试过程。 2、实验内容 ⑴、两个长度为3个字节(3B)的二进制无符号数,分别存放在首地址为buf1和buf2的连续内存单元中,编程求这两者之和,并将结果放在起始地址为res的内存单元中。例如,这两个数据为888888H、456789H,则其和应为[1]CDF011H。 要求: ?用完整段和简化段两种方式实现。 ?观察它们的反汇编结果并进行比较,单步运行程序。 注意: ?程序运行前先将res清0,程序运行后观察res单元中的数据是否符合预期。 ?数据存放应“高对高、低对低”。 ⑵、将两数改为3B的压缩BCD码,重复以上实验过程。例如,这两个数据为888888H、456789H,则其和应为[1]345677H(表示[1]345677)。 ?注意,每两个字节相加后,应紧接着进行二-十进制调整。 3、实验扩展和思考 ⑴、计算两个长度为3B的二进制数据之差应如何进行操作? ⑵、计算两个长度为3B的压缩BCD码数据之差应如何进行操作? ============================================================================ ==== 实验报告 ============================================================================

8086汇编语言程序设计实验指导书

汇编语言上机实验指导书 一、概述 上机实验总学时为16学时,其中综合性实验为2学时。实验共有6项暂定为8次,每次2学时。 1.实验辅导的主要内容 实验辅导的内容包括每个实验的实验目的;实验内容;对实验的算法及实验方法的必要说明;实验准备;实验步骤;实验报告要求;实验程序及参考框图。开始的实验介绍较细,后面的实验简要介绍。 2.实验的软硬件要求 关于汇编语言程序设计的硬件要求不高,有IBM-PC/XT即可,但应有彩色显示器以便进行图形实验。软件方面应有MASM.EXE5.0版(包括LINK.EXE),与MS-DOS版本配套的DEBUG程序和EDIT.EXE编辑软件(其它编辑软件也可以)。 3.加强实践能力的培养 实验目的不光是为了验证书本理论,更重要的是对实践能力的培养。其中包括: 实际调试程序的能力,例如修改程序参数的能力,查看结果的能力,设置断点调试运行的能力等; 开发汇编语言应用程序的能力,例如应用有关汇编软件的能力,进行系统调用和BIOS功能调用的能力,进行模块程序设计的能力等。 对某一问题用不同的程序实现的能力,例如我们为每个实验提供了参考程序(或程序段),目的是让每个实验者参照样板程序将实验成功地实现,在掌握其方法后,自己改变程序或自己编制程序加以实现。 实验一汇编语言运行环境及方法、简单程序设计(2学时、验证性) 1.实验目的: (1) 熟悉汇编语言运行环境和方法 (2)了解如何使用汇编语言编制程序 (3) 熟悉DEBUG有关命令的使用方法 (4) 利用DEBUG掌握有关指令的功能 (5) 利用DEBUG运行简单的程序段 2.实验内容 (1)学会输入、编辑汇编语言程序 (2)学会对汇编语言程序进行汇编、连接和运行 (3)进入和退出DEBUG程序 (4)学会DEBUG中的D命令、E命令、R命令、T命令、A命令、G命令等的使用。对于U命令、N命令、W命令等,也应试一下。 3.实验准备 (1)仔细阅读有关汇编语言环境的内容,事先准备好使用的例子。 (2)准备好源程序清单、设计好调试步骤、测试方法、对运行结果的分析。 (3) 编写一个程序:比较2个字符串所含的字符是否相同。若相同则显示’Match.’,否则显示’No match!’;(1)仔细阅读有关DEBUG 命令的内容,对有关命令,都要事先准备好使用的例子。 4.实验步骤 (1)在DOS提示符下,进入MASM目录。 (2)在MASM目录下启动EDIT编辑程序,输入源程序,并对其进行汇编、连接和运行。 ①调用edit输入、编辑源程序并保存在指定的目录中;例:edit abc.asm ②用汇编程序masm对源程序汇编产生目标文件obj。例:masm abc 不断修改错误,直至汇编通过为止。 ③用连接程序link产生执行文件exe.例:link abc ④执行程序 可直接从DOS执行程序,即在DOS环境中,输入文件名即可。 (3)详细记录每一步所用的命令,以及查看结果的方法和具体结果。 5.实验报告要求 (1)源程序清单。 (2) 如何启动和退出EDIT程序。 (3) 如何对源程序进行汇编及编辑。 (4)如何启动和退出DEBUG程序。

指令系统及汇编语言程序设计

指令系统及汇编语言程序设计 2.4 伪指令 伪指令本身不会产生可执行的机器指令代码,它仅仅是告诉汇编程序有关源程序的某些信息,或者用来说明内存单元的用途。伪指令在汇编过程中由汇编程序进行处理。 2.4.1 数据定义伪指令 数据定义伪指令用于定义变量的类型、给存储器赋初值或给变量分配存储单元。常用的数据定义伪指令有DB、DW和DD等。 格式: [变量名] 伪指令助记符数据表项 功能:定义一个数据存储区,其类型由所定义的数据定义指令而指定。 操作说明:方括号中的变量名为任选项,变量名后面不跟冒号“:”。数据表项可以包含多个数据之间用逗号分隔开。数据定义伪指令助记符有以下三种: (1) DB定义变量类型为字节(BYTE),DB后面的每个数据占一个字节。 (2) DW 定义变量类型为字(WORD),DW后面的每个数据占一个字,即两个字节。在内存中,低字节在前,高字节在后。 (3) DD 定义变量类型为双字(DWORD),后面的每个数据占两个字。在内存中,低位字在前,高位字在后。 例如,有下列数据定义语句 D1 DB 1,-12 D2 DW 1,2010H D3 DD 1,10203040H 数据表项中除了常数、表达式和字符串外,还可以是问号“?”,它仅给变量保留相应的存储单元,而不给变量赋初值。相同的操作数重复出现时,可用重复符号“DUP”表示。 其格式为: n DUP(初值[,初值,……]);n表示重复的次数,圆括号中为重复的内容。 下面是用问号或DUP表示操作数的例子: ARRAY DB 1000 DUP(0) VAR DW ?,? 2.4.2 符号定义伪指令 1. 赋值伪指令 格式:变量名 EOU 表达式 功能:将右边表达式的值赋给左边的变量。 操作说明:表达式可以是一个常数、符号、数值表达式或地址表达式。 需要注意的是:EQU伪指令不允许对同一符号重复定义。 EQU伪指令具体应用举例如下: CR EQU ODH ;定义CR为常数(回车的ASCII代码) TAB EQU TABLE-ASCII ;定义变量 DIS EQU 1024*768 ;定义数值表达式 ADR EQU ES:[DI+3] ;定义地址表达式 M EQU MOV ;定义助记符 2.等号(=)伪指令 格式:变量名=表达式 功能:将右边表达式的值赋给左边的变量。 操作说明:等号(=)伪指令的功能与EQU伪指令相仿,它可以对同一个名字重复定义。

汇编语言实验指导书.

汇编语言实验指导书纪平张雷编写 安徽工业大学计算机学院 二00四年三月 目录 实验一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个字节。

相关文档
最新文档