微机原理及接口技术实验指导书(TPC-ZK-II认证)20151026 - 图文

更新时间:2024-06-06 17:48:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

微机原理及接口技术

实验指导书

(2012版)

《微机原理及接口技术》课程教学团队 编

2015年4月

目录

概述/前言/课程介绍 .................................................................................... 1 基本要求与注意事项 .................................................................................. 2

一、安全操作守则 ......................................................................................... 2 二、预习要求 ................................................................................................. 2 三、出勤要求 ................................................................................................. 3

第一部分 实验系统操作指导 .................................................................... 4

1 仪器设备介绍 ............................................................................................. 4 2 仪器设备使用方法 ..................................................................................... 5

2.1 实验箱结构 ........................................................................................................... 5

3 实验系统软件介绍 ..................................................................................... 8

3.1 程序的编辑和编译 ............................................................................................... 8 3.2 程序的调试和运行 ............................................................................................. 11

第二部分微机原理及接口技术实验指导 ................................................ 14

实验一 字符串排序 ................................................................................... 14

一、实验目的 ............................................................................................................ 14 二、实验内容 ............................................................................................................ 14 三、实验设备 ............................................................................................................ 15 四、预习要求 ............................................................................................................ 16 五、实验原理 ............................................................................................................ 16 六、实验步骤 ............................................................................................................ 24 七、注意事项 ............................................................................................................ 25 八、实验报告要求 .................................................................................................... 25 九、课后思考题 ........................................................................................................ 25

I

微机原理与接口技术实验指导书

十、参考资料 ............................................................................................................ 26

实验二 四位BCD码相加 .......................................................................... 27

一、实验目的 ............................................................................................................ 27 二、实验内容 ............................................................................................................ 27 三、实验设备 ............................................................................................................ 29 四、预习要求 ............................................................................................................ 29 五、实验原理 ............................................................................................................ 29 六、实验步骤 ............................................................................................................ 34 七、注意事项 ............................................................................................................ 34 八、实验报告要求 .................................................................................................... 34 九、课后思考题 ........................................................................................................ 35 十、参考资料 ............................................................................................................ 35

实验三 七段数码显示 ................................................................................. 36

一、实验目的 ............................................................................................................ 36 二、实验内容 ............................................................................................................ 36 三、实验设备 ............................................................................................................ 36 四、预习要求 ............................................................................................................ 36 五、实验原理 ............................................................................................................ 37 六、实验步骤 ............................................................................................................ 42 七、注意事项 ............................................................................................................ 42 八、实验报告要求 .................................................................................................... 43 九、课后思考题 ........................................................................................................ 44 十、参考资料 ............................................................................................................ 44

实验四 数/模转换 ........................................................................................ 45

一、实验目的 ............................................................................................................ 45 二、实验内容 ............................................................................................................ 45 三、实验设备 ............................................................................................................ 47 四、预习要求 ............................................................................................................ 47

II

五、实验原理 ............................................................................................................ 48 六、实验步骤 ............................................................................................................ 58 七、注意事项 ............................................................................................................ 58 八、实验报告要求 .................................................................................................... 59 九、课后思考题 ........................................................................................................ 59 十、参考资料 ............................................................................................................ 59

实验五 模数转换 ......................................................................................... 60

一、实验目的 ............................................................................................................ 60 二、实验内容 ............................................................................................................ 60 三、实验设备 ............................................................................................................ 61 四、预习要求 ............................................................................................................ 61 五、实验原理 ............................................................................................................ 62 六、实验步骤 ............................................................................................................ 76 七、注意事项 ............................................................................................................ 77 八、实验报告要求 .................................................................................................... 77 九、课后思考题 ........................................................................................................ 78 十、参考资料 ............................................................................................................ 78

附件1 预习报告模板 ............................................................................. 78 附件2 实验报告模板 ............................................................................. 78

III

概述/前言/课程介绍

《微机原理及接口技术实验》是电、计算机、控制等工科专业教育中的一门核心专业基础实验课,本实验由微机原理部分及接口部分组成,微机原理部分以微机指令系统,汇编程序设计为主要内容,程序设计面向16位/32位系统指今,接口部分面向3种常用的微机接口芯片8255、0832、0809开展实验,要求学生自行设计硬件电路,编程面向16位地址/数据系统,实现对接口芯片的控制并完成具体的实验要求。

本实验课共20学时,包括5个实验单元,分别是:字符串排序实验(4学时)、两个4位BCD码相加(4学时)、七段数码管动态显示(4学时)、数模转换实验(4学时)、模数转换实验(4学时)。

学生通过实验学习,掌握微机组成原理和工作过程,软件设计及应用,建立微机工作的整体概念。使学生在了解基本的微机应用系统基础上,具有进行软件和硬件开发的基本能力。

通过本实验课程的学习,学生能够通过5个软硬件结合的实验项目直观了解微型计算机的基本工作原理,掌握8086汇编语言常用指令的使用及编程方法,加深对微机中的各种控制接口技术的认识,掌握常用接口芯片的编程方式,熟练运用汇编语言编程控制接口与外设进行数据通讯;能够基于科学原理,根据工程需求分析,设计软硬件解决方案,并完成软件设计与硬件电路设计;能够通过软硬件实验训练,发现工程实践中出现的问题并解决问题,具备现场故障诊断维修的基本工程师素养。

本实验课能够培养学生融合所学的电路电子技术、工程基础和专业知识的基本概念,软硬件结合设计实验方案,解决实际工程问题,提高学生的实际操作能力和综合设计能力。

1

微机原理与接口技术实验指导书

基本要求与注意事项

一、安全操作守则

1. 首次进入实验室参加实验的学生应认真听取实验指导教师对于安全内容的介绍。 2. 实验室总电源由指导教师负责,学生不得擅自接触。

3. 实验过程中需妥善保管好水杯、饮料瓶等容器,不许放置在实验操作台上,以防造成短路。

4. 学生进行实验时,独立完成的实验线路连接或改接,须经指导教师检查无误并提醒注意事项后,方可接通电源。

5. 严禁带电接线、拆线、接触带电裸露部位及电机旋转部件。

6. 各种仪表、设备在使用前应先确认其所在电路的额定工作状态,选择合理的量程。若认为仪表、设备存在问题或发生故障,应报告指导教师,不得自行排除故障。

7. 实验中发生故障时,必须立即切断电源并保护现场,同时报告指导教师。待查明原因并排除故障后,才可继续进行实验。

8. 实验室内禁止打闹、大声喧哗、乱扔废物以及其它不文明行为。 9. 实验开始后,学生不得远离实验装置或做与实验无关的事。

10. 实验完毕后应首先切断电源,再经指导教师检查实验数据后方可拆除实验线路,并将实验仪表、用线摆放整齐。

11.实验过程中如发生事故,应立即关断电源,保持现场,报告指导老师。若不按要求操作,损坏了实验设备,根据损坏情况赔偿。

12. 因计算机内装有防病毒卡,文件只能存在非系统盘,最好存在U盘内,切忌存在桌面上,否则关机即消失。

13. 未经老师许可,严禁向实验室计算机内安装任何软件。

二、预习要求

上实验课前,要求仔细认真阅读实验指导书,完成本次实验相关的测验,准备本次实验的相关程序,撰写实验预习报告(包括原理分析、方案设计、程序流程图、硬件原

2

理图,预习过程中遇到的问题),上述预习工作完成后经实验课老师检查通过后才能够进入实验室进行实际操作。

三、出勤要求

本实验课共20学时,5次实验课。学生必须准时参加每一次实验课,不得无故缺席,如有特殊情况必须准备书面假条,由辅导员签字后与实验开始前交给实验老师,之后找实验老师协调补课时间。

实验课迟到10分钟以上不得进入实验室,实验完成后必须经实验老师检查确认后方可离开实验室,以上情况无正当理由均按照无故缺席实验课处理。

未请假无故缺席一次实验,当次成绩为零,无故缺席3次不能参加期末考试。

3

微机原理与接口技术实验指导书

第一部分 实验系统操作指导

1 仪器设备介绍

TPC-ZK-II实验箱,《微机原理及接口技术实验》用到的主要实验设备包括计算机、TPC-ZK-II集成开发环境,实验系统组成如图1.1所示,实验系统依托PC主机CPU微处理器,主机与实验系统用USB通线相连,通过USB口通信完成微机接口硬件实验;实验系统配有集成软件,具有编辑、编译、链接、运行及调试功能;实验系统自备电源,具有电源短路保护确保系统安全;实验时采用自锁紧单股导线及排线。

TPC-ZK-II 实验箱

USB图1.1 《微机原理及接口技术实验》设备组成

1.1 TPC-ZI-II实验箱系统硬件

实验箱硬件布局示意图如图1.2所示

图1.2 TPC-ZK-II实验箱

4

微机原理与接口技术实验指导书

当前运行环境下,选择菜单栏中的―编辑‖菜单,菜单下拉后选择―粘贴‖,或是在工具栏中单击―粘贴‖,即可将剪贴板中当前内容粘贴到文档显示区域光标所在处。

全选

当前运行环境下,选择菜单栏中的―编辑‖菜单,菜单下拉后选择―全选‖,即可将文档区域中所有内容选中。

查找

当前运行环境下,选择菜单栏中的“编辑”菜单,菜单下拉后选择“查找”,弹出查找对话框,在

查找内容一栏中输入需要查找的内容,可选择―全字匹配‖与―区分大小写‖的查找方式,单击查找下一个程序则在文档显示区域中搜索与查找内容匹配的字符串,找到第一个后则高亮显示,点击查找下一个则继续搜索下一个匹配字符串,点击―取消‖退出查找操作。

查找下一个

当前运行环境下,选择菜单栏中的―编辑‖菜单,菜单下拉后选择―替换‖,即可在当前文档显示区域查找下一个查找对话框中输入的字符串,找到后高亮显示。

替换

当前运行环境下,选择菜单栏中的“编辑”菜单,菜单下拉后选择“替换”,弹出替换对话框,在

查找内容一栏中输入需要查找的内容,可选择―全字匹配‖与―区分大小写‖的查找方式,在替换为一栏中输入需要替换的内容,单击―查找下一个‖程序则在文档显示区域中搜索与查找内容匹配的字符串,找到第一个后则高亮显示,单击―替换‖将匹配的字符串替换,也可单击―全部替换‖将当前文档显示区域中所有与查找内容匹配的字符串全部替换。单击―查找下一个‖则继续搜索下一个匹配字符串。也可单击―取消‖退出查找操作。

4)保存源程序

当前运行环境下,选择菜单栏中的―文件‖菜单,菜单下拉后选择―保存‖,如果是无标题文档,需在提示下输入文档的名称及选择保存的路径,单击确定后保存;否则程序自动保存当前文档显示区域中显示的文档。或者选择菜单栏中的―文件‖菜单,菜单下拉后选择―另存为‖,并在提示下输入文档的名称及选择保存的路径,单击确定后保存。

5)编译源程序 编译调试窗口

在当前运行环境下,选择菜单栏中的―查看‖菜单,单击编译调试窗口选项或是单击工具栏中―显示/隐藏编译调试窗口‖按钮则可对状态栏的显示进行操作。若当前环境显示

10

编译调试窗口,则单击编译调试窗口选项即可隐藏该窗口,编译调试窗口选项前选中标记将消失;若当前隐藏编译调试窗口,则单击编译调试窗口选项即可显示该窗口,编译调试窗口选项前选中标记将显示。

ASM编译 汇编

在ASM运行环境下,选择菜单栏中的―ASM编译‖菜单,选择汇编选项则程序对当前ASM源文件进行汇编,编译调试窗口中输出汇编结果,若程序有错,则详细报告错误信息。

汇编+链接

在当前运行环境下,选择菜单栏中的―ASM编译‖菜单,选择汇编+链接选项则程序对当前ASM源文件进行汇编与链接,编译调试窗口中输出汇编与链接的结果,若程序汇编或链接有错,则详细报告错误信息。

汇编+链接+运行

在当前运行环境下,选择菜单栏中的―ASM编译‖菜单,选择汇编+链接+运行选项则程序对当前ASM源文件进行汇编与链接,编译调试窗口中输出汇编与链接的结果,若程序汇编或链接有错,则详细报告错误信息。若汇编与链接成功,程序自动运行。 3.2 程序的调试和运行

1)ASM程序的调试 寄存器窗口

在当前运行环境下,选择工作区的―寄存器‖菜单,寄存器窗口即可显示。寄存器窗口中显示主要的寄存器名称及其在当前程序中的对应值,若值为红色,即表示当前寄存器的值。调试时,单步执行,寄存器会随每次单步运行改变其输出值,同样以红色显示。

开始调试

程序的编译和链接成功之后,调试工具将会显示,也可以在“项目”中选择“开始/结束调试”,即可开始进行程序的调试。编译选项选择如图:

11

微机原理与接口技术实验指导书

图1.11 TPC-ZK-II程序调试状态界面

在ASM程序正常链接之后,选择菜单栏中的“开始/结束调试”菜单,选择开始调试选项,则对源程序进行反汇编,进入ASM的调试状态,并在寄存器窗口中显示主要的寄存器的当前值。

设置/清除断点

在ASM的调试状态下,对程序代码所在某一行前的灰色列条单击鼠标,即对此行前设置了断点,如果清楚断点,只需要再在此行前的灰色列条上的断点单击鼠标,此断点标记将被清除。黄色箭头所指的行为当前单步执行到的所在行。

连续运行

在ASM的调试状态下,选择“项目”菜单栏中的“连续运行”菜单或F5,则程序连续运行,直至碰到断点或程序运行结束。

单步

在ASM的调试状态下,选择“项目”菜单栏中的―单步执行‖菜单或F1,则程序往后运行一条语句。

退出调试

在ASM的调试状态下,选择“项目”菜单栏中的―开始/结束调试‖菜单,程序则退出ASM的调试状态。

命令调试

集成开发环境可以进行命令的调试,如图:

12

图1.12 TPC-ZK-II命令调试

调试时,输出窗口可以输出编译信息、命令信息、内存查看信息、栈查看信息等。

13

微机原理与接口技术实验指导书

第二部分微机原理及接口技术实验指导

实验一 字符串排序

一、实验目的

1.通过实验,帮助学生梳理汇总复习《微机原理及接口技术》原理部分所学的所有知识和理论,理解8086CPU的基本结构和组成原理,逐条实践所学的8086汇编语言的每一条常用指令,在简单操作中发现问题、解决问题、加深理解、加强记忆。

2. 通过实验,复习理解系统功能调用(DOS功能调用)的各种常见调用指令的用法和特点。学习掌握设置数据段存放较多的数据,采用 INT 21H 进行单个字符的输入、字符串的显示方法,掌握排序的算法原理和两重循环汇编程序的编写,熟悉8086汇编语言中与排序相关的指令使用方法、使用注意事项。

3. 通过实验,学习掌握TPC-ZK-II集成开发环境下汇编语言的编写、编译、链接及运行方法。

4. 通过实验,掌握windows自带的动态调试工具软件debug/exe的使用方法。 5. 通过实验,加深对ASCII码的认识理解,掌握计算机连接的外部设备输入字符和输出显示的字符和计算机内寄存器、存储单元存储的二进制/十六进制数据之间的对应关系。

5、第一次实验使学生完成从8086汇编语言的理论学习到实际编程操作的训练,培养学生学习使用新的编程语言和编程环境的能力,培养学生对软件需求进行分析,设计软件流程,自主编写程序解决问题的能力。 二、实验内容

1.熟悉TPC-ZK-II集成开发环境下如何新建一个汇编语言源程序(.asm文件),如何在该环境下对源程序进行编译、链接、运行、调试,能够发现程序中的语法错误,能够对应错误和警告修改源程序。

2.利用DOS功能调用的INT 21H的1号功能(从键盘每次输入单个字符到寄存器或内存单元,并在屏幕上显示出来)从键盘输入任意长度的字符串,遇到输入回车符则输入结束;

3.将从键盘输入的字符串依次存放在数据段中;

14

4.利用冒泡法,对输入的字符串按字符对应的ASCII码的大小从小到大排序(即ASCII码小的字符占低地址存放);

5.将排好顺序的字符串利用DOS功能调用的INT 21H的9号功能(字符串输出显示功能)显示在微机屏幕上。(注意INT 21H的9号功能使用时必须以?$‘作为判断字符串输出完毕的结束标志);

6.运用windows自带的动态调试工具软件debug/exe对编译通过的可执行文件(.exe文件)进行调试,寻找程序中的问题。学会使用查看寄存器-r,单步运行-t,单步运行-p,查看内存单元的值-d,退出调试-q,连续运行-g,反汇编-u,小汇编-a等常用debug指令。 三、实验设备

1. 计算机 (Windows 2000以上32位操作系统,内存1G以上)

图2.1.1 实验用计算机性能参数

2. TPC-ZK-II集成开发环境

TPC-ZK-II集成开发环境是TPC-ZK-II实验系统配套的软件,提供了程序的编辑和编译,调试和运行,实验项目的查看和演示,实验项目的添加等功能。本软件基于windows环境。

15

微机原理与接口技术实验指导书

图2.1.2 TPC-ZK-II集成开发环境运行界面

四、预习要求

1. 复习《微机原理及接口技术》原理部分所学全部内容,掌握8086汇编语言常用指令的使用方法和使用注意事项,包括如何设置数据段存放输入的字符,寄存器间接寻址的概念与偏移地址指针的用法,比较和条件转移指令。

2. 编写本次实验的程序流程图。 3. 预习思考题 1)下面指令是否正确

MOV [SI] , AL; MOV [SI] , 12H; MOV AL , 12H ; MOV DS , 1002H

2)分别用DOS功能调用的INT 21H的2号功能和9号功能,编程实现在计算机屏幕上输出显示字符串―Welcome to TPC!‖。

3)在数据段中存放字符串“ASM2015”,将该字符串按ASCII码从大到小排序后输出显示。

4、按附件一格式要求撰写预习实验报告,内容包括本次实验的实验目的、程序流程图及预习思考题,在实验课前交给实验老师审查通过后方可进入实验室进行实际操作。 五、实验原理

1. 8086CPU的基本结构和组成原理

16

2.1.3 8086CPU内部结构图

8086 CPU内部分为两部分: EU(Execution Unit)指令执行部件 BIU(Bus Interface Unit)总线接口部件

BIU负责输出控制信号、取指令代码放入指令队列(相当于IR),与存储器和外部设备联系。

EU负责译码(相当于ID)、执行指令

BIU和EU可同时工作,对EU来说只需对指令队列中的代码进行译码、执行,与过去的CPU比,省去了取指令代码的时间,加快了CPU执行指令的速度。

8086CPU的内部寄存器:

4个16位的通用寄存器AX、BX、CX、DX 通用:存数据,运算等用

每个16位的寄存器又可根据需要分成8位使用,如AX为16位,AH和AL为其高8位和低8位。H即High,L即Low

例:MOV AX,32 ;按16位使用,32=0020H,AH=00H,AL=20H MOV AH,32 MOV AL,32

;仅使用AX的高8位AH=20H ;仅使用AX的低8位AL=20H

4个16位的地址指针寄存器SI、DI、BP、SP

17

微机原理与接口技术实验指导书

8086CPU有20位地址A19-A0,地址指针寄存器负责输出20位存储器地址的低16位。低16位地址称为偏移地址。

一个16位的指令指针寄存器IP

输出代码段(存储程序二进制代码位置)的20位地址的低16位,相当于程序计数器PC。

4个16位的段寄存器CS、DS、ES、SS CS(Code Segment)码段寄存器 DS(Data Segment)数据段寄存器 ES(Extra Segment)附加段寄存器 SS(Stack Segment)堆栈段寄存器 2 本实验用到的指令 A)数据传送指令 MOV dst, src

;source->desttnation

图2.1.4 MOV指令执行过程示意图

B)交换指令 XCHG OP1,OP2

;OP1与OP2互换位置

C)取M的有效地址(即偏移地址)指令 LEA R16,MEM

;MEM的EA送入寄存器R

MOV R16,OFFSET MEM D)加1指令 INC

R/M

;R=R+1 或 M=M+1

18

例: MOV AL,0FFH

INC AL

; ;

DEC AL 例:INC

[BX]

E)减1指令 DEC R/M F)比较指令 CMP src, dst

;src – dst → FR

; R = R -1 或 M = M – 1

比较就是相减,但结果不破坏两个操作数,只是影响标志寄存器FR G) 条件转移指令J* ADDRESS

*代表转移的条件,满足条件则转移,不满足条件则顺序向下执行。可用流程图来表示:

图2.1.5 条件转移指令执行过程示意图

H)INT 21H

INT 21H是一个操作系统提供的子程序,它能完成很多功能,其功能号要求放在AH寄存器中。

1号功能调用

19

微机原理与接口技术实验指导书

MOV AH,1

INT 21H ;从键盘输入单个字符,存在AL中,并在计算机屏幕

上显示。

9号功能调用

9号功能是显示一个字符串(非单个字符),在调用INT 21H显示前要求: 将字符串的首地址放在DS:DX中 字符串的结束符为‘$‘,‘$‘不显示。 将功能号放入AH中。

MOV AH,9

MOV DX,OFFSET (string) INT 21H ;

3.8086汇编语言程序结构

汇编语言源程序:由指令助记符+伪指令组成 源程序 → 可执行程序 指令助记符:前面讲的各种指令

伪指令:告诉编译和连接软件如何编译和连接。 1)汇编语言程序由指令和伪指令组成。 2)汇编语言程序由段组成。 堆栈段---伪指令设置

STACK SEGMENT STACK

DW 100 DUP(?)

STACK ENDS

以上三行为在内存中留出一块空间作为堆栈段用,这块空间起个段名为STACK,

汇编语言程序中段必须有段名,以便称呼,段名可以任取。这块堆栈段的空间大小是200个字节。DW是按字WORD留出位置,一个字为2个字节。100 DUP(?)为留出100个位置,DUP为重复的,(?)表示留出位置。

SP的初值为执行PUSH R/M指令可按字将数据存入到堆栈段中。未存入数据时,200,存入一个字数据后,SP的值自动减2,不断存入数据,SP就不断减2,直至减为0时,此堆栈段最多可存入100个字数据。

20

数据段---伪指令设置(定义) DATA

SEGMENT

DB ?HELLO!‘,‘$‘

X

DATA ENDS

以上三行为在内存中留出一块空间作为数据段用,这块空间起个段名为DATA。这块数据段用示意图可表示为:

数据段中DB表示以字节为单位留出位置,其中放置字符串‘HELLO!‘和‘$‘。 可见,该数据段的大小占7个字节,数据段中第1个地址名称为X。

X为变量名,在汇编语言程序中,变量名是存储器的偏移地址,此处,X相对于本段起始位置的偏移量为0。变量X的值,即其中存储的内容为字符‘H‘,计算机中字符以ASCII码形式存放,‘H‘存放的是0100 1000B。

图2.1.6 数据在数据段里的存放方式

码段(用于放置用户编写的指令)

CODE

SEGMENT 。。。 ENDS

ASSUME CS:CODE,DS:DATA,SS:STACK

CODE

码段中内容

是一条伪指令,它的作用是告诉汇编工具软件名为CODE的段由段寄存器CS寻址,名为DATA的段由段寄存器DS寻址,名为STACK的段由段寄存器SS寻址。

CODE段由CS寻址,即由CS给出段地址,也即名为CODE的段是码段。同理,名为DATA的段是数据段,名为STACK的段是堆栈段。

一个码段中可以放置多段程序,每段程序又称为一个过程。一个过程的书写格式为:

21

微机原理与接口技术实验指导书

过程名

PROC NEAR/FAR

。。。

ENDP

过程名

3)程序段前缀

源程序被编译连接后生成一个可执行程序(*. EXE)存放在磁盘上,当执行该可执行程序时,操作系统将该可执行程序从磁盘上调入内存。磁盘为外存,用于存放程序,内存是半导体存储器,速度快,用于执行程序,程序都是在内存中执行的。

当可执行程序被调入内存时,操作系统为其分配地址,同时在可执行程序的最先面加上一个256字节的程序段前缀PSP。假设程序在内存的放置如下图所示。

图2.1.7 程序在内存的存放方式

假设操作系统将PSP放在1234H:0开始的地址中,操作系统就使DS=1234H;假设堆栈段被放在从2234H:0至2234H:200中,就使SS=2234H,SP=200(堆栈从下向上堆着存放);假设码段中指令的二进制代码被放在从4234H:0开始的地址中,就使CS=4234H,IP=0,该地址开始的内存中放的是

PUSH DS

指令的二进制代码。

程序执行从当前CS和IP所给地址开始执行,即将1234H和0000H入栈保存。堆

22

栈中存储内容如下图所示。

图2.1.8 程序执行过程对堆栈段的操作

4.实验编程提示 1)冒泡算法

图2.1.9 冒泡算法原理图

2)编程提示

A) 定义数据段用于存放输入的字符

DATA STR

SEGMENT

DB 100 DUP(‘$‘) ENDS

;最多可存放100字符

DATA

;超过100个就会出数据段,冲掉码段

;输入的字符会复盖‘$‘

B)输入字符及计算字符个数

MOV SI,OFFSET STR

23

;存放的首地址偏移量

微机原理与接口技术实验指导书

NEXT: MOV AH,1

INT 21H MOV [SI],AL INC SI

;存入数据段 ;指向下一个地址 ;是回车键吗? ;不是,继续输入 ;SI=输入字符个数

;AL=输入字符

CMP AL,0DH JNE NEXT ;

*回车是否参与排序,按从大到小还是从小到大都影响输出结果。 5.程序参考流程图

图2.1.10 字符串排序程序参考流程图

六、实验步骤

1. 打开运行TPC-ZK-II集成开发环境(注意事项7.1);

2. 建立新的.asm空白文件,将编写好的程序拷贝到空白文件内,或者直接在TPC-ZK-II集成开发环境运行界面下打开已编写好并且保存的汇编语言源程序文件,保存该文件(注意事项7.2);

3. 对程序进行编译、连接、运行。从键盘输入一定长度的字符串,最后按回车结束输入并开始排序(注意事项7.3);

24

4. 若排序结果显示正确,则保存实验程序和实验结果截屏,让老师检查,回答老师提出的关于实验的相关问题,通过后关闭电脑即可离开实验室;

5. 若排序结果显示不正确,则需要打开动态调试工具软件debug/exe软件对源程序生成的可执行文件.exe进行调试,查错改错。 七、注意事项

1. 计算机必须连接实验箱后,才能够在TPC-ZK-II集成开发环境中完成编译连接运行整个过程。没有连接实验箱的计算机TPC-ZK-II集成开发环境中只能对程序进行编译连接,运行时会报错。需要按照下面方法运行程序:

计算机任务栏左侧开始-运行-输入cmd-打开command窗口,指明之前保存源程序文件的文件夹路径,输入可执行文件名,回车即可运行可执行文件查看实验结果是否正确。

2. 因为公共实验室的计算机都装有防病毒卡,所以请将程序保存在非系统盘内,否则计算机意外关机或重启后所作的工作都将丢失。

3. DOS功能调用INT 21H的9号功能调用使用时一定要注意字符串必须以?$‘结束,否则会不断输出显示,造成计算机或开发环境软件崩溃。 八、实验报告要求

实验报告中应包括以下内容: 1. 本实验所涉及工程问题描述 2. 实验工作原理与理论分析 3. 预习思考题的实验验证分析 4. 实验过程描述和实验结果分析 5. 实验结论 6. 课后思考题 7.个人体会和建议

实验报告模板可参照附件1。 九、课后思考题

1)INT 21H的1号功能调用在本实验中的作用是什么? 2)本实验中是否用到CMP指令,如果是,作用是什么?

25

微机原理与接口技术实验指导书

3)INT 21H的9号功能调用使用时有什么注意事项? 4)什么是ASCII码? 十、参考资料

1. 微型计算机原理与接口技术,周荷琴,吴秀清,第一章至第四章,P1~P200,中国科技大学出版社。

2. 微机原理及接口技术实验指导书,《微机原理及接口技术》课程教学团队,北京航空航天大学。

26

实验二 四位BCD码相加

一、实验目的

1. 巩固用汇编语言编写、调试及运行程序的方法。

2.进一步熟悉数据以ASCII的形式输入及在存储器中的存放形式,加深理解变量名是存储器段内的偏移地址;从键盘输入的数据是如何在存储器中以变量的形式存放的;加深理解一个多位十进制数据的输入过程,是以ASCII的形式、按一下按键输入一个相应键的ASCII、一个一个地来完成的;输入的多个数字的ASCII是如何转换成一个十进制数整体来进行运算的。

3. 加深理解如何控制输入的数据在屏幕上的显示。允许所需的数据输入,并将其显示在屏幕指定位置,而对于非法的输入,不仅不接受,也不使其在屏幕上显示。为实现这一点,可采用INT 21H的8号功能,不带自动回显地输入来实现。

4.巩固汇编语言程序的编写方法。汇编语言程序一般由三个段组成,即堆栈段、数据段和码段。一般堆栈段和码段总是需要的,因写程序就是写代码,就要设置码段,而程序中如发生子程序调用,或是临时进行数据保护,则需要用到堆栈段来保存子程序的返回地址,用堆栈来进行主程序与子程序间的数据传送,这就必须要用到堆栈段(这一点在高级语言中都有对应内容,如主程序与子程序间的变量传送有两种方式,传数据与传地址,但是由于高级语言不涉及计算机的具体结构,所以无法讲清,而只有讲计算机组成原理时才能讲透这个问题)。但数据段则是根据需要可设可不设。CPU的功能再强,也只是速度快和运算、控制功能强,而不用于存放数据。当数据较多时,则需要设置数据段,将大量的数据都存放在数据段中。

5.学会子程序的编写与调用方法,对何时需要编写子程序有初步的认识。 6. 了解什么是汇编语言编程的长处与不足。本实验只是进行两个4位的BCD码相加,编程量就可达到近100条。通过做这个实验,可以使学生体会到汇编语言程序一般只适合于用在控制方面,而不适合于进行较复杂的运算,若是有复杂的运算,则编程时首先应考虑能否采用高级语言。 二、实验内容

1. 从微机的键盘输入两个4位的十进制数数字,将它们相加的结果,以十进制数的形式显示在微机的屏幕上。例如,1234+5678=06912

27

微机原理与接口技术实验指导书

提示:

a) 因输入这两个4位的十进制数最少要按8次键(按了非数字键不接收),每个从键盘接收的按键为一个数字键的ASCII码,共计需要输入8个ASCII码,故需要设置数据段来存放这8个所对应的数值,可在数据段定义两个4字节变量x1和x2,每个变量存一个4位的十进制数(一个数字按键占一个字节存放)。另外,相加的结果也要存在数据段中,考虑到相加的结果可能为5位数,故还需设置一个5字节的变量x3,用于存相加的和。数据段的定义如下:

data x1 x2 x3 data

segment db 4 dup(0) db 4 dup(0) db 5 dup(0) ends,

b) 编写一个子程序,采用INT 21H的8号功能不带自动回显的输入每个字符,是数字键则接收并显示,不是数字键则转去重新输入,子程序如下:

keyin proc again: mov al,8

int 21h cmp al, ?0‘ jb again cmp al, ?9‘ ja again mov bl, al mov dl, al mov ah, 2 int 21h mov al, bl and al, 0fh ret

keyin endp

28

2. 以上1为基本的实验内容,要求所有学生都应完成。对于不满足于完成以上内容的学生,作为提高,建议如果相加的结果中最高位出现0,显示时应去掉,但如果两个数相加的结果为0,则应保持显示个位0加以显示。例如,

1234 + 5678 = 6912 0051 + 0052 = 103 0000 + 0000 = 0

(不要显示06912) (不要显示0103)

(结果为0,不能一个0也不显示)

有兴趣的同学,也可将输入的数字及运算结果以竖式的形式显示,如:

1 2 3 4

+ 5 6 7 8

6 9 1 2

三、实验设备

1. 计算机 (Windows 2000以上32位操作系,内存1G以上) 2. TPC-ZK-II集成开发环境(详见实验一) 四、预习要求

1. 掌握字节变量的定义方法,思考如何定义一个多位的字符变量,用于存放多个输入的字符?

2.理解压缩型与非压缩型BCD码的概念,思考多位非压缩型BCD码相加的结果怎样?如何实现多位非压缩型BCD码相加?

3.编写本次实验的程序流程图。 4. 预习思考题

1)INT 21H的8号功能与1号功能有何不同,本实验为什么要使用8号功能输入字符?

2)INT 21H的2号功能在本实验中的作用是什么?

5. 按附件一格式要求撰写预习实验报告,内容包括本次实验的实验目的、程序流程图及预习思考题,在实验课前交给实验老师审查通过后方可进入实验室进行实际操作。 五、实验原理 1. 明确实验要求

根据题意,要求从键盘输入两个4位BCD码,然后把它们相加,然后结果显示在

29

微机原理与接口技术实验指导书

微机屏幕上。两个输入的4位数字,加上一个5位数字的和,显然在CPU的寄存器中放不下,故需要定义数据段。数据段如下:

data x1 x2 x3 data

segment db 4 dup(0) db 4 dup(0) db 5 dup(0) ends

2.因使用汇编语言编写程序时,屏幕上一切显示均由编程者控制,编程者让显示什么就显示什么,编程者不让显示,则不会自动显示。故对本实验,当屏幕上需要显示加号+和等号=时,也需要通过编程者写程序来实现。显示加号的程序为:

mov dl, ?+‘ mov ah, 2 int 21h mov dl, ?=‘ mov ah, 2 int 21h

显示等号的程序为:

3. BCD码相加程序

当两个4位BCD码全都输入到x1和x2变量中后,存储器中的内容为:

30

x1、x2和x3地址中存的都是最高位数字,这时应注意,而相加应从最低位x1+3和x2+3开始,和的最低位为x3+4。

X X

X X

X X

X X

C表示进位

相加的示意图为:

ADC ADD(ADC) +

C C C C 0

X

X

X

X

X

由示意图可见,相加要进行5次,第一次是两个4位BCD码的个位数相加,应采用ADD指令。第二至第四次相加为两个加数的十、百、千位相加,相加时还应考虑到来自低位的进位,应采用ADC指令。但为了使程序简单,可统一采用ADC指令,但在个位相加前,先将进位标志位清零。指令OR CX,CX不改变CX的值,但可将CF清零。

当两个BCD码的千位数相加完后,还可能向万位产生进位,可利用如下方法得到

和的万位数:

相加的程序为:

mov si, (offset x1)+3

;x1的个位偏移地址

mov al, 0 adc al, 0

;送数不改变标志寄存器状态 ;AL=AL+0+CF

mov di, (offset x2)+3 ;x2的个位偏移地址 mov bx, (offset x3)+4 ;x3的个位偏移地址 mov cx, 4 or cx, cx mov al, [si] adc al, [di]

31

;循环加4次 ;CF=0 ;取x1 ;加上x2

next2:

微机原理与接口技术实验指导书

aaa

;调整为BCD码 ;存和

mov [bx], al dec si dec di dec bx loop next2 mov al, 0 adc al, 0 mov [bx], al

;加上千位向万位的进位 ;存和的万位

4. 程序的结构:

汇编语言程序一般由三个段组成,其中,堆栈段和码段总是需要的,但数据段则根据实际情况,可设也可不设。三个段的设置如下: a) 堆栈段(对本课程所涉及的所有程序均适用):

stack

segment stack dw 100 dup(0) ends

stack

b) 数据段

如前面所示。

c) 码段

code

segment

assume cs:code, ds:data, ss:stack

;---------------------主程序----------------------- main

proc mov ax, data mov ds, ax … mov ah, 4ch int 21h

32

exit:

main endp

;----------------输入单个数字键子程序-------------- keyin

proc … ret endp ends end main

keyin code

5. 程序流程图

开始 初始化 输入X1 显示’+’ 输入X2

显示’=’ X3=X1+X2 显示X3 结束 初始化为正式编写程序前需要进行的设置,目前主要是设置数据段的段地址:

mov ax, data mov ds, ax

33

微机原理与接口技术实验指导书

六、实验步骤

1. 打开运行TPC-ZK-II集成开发环境;

2. 建立新的.asm空白文件,将编写好的程序拷贝到空白文件内,或者直接在TPC-ZK-II集成开发环境运行界面下打开已编写好并且保存的汇编语言源程序文件,保存该文件;

3. 对程序进行编译、链接、调试,生成可执行文件。(注意事项7.1); 4. 运行,从键盘输入两个4位数,显示实验结果,由结果验证程序是否正确。

七、注意事项

1. 计算机必须连接实验箱后,才能够在TPC-ZK-II集成开发环境中完成编译连接运行整个过程。没有连接实验箱的计算机TPC-ZK-II集成开发环境中只能对程序进行编译连接,运行时会报错。需要按照下面方法运行程序:

计算机任务栏左侧开始-运行-输入cmd-打开command窗口,指明之前保存源程序文件的文件夹路径,输入可执行文件名,回车即可运行可执行文件查看实验结果是否正确。

2. 因为公共实验室的计算机都装有防病毒卡,所以请将程序保存在非系统盘内,否则计算机意外关机或重启后所作的工作都将丢失。 八、实验报告要求

实验报告中应包括以下内容: 1. 本实验所涉及工程问题描述 2. 实验工作原理与理论分析 3. 预习思考题的实验验证分析 4. 实验过程描述和实验结果分析 5. 实验结论 6. 课后思考题 7.个人体会和建议

34

本文来源:https://www.bwwdw.com/article/mhf6.html

Top