资源描述
微机原理与汇编语言
实 验 指 导 书
东北林业大学信息与计算机工程学院
计算机科学与技术专业
目 录
1实验的机器与环境………………………………………………………… 1
1.1 计算机的硬件配置……………………………………………………………… 1
1.2 计算机的软件配置……………………………………………………………… 1
2 汇编语言的上机过程………………………………………………………… 1
2.1建立汇编语言的工作环境………………………………………………… 1
2.2建立源文件…………………………………………………………………… 1
2.3产生目标文件………………………………………………………………… 2
2.4产生可执行文件……………………………………………………………… 2
2.5执行程序……………………………………………………………………… 3
3 实验时数……………………………………………………………………………3
4 实验内容和要求……………………………………………………………………3
实验一 基本训练…………………………………………………………………3
实验二 复杂程序设计………………………………………………………………3
实验三 BIOS中断调用…………………………………………………………4
实验四 DOS功能调用……………………………………………………………5
实验五 打印机实验…………………………………………………………………5
实验六 串行口实验…………………………………………………………………6
1 实验的机器与环境
1.1 计算机的硬件配置
PC系列微机,包括286、386、486、奔腾及各种兼容机,要求内存为64M以上,一个硬盘驱动器和一个软盘驱动器。80列字符监视器。配备鼠标器。
1.2 计算机的软件配置
DOS6.22或Windows 98、Windows xp、Windows 2000。
汇编程序文件ASM.EXE、MASM.EXE、LINK.EXE、DEBUG.COM 等。
2 汇编语言的上机过程
2.1 建立汇编语言的工作环境
运行汇编程序时,磁盘上应该有以下文件:
ASM.EXE
MASM.EXE
LINK.EXE
DEBUG.COM 或
TASM.EXE
TLINK.EXE
TD.EXE
后三个程序在BORLANDC下
2.2 建立源文件
调用任何一个文本编辑软件,比如EDIT或者记事本,按汇编语言的格式写好文件,存盘时注意后缀名应该是.asm,这样就建立了ASM文件,也就是汇编语言程序的源文件。
存盘:文件路径名——盘符:\ ~ \ ……文件名.扩展名
必须有扩展名,必须用ASM。
2.3 产生目标文件
ASM文件建立以后,需要用汇编程序(masm.exe)进行汇编,汇编后产生的就是目标文件(OBJ文件)。操作与汇编程序回答如下:
C>masm test 或:
汇编:MASM.EXE
①source file name : [.ASM]文件名
②objective file name : [AA.obj]
③LIST file name : [nul.LST]
要不要列表文件:要就输入文件名,不要就回车。列表文件同时列出源程序和机器语言程序清单,并给出符号表,可使程序调试更方便。
例如,列表文件:
指令对应的二进制代码: 指令:
3EH 05H MOV AL ,05H
…… ……
④cross reference name : [nul.CRF] 交叉参考文件:交叉引用表给出了用户定义的所有符号,对每个符号列出了其定义所在行号及引用的符号,为大程序修改提供方便。
语法错误:汇编语言只能检查语法错误,不能检查逻辑错误。
格式:AA.ASM(8):……
如果出错,返回编辑以修改。
如果没有出错,计算机出现:0 warning errors
0 severe errors
2.4 产生可执行文件
由于OBJ文件不可执行,所以需要使用连接(LINK)程序将它转换为可执行的EXE文件或者进一步通过EXE2BIN命令转换为COM文件。
EXE和COM文件都是可执行文件,但是COM没有EXE文件所具有的包括有关文件信息的标题区,所以占用的空间比EXE文件小。COM文件不允许超过64K,不允许分段,所以只能编制较小的程序。
链接:LINK.EXE
将目标文件变成EXE文件。
①objective file name : [.obj]文件名
② name : [AA.EXE]
③ name : [nul.map]
退出后显示: warning : no stack sequent
链接目的:它将代码段中所有程序进行重定位
2.5 执行程序
EXE和COM文件已经产生,直接运行程序就可以了。
执行:AA.EXE
3 实验时数
总实验时数16学时。
4 实验内容和要求
实验一 基本训练
目的:学习程序设计的基本方法和技能,熟练掌握用汇编语言设计、编写、调试和运行程序的方法;掌握与运用伪操作指令和汇编语言程序的标准框架。
内容:显示字符 ’Hello’
基本要求:
(1)熟悉所用的计算机系统的基本操作方法,学会独立使用该系统;
(2)掌握编辑、编译、连接和运行一个汇编语言设计的基本方法。
(2)用汇编语言程序的标准框架完成本程序设计。
实验二 复杂程序设计
目的:掌握汇编语言循环程序、分支程序和子程序设计的基本方法和技能。
基本要求:用循环结构、分支结构和子程序结构设计下列程序,完成程序的调试、运行。
内容1:显示十进制数1,2,3,4
内容2:显示一个十六进制数(XXH)
内容3:显示1A2BH, 3C4DH,5E6F
内容4:求n!,并以十六进制数形式显示此数
内容5:求1+2+3+……n的和,并以16进制数形式显示此数
内容6:以T为首地址定义10个带符号数(补码),将负数去掉,正数按原序排列,并显示正数。
内容7:定义十个字节数,按升序排列,分两行显示排序前后的结果。(将最小数放入高地址。)
要求:用子程序结构设计程序。
内容8:建立学生名次表rank
要求:用两重循环结构设计程序。以garde为首地址的30个字的数组中保存了一个班学生的成绩,其中grade+i保存学号为i+1的学生成绩。建立一个30个字的rank数组,并根据grade中的学生成绩将学生名次填入rank数组中,其中rank+i的内容是学号为i+1的学生名次。
内容9:统计学生成绩result
要求:用分支和循环结构设计程序。设有30个学生的成绩,分别统计低于60分、60~69分、70~79分、80~89分、90~99分及100分的人数,并存放到s5、s6、s7、s8、s9及s10单元中。
内容10:显示学生名次表rank
要求:用子程序结构和循环结构设计程序。接收从键盘输入的一个班的学生成绩并存放于30个字的garde数组中,其中grade+i保存学号为i+1的学生成绩。将学生名次填入30个字的rank数组中,其中rank+i的内容是学号为i+1的学生名次。再按学号顺序把名次从终端上显示出来。
实验三 BIOS中断调用
目的:从应用角度,熟悉和掌握BIOS中断调用。
内容1:BIOS键盘中断
基本要求:利用INT 16H调用键盘I/O例行程序,设计一个键盘中断程序。
内容2:BIOS显示中断
基本要求:利用INT 16H,设计程序在屏幕中心的小窗口显示字符。
实验四 DOS功能调用
目的:从应用角度,熟悉和掌握DOS功能调用。
内容1:DOS键盘功能调用
基本要求:利用INT 21H DOS键盘操作,设计一个键盘中断程序。
内容2:DOS显示功能调用
基本要求:利用INT 21H显示操作,设计程序在屏幕中心的小窗口显示字符串。
实验五 打印机实验
目的:从应用角度,熟悉和掌握DOS功能调用。
内容:打印驱动程序设计
基本要求:分别用下列三种方式完成打印驱动程序设计、调试和运行。
(1) 直接设计
(2) 利用BIOS INT 17H设计
(3) 利用DOS INT 21H 设计
打印适配器内部结构:
(1)数据寄存器,378H,IN / OUT(可读写),专门装待打数据。
(2)控制寄存器,37AH,IN / OUT(可读写),控制数据。
0
0
0
EI
SL
INI
AF
ST
默认为0CH或08H
EI: 允许中断,EI=1
禁止中断,EI=0(默认)
SL: 联机,SL=1(默认)
不联机,SL=0
INI:初始化 1 1
0 50μs 脉冲位
AF: 自动走纸,AF=1
手动走纸,AF=0(默认)
ST: 启动打印,ST=1
不启动打印,ST=0(默认)
(3)状态寄存器,379H,IN,反映打印机状态数据
BUSY
ACK
PE
SLC
ERROR
X
X
X
1 1
ACK:应打
0 打印机打完了,自动为0,接在IRQ7上,中断系统。
PE:缺纸信号 有纸,PE=0 SLC: 联机正常,SLC=1
缺纸,PE=1 脱机,SLC=0
ERROR: 超时错,ERROR=0 BUSY: 不忙,BUSY=1
无超时错,ERROR=1 忙,BUSY=0
正在打印 不正在打印
“忙” PE “不忙” 不缺纸 正处于良好状态
脱机 不脱机
超时 没有超时
实验六 串行口实验
目的:从应用角度,熟悉和掌握DOS功能调用。
内容:异步串行通讯
基本要求:一方键入字符,另一方显示。
异步串行通讯控制器8250:
①接收数据寄存器口地址:IN,3F8H。串 并。
②发送数据寄存器口地址:OUT,3F8H。并 串。
③波特率除数寄存器
LSB,低八位,IN / OUT,3F8H
MSB,高八位,IN / OUT,3F9H
除数=1843200÷(波特率×16)
④中断允许寄存器,IN / OUT,3F9H
0
0
0
0
1
1
1
1
modem改变
线路状态错
发送数据寄存器空
接受数据寄存器满
⑤中断识别寄存器,IN,3FAH
X
X
X
X
X
优先级
modem改变 0 0 1 有中断
接受数据寄存器满 0 1 0 无中断
发送数据寄存器空 1 0
线路状态错 1 1
⑥线路控制寄存器,IN / OUT,3FBH
0
0
寻址位:当寻址位为0时(默认),3F8H归接收、发送寄存器使用,3F9H归中断允许寄存器使用;当寻址位为1时,波特率寄存器控制3F8H、3F9H。
0 0 5
奇校验是0,偶校验是1: 0 1 6
1XH 偶校验 1 0 7
0XH 奇校验 1 1 8
无奇偶校验位是0,有奇偶校验位是1
⑦工作方式寄存器,IN / OUT,3FCH
0
0
0
D4
OUT2
0
1
1
D4 (双机)正常工作,D4=0
自测试,自发自收,D4=1
OUT2 查询(不允许中断),OUT2=0
中断,OUT2=1
⑧线路状态寄存器,IN,3FDH
X
X
1
1
1
1
1
1
发送数据寄存器空
线断
停止位错
奇偶错
超时错
接收数据寄存器满
展开阅读全文