《汇编语言程序设计》 实验教学大纲

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
DATA ENDS PROG SEGMENT
ASSUME CS:PROG,DS:DATA,ES:DATA START:MOV AX,DATA
MOV DS,AX MOV ES,AX LEA SI,STRINGl LEA DI,STRING2 CLD MOV CX,25 REPZ CMPSB JZ MATCH LEA DX,MESS2 JMP SHORT DISP MATCH: LEA DX,MESSl DISP: MOV AH,09 1NT 21H MOV AH, 4CH INT 21H PROG ENDS END START
【实验计划】
实验序号
实验项目内容
学时
实验一 IBM-PC 寻址方式及 DEBUG 的使用 3
实验二
熟悉指令系统
3
实验三
建立运行汇编语言程序
3
实验四
循环程序设计
2
实验五
分支程序设计
2
实验六
子程序设计
2
实验七
I/O 程序设计
2
【实验教材及主要参考资料】
教材: 1.《IBM-PC 汇编语言程序设计(第二版)》,沈美明、温冬蝉编著,清华大 学出版社,2001.8。 2.《IBM-PC 汇编语言程序设计实验教程》,沈美明、温冬蝉、张赤红编著, 清华大学出版社,2008.2。
用情况。(注意:微机进入 DEBUG 状态下之后,一切立即数和地址数据均被默认
为十六进制数,在输入时数的后面不加后缀“H”。)
2.将数据段中的两个数求和,结果保存在数据段中。
源程序、机器语言程序如下:
CS:0100 Al 00 00
MOV AX,[0000]
CS:0103 03 06 02 00 ADD AX,[0002]
JB INPUT ;不是"0~F"的数重新输入
CMP AL,39H ; 是"0~9"吗?
JA AF
;不是,转"A~F"的处理
AND AL,0FH ;转换为:0000B~1001B
JMP BINARY
AF: AND AL,1101 1111B ;转换为大写字母
CMP AL,41H ;又<A 吗?
JB INPUT ;不是"A~F"的数重新输入
(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= 3.自己试着写段程序: -A 100↙ 16C6:0100 DB‘1234567890‘↙ 16C6:010A CLD↙ 16C6:010B MOV SI,100↙ 16C6:010E MOV DI,200↙ 16C6:0111 MOV CX,A↙ 16C6:0114 REP MOVSB↙ 16C6:0116↙ -G =10A 116↙;运行上述程序(起始地址 10AH,结束地址 116H)。 -D 100 L A↙;显示 DS:100 开始 10 个字节内容 16C6:0100 31 32 33 34 35 36 37 38-39 30 ‘1234567890 -D ES:200 L A↙显示 ES:100 开始 10 个字节内容 16C6:0200 31 32 33 34 35 36 37 38-39 30 ‘1234567890 4.写出实验报告。
与它等值的二进制数。
实验主要步骤:
1.根据要Байду номын сангаас,画出程序框图,写出汇编源代码。
参考程序如下:
Begin: MOV BX,0 ;用于存放四位的 16 进制数
MOV CH,4
MOV CL,4
INPUT: SHL BX,CL ;将前面输入的数左移 4 位
MOV AH,1 ;从键盘取数
INT 21H
CMP AL,30H ;<0 吗?
实验三、建立运行汇编语言程序
实验目的:
1.掌握汇编语言程序格式及其它命令的作用。
2.掌握汇编、连接、运行汇编程序的全过程,并能检查修攙程序简单错误。
实验内容:
1.编写程序,比较两个字符串 STRINGl 和 STRING2 所含的字符是否相同。
若相同,则显示'Match';否则,显示'No match'。
《汇编语言程序设计》实验教学大纲
课程号:080503101301 课程类别:专业基础课
适用专业:计算机科学与技术专业
课程总学时:34
实验学时:17
大纲编写人:\\\ 编写时间:2010 年 6 月 18 日
【实验目标要求】
《汇编语言程序设计》是计算机科学与技术专业必修的专业基础课程。汇编 语言程序设计实验的目标是学习汇编语言程序设计的基本方法和技能,熟练掌握 用汇编语言设计、编写、调试和运行程序的方法,汇编语言程序实验的内容与计 算机硬件特性联系紧密。通过上机实验的学习,使学生不仅能加深理解和巩固理 论课所学的知识,而且还能了解计算机的底层软件的工作过程,为今后学习后续
Begin:MOV AH,1 ;从键盘输入一个字符 INT 21H CMP AL,'a' ;输入字符<'a'吗? JB STOP CMP AL,'z' ;输入字符>'z'吗? JA STOP SUB AL,20H ;转换为大写字母或 AND AL,1101 1111B 也可以 MOV DL,AL ;显示一个字符 MOV AH,2 INT 21H JMP Begin
实验二、熟悉指令系统
实验目的:
1.熟悉 8088/8086 的指令书写格式、功能。
2.能熟练运用数据传递、算术、逻辑三类指令。
实验内容:
1.用 DEBUG 调试程序功能编程序计算(W—(X×Y+Z—540))/X。其中 X、
Y、Z、W 均为 16 位带符号数,要求上式计算结果的商存人 AX 寄存器中,余
数存人 DX 寄存器。掌握算术指令的用法。
2.用 DEBUG 编程并查看逻辑指令的运行结果,掌握逻辑指令的用法。
3.熟悉其它几组指令的功能和用法,并区分字、字节操作。
实验主要步骤:
1.预先编制程序片段,实现(W—(X×Y+Z—540))/X,将计算结果的商存人
AX 寄存器中,余数存人 DX 寄存器。 参考程序代码如下:
2.使用记事本或其它字处理软件(Edit.exe)编辑该源文件。 3.使用 Masm、Link 程序汇编、连接该文件,形成可执行的.EXE 文件。 参考步骤如下:
(1)调用全屏幕编辑程序 EDlT 建立 ASM 文件。 C>EDIT 输入实验内容 1 的源程序并以 SAMPLE.ASM 为文件名将文件存盘。 ( 2 ) 用 汇 编 程 序 MASM 对 源 文 件 SAMPLE.ASM 汇 编 并 产 生 目 标 文 件 SAMPLE.OBJ。 C>MASM SAMPLE 如汇编指示有错误,则需重新调用编辑程序修改程序中的错误,直至汇编通过为止。 (3)用连接程序 LINK 产生执行文件 SAMPLE.EXE。 C>LINK SAMPLE (4)执行程序。 可直接从 DOS 状态执行程序。 C>SAMPLE 显示器上显示出程序的运行结果。 Match.
课程打好良好的基础。
【实验学习要求】
认真阅读《IBM-PC 汇编语言程序设计》教材中与实验相关的章节内容,提 前做好实验预习,做到在每个实验前明确实验目的、掌握实验的基本内容及操作 方法;在实验中正确使用实验设备,认真观察、分析实验结果;实验后要根据要 求做好总结,上交实验报告。具体要求如下:
1.上机前,要作好充分准备,包括程序框图、源程序清单、调试步骤、测试 方法、对运行结果的分析等。
CS;0107 A3 04 00
MOV [0004],AX
CS:010A CB
RETF
数据段内容如下:
DS:0000 2301 2500
;两个已知数
3.在 Debug 中编制简单的汇编程序片断,并调试运行,得出结果。
实验主要步骤:
1.在 DOS 或 Windows 的命令行窗口执行命令 Debug.exe,进入 Debug 程序
2.上机编辑源程序,并汇编、连接、调试运行,查看结果。 3.写出实验报告。
实验五、分支程序设计 实验目的: 1.加深对分支程序的理解,掌握分支程序的结构。熟悉运算类指令对标志位 的状态影响以及标志位状态的表示方法;掌握条件转移、无条件转移指令的使用 方法。 2. 掌握分支程序设计、编写、调试和运行的方法。 实验内容: 1.试编写小程序:对键盘输入的小写字母用大写字母显示出来。 参考程序段如下:
【实验任务】
实验一、IBM-PC 寻址方式及 DEBUG 的使用 实验目的: 1.熟悉 DEBUG 的功能,运行并掌握其常用命令。 2.使用 DEBUG,通过数据传送指令观察 IBM-PC 机各种寻址方式的区别。 实验内容:
1. DEBUG 的加载及其常用命令(A、U、R、D、E、T、P、G、Q)的使
DATA SEGMENT X DW 1200H Y DW 0034H Z DW 0F045H W DW 034AH
DATA ENDS CODE SEGMENT
ASSUME CS:CODE,DS:DATA START: MOV AX,X
IMUL Y MOV CX,AX MOV BX,DX MOV AX,Z CWD ADD CX,AX ADC BX,DX SUB CX,540 SBB BX,0 MOV AX,W CWD SUB AX,CX SBB DX,BX IDIV X MOV AH,4CH
INT 21H CODE ENDS
END START
2.可以在 Debug 程序中使用 E 命令为变量 X、Y、Z、W 设置初值。 3.使用 A 命令汇编程序片段,并用 G 或 T 命令执行,用 R 或 D 命令查看结 果。
4.使用 A 命令汇编几条逻辑指令,并运行,查看结果。 5.写出实验报告。
2.上机时,要熟悉与实验有关的系统软件(如编辑程序、汇编程序、连接程 序、调试程序)的使用方法;在程序调试过程中,有意识的学习及掌握 Debug 的各种操作命令,以便掌握程序的调试方法及技巧;程序调试完后,须由实验辅 导教师在机器上检查运行结果。
3.上机后,应写出实验报告,及时总结。 4.遵守实验室的规章制度,爱护实验设备。
2.编辑、汇编、连接这个汇编语言源程序,形成.EXE 文件。
3.通过 DEBUG 调试运行该可执行文件,查看运行结果。
实验主要步骤:
1.根据要求编制汇编源程序。 参考程序如下:
DATA SEGMENT STRINGl DB ‘Move the cursor backward.’ STRING2 DB ‘Move the cursor backward.’ MESSl DB ‘Match.’,13,10,‘$’ MESS2 DB ‘NO Match!’,13,10,‘$’
4.也可以使用 Debug 调试运行这个.EXE 文件,并查看运行结果。对实验内 容修改两个字符串的内容,使它们互不相同,再观察程序的运行结果。
5.写出实验报告。
实验四、循环程序设计
实验目的:
1.加深对循环程序的理解。
2.能构造出正确的循环结构并能实现较复杂的算法。
实验内容:
1.编制程序,要求如下:从键盘接收一个四位的 16 进制数,在终端上显示
环境,熟悉 Debug 各个命令的用法。
2. 实验步骤
(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
CMP AL,46H ;>F 吗?
JA INPUT ;不是"A~F"的数重新输入
AND AL,0FH ;转换为 1010B~1111B
ADD AL,9
BINARY: OR BL,AL ;将键盘输入的数进行组合
DEC CH JNZ INPUT MOV CX,16 ;将 16 位二进制数一位位地转换成 ASCII 码显示 DISP: MOV DL,0 ROL BX,1 RCL DL,1 OR DL,30H MOV AH,2 ;进行显示 INT 21H LOOP DISP STOP: RET
相关文档
最新文档