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