微机原理接口技术实验指导书_第1页
微机原理接口技术实验指导书_第2页
微机原理接口技术实验指导书_第3页
微机原理接口技术实验指导书_第4页
微机原理接口技术实验指导书_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、微机原理与接口技术 实验指导书 计算机科学系 第一章 软件实验项目 1.1 汇编环境简介 1、汇编语言源程序编辑 建立汇编语言程序可以使用多种方法 (1)使用 EDIT 建立汇编语言程序 使用汇编环境下自带的 EDIT.EXE 文件进行文件的编辑。 格式:EDIT 文件名.ASM (回车) (2)使用 PE2 建立汇编语言程序 在 DOS 提示符下使用 PE2 编辑器输入用户汇编语言程序 (扩展名为.ASM)。 格式:PE2 文件名.ASM (回车) (3)使用 SK 建立汇编语言程序 使用 SK2 热键启动 SK 2、汇编程序生成目标程序 经过编辑命令建立的汇编语言源程序使用汇编程序编译成目

2、标程序。 (1) 使用 MASM 宏汇编进行编译 MASM 文件名 在汇编程序调入后,先显示版本号,然后出现第一行提示, Object filename 源文件名.OBJ: ;默认该文件名回车。 Source Listing NUL.LST : 源文件名或其他 ;输入文件名建立可打印文件。 Cross Reference NUL.CRF: 源文件名或其他 ;回车。 Warning Errors severe Errors 如果汇编过程中发现源程序有错误,由以上两种错误类型分别列出。此时可分析错误原因, 返回编辑程序修改源程序。 汇编程序出错信息见 汇编程序出错信息表 , 注意出错的类型及出错的

3、源文件对应行。 若不需要产生 .LST 和 .CRF 文件, 可在 下加; MASM 文件名; (2)使用 TASM 进行编译 例如:编译 A.ASM 文件。 TASM A Turbo Assembler Version 2.5 Copyright (c) 1988,1991 Borland International Assembling file: a.ASM Error messages: None Warning messages: None Passes: 1 Remaining memory: 162k 可按要求填加必要的选择。例如若需要在 TD 中跟踪源文件调试,可使用/zi 选

4、择(应注意选择 项英文的大小写): TASM /zi A 若要生成列表文件,可用如下操作: TASM A ,A.LST TASM 的选择项如下(可用 /H 显示): Syntax: TASM options source ,object ,listing ,xref /a,/s Alphabetic or Source-code segment ordering /c Generate cross-reference in listing /dSYM=VAL Define symbol SYM = 0, or = value VAL /e,/r Emulated or Real floatin

5、g-point instructions /h,/? Display this help screen /iPATH Search PATH for include files /jCMD Jam in an assembler directive CMD (eg. /jIDEAL) /kh# Hash table capacity # symbols /l,/la Generate listing: l=normal listing, la=expanded listing /ml,/mx,/mu Case sensitivity on symbols: ml=all, mx=globals

6、, mu=none /mv# Set maximum valid length for symbols /m# Allow # multiple passes to resolve forward references /n Suppress symbol tables in listing /o,/op Generate overlay object code, Phar Lap-style 32-bit fixups /p Check for code segment overrides in protected mode /q Suppress OBJ records not neede

7、d for linking /t Suppress messages if successful assembly /w0,/w1,/w2 Set warning level: w0=none, w1=w2=warnings on /w-xxx,/w+xxx Disable (-) or enable (+) warning xxx /x Include false conditionals in listing /z Display source line with error message /zi,/zd Debug info: zi=full, zd=line numbers only

8、 3、链接程序生成可执行文件 由汇编后建立的目标码文件,必须经过链接后才能生成可执行的命令文件。 (1)使用 LINK 完成连接 LINK 文件名 ;回车后调入链接程序,此时屏幕显示。 Run File 文件名.EXE: ;回车默认该文件名。 List File NUL.MAP: ; Libraries .LIB: ;回车。 Warning: ;提示错误。 如果有错误,返回编辑程序重新修改源程序。 若要生成 .COM 文件, 则用 EXE2BIN 实现: EXE2BIN A.EXE A.COM (2)使用 TLINK 完成连接 例如:链接 A 文件。 TLINK A Turbo Link Ve

9、rsion 4.0 Copyright (c) 1991 Borland International 可按要求填加必要的选择。例如若需要在 Debug 中跟踪源文件调试,应使用/V 选择 (应注意选择 项英文的大小写): TLINK /v A 若要生成 COM 文件,可使用 /Tdc 选择: TLINK /Tdc A TLINK 的选择项如下(可用 /H 显示): Syntax: TLINK objfiles, exefile, mapfile, libfiles, deffile xxxx indicates use response file xxxx Options: /m = map

10、file with publics /x = no map file at all /i = initialize all segments /l = include source line numbers /L = specify library search paths /s = detailed map of segments /n = no default libraries /d = warn if duplicate symbols in libraries /c = lower case significant in symbols /3 = enable 32-bit proc

11、essing /v = include full symbolic debug information /e = ignore Extended Dictionary /t = create COM file (same as /Tc) /o = overlay switch /P=NNNNN = pack code segments /A=NNNN = set NewExe segment alignment factor /ye = expanded memory swapping /yx = extended memory swapping /C = case sensitive exp

12、orts and imports /Txx = specify output file type /Tdx = DOS image (default) /Twx = Windows image (third letter can be c=COM, e=EXE, d=DLL) 4、汇编语言动态调试工具调试汇编程序 (1)使用 DEBUG 进行调试 DEBUG 是专为汇编语言设计的一种调试工具,可用来检查,修改存储单元和寄存器的内容装入, 存储及启动运行程序,也可用 DEBUG 汇编简单的汇编语言程序。 DEBUG 文件名.EXE - ; - 是 DEBUG 的提示符 DEBUG 下的基本命令及

13、格式 ( 具体见 DEBUG 使用说明 ) 命 令 任 务 格 式 A(Assmble) 汇编语句 Aaddress C(Compare) 比较内存 C range address D(Dump) 显示内存 D address E(Enter) 改变内存 E address list F(Fill) 填充内存 F range list G(GO) 执行程序 G address H(Hexarthmetic) 十六进制运算 H Value Value I(Input) 输入 I port address L(Load) 装入内存 Laddress M(Move) 传送内存 M range ran

14、ge N(Name) 定义文件 N d: O(out put) 输出字节 O port address byte Q(Quit) 退 出 DEBUG 状态 Q R(Register) 显示寄存器 Rregister name S(Search) 检索字符 S rang list T(Trace) 单步/多步跟踪 T orTaddressvalue U(Unassmble) 反汇编 U addressorUrange W(Write) 文件或数据写盘 W addressdrive sector sector (2)使用 TD ( Turbo Debugger ) 调试汇编程序 TD 设计具有 T

15、urbo 系列语言的特点,其多重覆盖窗口、下拉菜单和弹出菜单的结合给用户提供 了一个快速友好的交互环境,帮助系统使用十分方便。以下给出常用操作命令,具体命令见 Turbo Debugger 命令一览表 。 启动 Turbo Debugger Syntax: TD objfiles 例如: 调试已编译链接后的 A 文件: TD A 进入 TD 后屏幕显示 下拉菜单栏: 在屏幕的上端 代码区域 : 按地址,机器码及助记符组成 寄存器域 : CPU 中寄存器内容 标志域 : CPU 中所有标志状态 堆栈区域 : 当前堆栈内容 数据区域 : 以地址, ASCII 码值及 ASCII 码显示数据 常用命

16、令栏: 在屏幕下端 屏幕中间区域可通过 TAB 键移动 F10 或 Alt - 进入菜单提示栏,回车选择对应菜单 例如: Alt - F 进入屏幕上端的 File 栏, 回车后显示下拉菜单,移动光标可选择相 应功能。 Alt - F10 访问局部菜单 通过该命令,用户可容易的进入当前栏的局部菜单。 窗口命令使用下拉菜单的 Window, 可进入多窗口显示,用户可调试窗口的位置和大小,以最 佳的方式观察程序执行过程同时可切换不同显示窗口。 常用执行命令在常用命令栏有提示,以下给出常用命令: 连续慢速执行 在 RUN 菜单下选择 Animate 反向跟踪执行 Alt - F4 断点方式执行 用 F

17、2 设断点,使用 RUN 命令后停在断点处 1.2 实验项目 实验一程序设计与调试之一:分支程序设计 一一目的和要求目的和要求 通过对一个简单程序的编辑、汇编、连接及调试,学习汇编语言程序设计上机操作的基本方法,以及 简单分支程序设计的方法,为以后各项实验和实际的程序设计建立基础。 二二实验内容实验内容 1 验证题 对例 1 给出的程序进行编辑、汇编、连接和调试。要求通过 DEBUG 工具检查每一条算术运算指令执行 后相关寄存器的内容,检查程序执行前后各变量的内容。 以下程序段用以显示信息“Press any key when you ready.”。在用户按下任一键后,另起一行显示 信息“I

18、nput your password:”。 NAME EXAMPLE1_1 DSEG SEGMENT use16 MESS1 DB Press any key when you ready,0AH,0DH, MESS2 DB Input your password: DSEG ENDS ; SSEG SEGMENT STACK use16 DB 80H DUP(0) SSEG ENDS ; CSEG SEGMENT use16 ASSUME DS:DSEG,SS:SSEG,CS:CSEG START:MOV AX,DSEG MOV DS,AX MOV DX,OFFSET MESS1 MOV A

19、H,09H INT 21H ;显示“press any key when you ready.” MOV AH,08H INT 21H ;等待用户按任一键 MOV DX,OFFSET MESS2 MOV AH,09H INT 21H ;显示“Input your password:” CSEG ENDS END START 2 设计题 (1) 编写一程序,作 BCD 数的四则运算,在程序中设置非压缩 BCD 数 X,从键盘输入一位十 进制数 Y。将 X+Y、XY、XY 及 X/Y(不考虑余数)分别送 ANSA,ANSS,ANSM 及 ANSD 变量。上机调试程序;检查执行结果。 (2) 编写一

20、程序,实现两个三字节无符号数 DATA1 和 DATA2 的相加,结果送四字节变量 ANS。上机调试程序,检查执行结果。 实验二 程序设计与调试之二:转移程序设计 一一目的和要求目的和要求 1 进一步了解转移指令的格式和功能,通过解决分支问题练习条件转移指令的选用及无条件转移指令的 使用。 2 练习针对具体问题建立合适的分支程序结构,并掌握分支程序的调试方法。 二二实验内容实验内容 1 验证题 调试给出的程序。要求针对两数据块相对位置的三种情况分别验证程序正确性。 将 BLKS 为首址的连续 N 个字节数传送至 BLKD 为首址的存储区,编写此数据块传送程序。 分析:(1)根据题意,两数据块的

21、相对位置有以下三种情况: a.两数据块不重叠,如图(a)所示。这种情况下从首部或从尾部开始传送均可以。 b.两数据块有部分重叠,且 BLKS 地址大于 BLKD 地址,如图(b)所示。这种情况下,只能从 首部开始传送。若从尾部开始传送,则将破坏 BLKS 数据块中尚未传送的首部数据。 c.两数据块有部分重叠,且 BLKS 地址小于 BLKD 地址,如图(c)所示。这种情况下,只能从 尾部开始传送。 0000:0000 BLKS 数据块 BLKD BLKS 数据块 数据块 BLKS BLKD BLKD 数据块 数据块 数据块 (a) (b) (c) 两个数据块相对位置示意图 (2)可以用变址寄存

22、器 SI 指向 BLKS 中的字节数,用 DI 指向 BLKD 中 对应的位置,将 SI 所指的字节数送 DI 所指的位置,并使 SI ,DI 均指向下一字节。在尚未传送完的情况下转移至完成上述功能的 程序段起始位置,直至传送完毕。程序流程图所示。 程序如下: ;NAME EXAMPLE2 .486 DSEG SEGMENT use16 ORG $+24H STRG DB THIS IS A PROGRAM FOR STRING MOVING N EQU $-STRG BLKS DW STRG BLKD DW STRG+5 DSEG ENDS SSEG SEGMENT STACK DB 80H

23、 DUP(0) SSEG ENDS CSEG SEGMENT use16 ASSUME DS:DSEG,SS:SSEG,CS:CSEG START:MOV AX , DSEG MOV DS , AX MOV CX , N ;CX数据块字节数。 MOV SI , BLKS ;SI 指向源数据块首部。 MOV DI , BLKD ;DI 指向目的数据块首部。 MOV BX , 1 ;设置 SI、DI 修正量为 1。 CMP SI , DI JA MOVE ;源数据块首址大于目的数据块首址则转 MOVE DISI SISI+BX DIDI+BX CXCX1 CX0 CXN SIBLKS DIBLKD

24、 BX1 SIDI SISI+CX1 DIDI+CX 1 BX 1 BX 1 Y N Y N 程序流程图 开始 结束 处。 ADD SI , CX DEC SI ;SI 指向源数据块尾部。 ADD DI , CX;DI 指向目的数据块尾部。 DEC DI NEG BX ;设置 SI、DI 修正量为-1。 MOVE:MOV AL , SI MOV DI , AL ADD SI , BX ADD DI ,BX DEC CX JNZ MOVE ;CX0,即尚未传送完毕, 则转 MOVE 处继续传送 MOV AH,4CH INT 21H ;返回 DOS。 CSEG ENDS END START 2 设

25、计题 在 BUF 数据区中放有三个双字节数,现要求将这三个数按从大到小次序重新存放。分别将这些数视为 有符号数和无符号数这两种情况编写程序。上机调试程序,检查执行结果。 实验三程序设计与调试之三:循环程序设计 一一目的和要求目的和要求 1. 进一步了解重复控制指令、串操作指令及重复前缀的格式和功能,通过解决循环问题练习这些指令和 重复前缀的选用。对于既可以用重复控制指令,又可以用串操作指令及重复前缀的场合,比较两者的优劣。 2. 练习针对具体问题建立合适的循环结构,进一步了解计数控制、条件控制的循环结构的适用场合。 二二实验内容实验内容 1. 验证题 调试例 1 和例 2 给出的程序,验证两个

26、程序的正确性。对于这两个程序在 SI、DI 初值设置上的区别作 出分析,并对两个程序的优劣作比较。 【例 1】 编写一程序,用以判断 BUF1 和 BUF2 两个等长度的数据区中数据是否相同。相同则使 FLAG 单 元置 0,否则置-1。 分析:(1)循环工作部分包括:使地址指针作“+1”修改,将 BUF1 数据区中的一个数据与 BUF2 数据 区中同序号的数据作比较。 (2)置循环初值部分包括:对存放比较结果的 FLAG 单元置初值 0,这一点用伪指令即可实现。地址 指针应预先指向数据区起始位置的前一字节。对 CX 置最大循环次数。 (3)循环工作部分是否再次执行既取决于循环工作部分的已执行

27、次数,又取决于两个同序号的数据的 比较结果,具体控制为:当循环工作部分的已执行次数未达到 CX 的初始值,且刚作比较的两个同序号的数 据相同,则再次执行循环工作部分;否则结束循环。考虑到 LOOPZ 指令的功能,故使用该指令实现循环控 制。 值得注意的是,采用这种循环控制方法时,循环的结束或是因为循环工作部分的执行次数已达到 CX 的 初始值,或是因为已发现两个数据区中两个同序号的数据不同。于是,可以接着根据 ZF 的值予以判断,并 根据判断结果确定是否将“-1”送 FLAG 单元。程序流程图如图所示。程序如下: ;NAMECXAMPLE1 .486 DSEGSEGMENT use16 BUF

28、1DB(N 个字节数) BUF2DB(N 个字节数) COUNTEQU$BUF2 FLAGDB0 DSEGENDS use16 ; SSEGSEGMENTSTACK use16 DB80HDUP(0) SSEGENDS ; CSEGSEGMENT use16 ASSUMEDS:DSEG,SS:SSEG,CS:CSEG START:MOVAX,DSEG MOVDS,AX MOVSI,OFFSETBUF11 MOV DI,OFFSET BUF21 MOV CX,COUNT NEXT: INC SI INC DI MOV AL,SI CMP AL,DI LOOPZ NEXT JZ OK MOV FL

29、AG,-1 OK:MOV AH,4CH INT 21H N SIBUF1 数据区前一字节地 址 DIBUF2 数据区前一字节地 址 CX数据区字节数 SI(SI )+1 DI( DI) +1 ZF=1且 (CX)0 开始 SI与 DI作 比较 FLAG-1 结束 Y Y N ZF=1 程序流程图 CSEG ENDS END START 若在此程序中将指令 MOV SI,OFFSET BUF1-1 MOV DI,OFFSET BUF2-1 改为 MOV SI,OFFSET BUF1 MOV DI,OFFSET BUF2 且将指令 INC SI INC DI 改放到 CMP 指令之后,这样修改是否

30、正确,请读者思考。 (3) 使用带有 REPZ、REPNZ 前缀的串比较、串搜索指令实现循环的条件控制 【例 2】 要求实现的程序功能与例 1 同。 分析:考虑到 REPZ 前缀结合 CMPSB 指令可以实现两个存储器操作数的比较,实现变址寄存器 SI、DI 的 增(或减 1),实现计数寄存器 CX 减 1,并根据比较结果及(CX)是否为 0 来控制是否进行后续数据的比较。 因此,可将其用于本例题的循环程序设计。值得注意的是,CMPSB 指令所涉及的两个操作数分别用 DS:DI 和 ES:DI给出,故应该使段寄存器 DS 和 ES 均存放 DATA 数据段的段地址;若在循环工作部分之前使 SI

31、 指 向 BUF1 数据区首址,使 DI 指向 BUF2 数据区首址,则应同时使用 CLD 指令,使 DF 置“0”,以便 CMPSB 指 令使 SI、DI 作增 1 修改。程序如下: ;NAME EXAMPLE2 . . . CSEG SEGMENT use16 ASSUME DS:DSEG,ES:DSEG,SS:SSEG,CS:CSEG START:MOV AX,DSEG MOV DS,AX MOV ES,AX ; MOV SI,OFFSET BUF1 MOV DI,OFFSET BUF2 MOV CX,COUNT CLD REPZ CMPSB JZ OK MOV FLAG,-1 OK:

32、MOV AH,4CH INT 21H CSEG ENDS END START 2. 设计题 (1)、编写程序,以统计 BUF 数据区中各有符号字节数的平均值。上机调试程序,检查程序正确性。 (2)、按照要求编程, 统计 BUF 字数据区第一个零数据后的各数据中正数及负数的个数,并分别送 POSI 及 NEGA 存储单元,试编写程序。 (3)并且要求在搜索第一个零数据时分别采用重复控制指令和串操作指令。上机调试程序,检查程序正确 性,并指出该程序使用了什么循环控制方法。 实验四 程序设计与调试之四:子程序设计 一一目的和要求目的和要求 1.进一步熟悉子程序调用、返回指令的使用方法,以及子程序的定

33、义格式。 2.加深对参数传递方法、现场保护和恢复的理解。 3.练习针对具体问题采用不同方法解决子程序调用和返回中的参数传递问题,针对具体问题的需要对现 场进行保护和恢复。 二二实验内容实验内容 1.验证题 (1)约定寄存器法 约定寄存器法是指,事先使用某些寄存器进行入口参数、出口参数的传递。 【例 1】编写程序,用以统计字节数组中零元素的个数。 分析:(1)为了可以对存放于不同位置,字节数各异的不同的字节数组实现题目提出的功能,可以将统计 字节数组中零元素个数的工作用子程序来实现。 (2)对于一个首地址为 ARRAYB,字节数为 COUNT 的字节数组来说,应将 ARRAYB 及 COUNT

34、作为入口参数提 供给子程序;而子程序应在统计出 ARRAYB 开始的 COUNT 个字节数中零元素个数后,将零元素个数作为出口 参数提供给调用程序。调用程序最后将出口参数送存储单元,如 ANSW 单元。 (3)在编写程序和子程序前,约定使用寄存器来实现入口参数和出口参数的传递。考虑到子程序需要对 ARRAYB 开始的各个字节数判断其是否为零元素,将 ARRAYB 作为 SI 的初值,且逐次使 SI 增“1”,则可用 SI表示各个字节数。于是可以约定,使用寄存器 SI 传递入口参数 ARRAYB。考虑到子程序需要重复判断 SI是否为零元素,重复次数为 COUNT,而可实现控制重复的 LOOP 指

35、令使用寄存器 CX 实现重复计数,于是 可以约定,使用寄存器 CX 传递入口参数 COUNT。可以在子程序中用一个寄存器,如 AX 统计数组中零元素的 个数,并约定使用该寄存器将零元素的个数作为出口参数传递给调用程序。 调用程序和子程序之间的参数传递可表示为: SIARRAYB(入口参数) CXCOUNT(入口参数) AX零元素个数(出口参数) 调用程序和子程序的程序流程图如图 1 所示。程序如下: 调用程序开始 SIARRAYB CXCOUNT 调用 ZNUM 子程序 ANSW(AX) 结束 ZNUM 子程序开始 AX(AX)+1 AX0 SI=0 CX(CX)1 SI(SI)+1 (CX)

36、=0 返回 Y N N 图 1例 1 程序流程图 ;NAME EXAMPLE1 .486 DSEG SEGMENT use16 ARRAYB DB(若干个字节数) COUNTEQU$ARRAYB ANSW DW? DSEG ENDS ; SSEG SEGMENTSTACK DB80HDUP(0) SSEG ENDS ; CSEG SEGMENT use16 ASSUMEDS:DSEG,SS:SSEG,CS:CSEG START:MOVAX,DSEG MOVDS,AX ; LEASI,ARRAYB MOVCX,COUNT;通过约定的寄存器 SI、CX 为子程序提供入口参数 CALLZNUM ;

37、MOVANSW,AX;通过约定的寄存器 AX 接受子程序提供的出口参数 MOVAH,4CH INT21H ; ZNUMPROC XORAX,AX NEXT:CMPBYTEPTRSI,0 JNZ NZ INC AX NZ: INCSI LOOPNEXT RET ZNUM ENDP ; CSEG ENDS ENDSTART 说明:(1)约定寄存器法的优点是,参数传递快,编程较方便,且节省内存单元。 (2)由于寄存器个数很有限,调用程序和子程序中往往要用到一些寄存器,在需传递的参数较多时, 会出现寄存器不够用的现象。约定寄存器法只适用于需传递的参数较少的情况。 约定存储单元法是指,事先约定使用某些存

38、储单元进行入口参数、出口参数的传递。 【例 2】编写程序,程序功能与例 1 同,但要求使用约定存储单元法实现参数的传递。 分析:例 1 程序中使用寄存器 SI、CX 传递入口参数,使用寄存器 AX 传递出口参数,以下程序则改用 PARA1、PARA2 单元传递入口参数,改用 PARA3 传递出口参数。调用程序和子程序之间的参数传递可表示为: PARA1ARRAYB(入口参数) PARA2COUNT(入口参数) PARA3零元素个数(出口参数) 结束 程序如下: ;NAME EXAMPLE2 .486 DSEG SEGMENT use16 ARRAYB DB(若干个字节数) COUNT EQU$

39、ARRAYB ANSW DW? PARA1 DW? PARA2 DW? PARA3 DW? DSEG ENDS ; SSEGSEGMENT STACK DB80HDUP(0) SSEGENDS ; CSEG SEGMENTuse16 ASSUMEDS:DSEG,SS:SSEG,CS:CSEG START:MOVAX,DSEG MOVDS,AX ; LEA SI, ARRAYB MOV PARA1,SI MOV PARA2,COUNT;通过约定的寄存单元 PARA1、PARA2 为子程序提供入参数 CALLZNUM ; MOV BX,PARA3;通过约定的寄存单元 PARA3 接受子程序提供的出

40、口参数 MOVANSW,BX MOVAH,4CH INT21H ; ZNUM PROC MOVSI,PARA1 MOVCX,PARA2;从约定的存储单元 PARA1、PARA2 取入口参数 XORAX,AX NEXT: CMPBYTEPTRSI,0 JNZNZ INCAX NZ:INCSI LOOPNEXT MOVPARA3,AX;通过约定的存储单元 PARA2 送出口参数 RET ZNUMENDP ; CSEG ENDS ENDSTART 说明:(1)约定存储单元法的优点是,每个子程序要处理的数据或送出的处理结果都有 独立的存储单元,且传递的参数个数不受限制。 (2)参数传递慢且要占用一定数

41、量的存储单元。约定存储单元法适用于需传递的 参数较多的情况。 要求对 2 个程序均在子程序开始位置检查入口参数,在子程序返回后检查出口参数. 2.设计题 (1)编写程序,将 BLKS 为首址的连续 N 个字节数传送至 BLKD 为首址的存储区。要求用子程序实现数 据的传送,由调用程序根据 BLKS、BLKD、两者的位置关系以及数据块的大小为子程序提供入口参数。另外, 要求分别采用三种方法实现参数传递,并要求保护和恢复现场。上机调试程序,检查程序正确性。 (2)设 BUF 数据区中 n 个无符号字节数,试计算这些数之和,并以以下形式显示:d0+d1+dn-1=S 其中 di 为第 i 个数的十进

42、制表示,S 为和值的十进制表示。编写程序,要求将十进制数的显示使用子程序 SUB1 实现,求和工作用子程序 SUB2 实现。上机调试程序,检查程序正确性。 实验五程序设计与调试之五:中断程序设计 一一目的和要求目的和要求 1 进一步掌握宏汇编、重复汇编及条件汇编的一般格式,进一步熟悉相关伪指令的功能和使用方法。 2 加强对宏汇编与子程序异同点的理解。 3 练习针对具体问题灵活使用高级汇编语言技术编写简洁高效的源程序。 二二实验内容实验内容 1 验证题 通过对例 1 给出的宏定义的宏调用,实现寄存器 AX、BX 及 CX 内容乘以 10 的功能; 【例 1】以下宏定义所定义的宏指令MUL10 可

43、以实现 16 位通用寄存器(除 DX)或 16 位存储 单元内容乘以 10 的功能。该宏定义设置了一个形参X,乘以 10 的操作从形式上来说是针对X 进 行的。 MUL10 MACRO X PUSH DX SAL X,1 MOV DX,X SAL X,1 SAL X,1 ADD X,DX POP DX ENDM 2.设计题 (1) 使用重复汇编的方法建立一个数据表,其中存放 1,2,3,6,i,根据给定的 i 值, 查表求取表中第 i 项数据。编写程序,上机调试,检查程序正确性。 (2) 按照第 10 章习题 8 的要求程序。另外,要求将宏指令的功能用子程序实现。对上述两 个程序进行调试,验证

44、其正确性,并且对两个程序的优缺点作出分析。 第二章 DVCC8086H 实验系统性能特点 2.1 DVCC8086H 性能特点 1、用主频为 4.77MHZ 的 8088CPU 为主 CPU,并以最小工作方式构成系统 。 2、系统以二片 62256 静态 RAM 构成系统的 64K 基本内存, 地址范围为 00000H0FFFFH。其中 00000H004FFH 为系统数据区,00500H00FFFH 为用户数据区,01000H0FFFFH 为用户程序区,另配 一片 32K EPROM 存放系统程序和实验程序,地址范围为 F8000HFFFFFH 。 3、自带键盘显示器,采用进口键座、彩色字符

45、键帽,能单机独立运行,为实验程序的调试带来方便。 4、备有通用外围电路,包括逻辑电平开关电路、发光二极管显示电路、时钟电路、单脉冲发生电路、 继电器及驱动电路、直流电机及驱动电路、步进电机及驱动电路、电子音响及驱动电路、模拟电压产生电 路。 5、提供各种微机常用 I/O 接口芯片:包括定时/计数器接口芯片 (8253A),并行接口芯片(8255A), A/D 转换芯片(0809),D/A 转换芯片( 0832) ,中断控制器接口芯片(8259A),键盘显示接口芯片(8279A), 串行通信接口芯片(8251A)等。 6、备有系统总线扩展插座,便于其他硬件接口器件的扩展(如 DAM 控制器 82

46、37A 的扩充、串级中 断 8259A 的扩充、串行口 8250A 扩充、A/D5G14433 的扩充等)。 7、 可以配接温度测量、压力测量实验板。 8、 备有通用 IC 插座,和其他外围电路配合作数字实验仪用 。 9、 实验电路连接采用自锁紧插座及导线,消除接触不良现象 。 10、 电路设计中增加保护措施,有效避免学生因错接而损坏器件 。 11、 提供标准 RS232 异步通信接口,以联接 IBMPC 及其兼容机 。 12、 配备中文 WINDOWS95(98)界面调试软件及实验演示软件 。 13、 系统可以单步、断点、连续等方式调试运行各实验程序 。 14、使用单个+5V 电源,仅在做

47、D/A 实验时,需再接入一个+12V 和一个12V 电源。 15、工作电源电压+5V5,工作电流不大于 1A,开关机瞬间及工作正常时电源毛刺必须小于 0.5V 。 16、 使用环境: 环境温度 0+40,无明显潮湿、无明显振动碰撞 。 2.2 DVCC8086H 系统资源分配 8088 有一兆存储空间,系统提供给用户使用的空间为 00000H0FFFFH, 用于存放调试实验程序,具 体分配如下表: 中断矢量区 00000H000FFH 系统数据区 系统栈区 00100H004FFH 用户数据区 00500H00FFFH 用户程序区 用户栈区 01000H0FFFFH 中断矢量区 00000H0

48、0013H 作为单步 (T)、断点 INT3、无条件暂停 (NMI) 中断矢量区,用户也可 以更改这些矢量,指向用户的处理,但失去了相应的单步、断点、暂停等系统功能。 2.3 DVCC8086H 输入/输出接口地址的分配 电路名称口地址 提供给用户的扩展口 000H01FH 060H07FH 080H08FH 8253A 定时/计数器接口 通道 0 计数器 048H 通道 1 计数器 049H 通道 2 计数器 04AH 通道 3 计数器 04BH 8259A 中断控制器接口 命令寄存器 020H 状态寄存器 021H 8279A 键盘显示口 数据口 0DEH 命令状态口 0DFH 8251A

49、 串行接口 数据口 050H 命令口 051H 2.4 DVCC8086H 提供的实验内容 1、 使用 ADC0809 的 A/D 转换实验 2、 使用 DAC0832 的 D/A 转换实验(一) 3 、使用 DAC0832 的 D/A 转换实验(二) 4 、8255A 可编程并行口实验(一) 5、8255A 可编程并行口实验(二) 6、 8253A 定时/计数器实验 7 、使用 8259A 的单级中断控制实验 8、 使用 8251A 的串行接口应用实验(一) 9 、使用 8251A 的串行接口应用实验(二) 双机通讯 10 、直流电机调速实验 11 、步进电机控制实验 12 、继电器控制实验

50、 13、存贮器读写实验 *14 、使用 2 片 8259A 组成串级中断控制实验 *15、使用 8237A 可编程 DMA 控制器实验 *16、电子琴实验 *17、使用 8250A 的串行通信实验 注:实验序号前打上“*”为外接扩展板实验, 需通过总线扩展插座, 接插实验板( 有 DMA 实验板 和串级中断实验板)。 实验序号前打上“* *”的实验是外部扩展实验,需通过总线扩展插座和 IC 通用插座搭试实验线路进行。 第三章 DVCC8086H 实验系统结构 3.1 总体框图 DVCC8086H 实验系统总体原理框图如下: BD0-BD7 BA0-BA15 MEMR MEMW IOW IOR

51、CS7 CS6 CS5 CS4 CS3 CS2 70-7FH 60-6FH 00-0FH RST CLR CLK RST /RD /WR IO/M /ALE 8284 晶振 复位 74LS 273 74LS 245 A8-A19 A0-A7 FPGA A0-A15D0-D7 EPROM CS1 MEMRA8-A19 D0-D7 DB 8088CPU 总线插座 图 2.1 总体原理框图 3.2 通用外围电路 DVCC8086H 实验系统中设计了一系列实验所必需的通用外围电路:包括逻辑电平开关电路、发光二 极管显示电路、时钟电路、单脉冲发生电路、继电器及驱动电路、直流电机及驱动电路、步进电机及驱动

52、 电路、电子音响及驱动电路、模拟电压产生电路 ;另外,系统中设计了系统总线扩展插座和通用 IC 插座 。 1、 逻辑电平开关电路 该系统提供 8 个逻辑电平开关,每一个输出端有一插孔,分别标有 K1K8 。开关向上打时,输出高 电平“1”,向下时输出低电平“0”。具体电路如图 2.3 所示 。 图 2.3 逻辑电平开关电路 2、 发光二极管显示电路 DVCC8086H 实验系统提供有十二个发光二极管,其中四红、四绿、四黄。 其输入端有十二个插孔, 分别标有 L1L12,它对应 112 个发光二极管。 输入端为高电平“1”时,发光二极管灭;输入端为低电 平“0”时,发光二极管亮。具体电路如图 2

53、.4 所示。 图 2.4 发光二极管显示电路 3、 时钟电路 如图 2.5 所示,可以输出 1MHZ、2MHZ 两种时钟信号,供 0809A/D 转换器、8253A 定时器/计数器、 8250A 串行接口实验使用 。 图 2.5 时钟电路 4、 单脉冲发生电路 如图 2.6 所示,采用 RS 触发器产生单脉冲。实验者每按一次 AN 按钮,即可以从两个插座上分别 输出一个正脉冲 SP 及负脉冲 /SP ,供“中断”、“DMA”、定时器/计数器等实验使用 。 图 2.6 单脉冲发生电路 5、 继电器及驱动电路 现代自动化控制设备中都存在一个电子与电气电路的互相联结问题。 一方面要使电子电路的控制信

54、号 能够控制电气电路的执行元件(电动机、电磁铁、电灯泡等);另一方面又要为电子电路的电气设备提供良好 的电隔离,以保护电子电路和人身的安全。电子继电器便能完成这一桥梁作用。 6、 直流电机及驱动电路 系统中设计有一个+5V 直流电机及相应的驱动电路。小直流电机的转速是由加到其输入端DJ的脉冲 电平及占空比来决定的, 正向占空比越大转速越快,反之越慢。驱动电路输出接直流电机。 7、 步进电机及驱动电路 步进电机是工业控制及仪表中常用的控制元件之一, 它有输入脉冲与电机轴转角成比例的特征,在智 能机器人、软盘驱动器、数控机床中广泛使用,微电脑控制步进电机最适宜。系统中设计使用 20BY0 型 号步

55、进电机,它使用+5V 直流电源,步距角为 18 度,电机线圈由四相组成。即 A、B、C、D 四相。 驱动 方式为二相激磁方式,驱动电路由脉冲信号控制, 所以调节脉冲信号的频率便可改变步进电机的转速。 8、电子音响及驱动电路 如图 2.10 所示,音响电路的控制输入插孔为“SIN”,控制输入信号经 386 放大后接喇叭。 9、模拟信号电平产生电路 如图 2.11 所示,系统中提供 2 路 05V 模拟电压信号,供 A/D 转换实验时用。 图 2.10 图 2.11 10、 总线扩展插座 采用 32 芯圆孔插座,引出数据总线 D07、地址总线 A0A19、存贮器读写信号 MEMR、MEMW、I/O

56、 读写信号 IOW、IOR、复位 RST、时钟 CLK、电源 Vcc、地 GND,供学生自行搭试各种实验电路用。 11、 通用 IC 插座 系统扩有 IC14、IC16、IC40 通用插座,IC40 可采用自锁紧插座,这样既可以插宽 IC40、IC28、IC24,亦可以插窄 IC24、IC18、IC20 等。 非常灵活方便。 3.3 各插头座定义 1、Z1 Z1 为电源,其定义见图 2.12。电源内置时,该插座装在反面 3 2 9 8 RXD GND TXD GND 地 +5V 图 212 图 2.13 2、 Z2 Z2 为通信插座,定义见图 2.13。 3、 Z3 Z3 为 8253 定时/

57、计数器通道 0 有关信号线引出插座,作为用户扩展实验用。 、Z4 Z4 为 8255 并行 I/O 接口芯片 PA 口引出插座,作扩展实验用。 5、 Z5 Z5 为系统总线信号引出插座,为扩充接口实验而设置。如扩充 DMA8237A 实验、 串行通信 8250A 实验、8259A 串级中断实验等。定义见板上印字层字符。 6 、Z6 Z6 是专为做级联中断而引出的信号插座。用于连级级联中断实验板,定义如图 214。 A B C D VCC Vcc CAS0 CAS1 CAS2 INTA 图 214 图 215 7、 Z7 Z7 是 ADC 0809 通道 IN2通道 IN7 的模拟量输入端和单级

58、中断控制芯片 8259A 中断源输入信号。 定义见板上印字层字符。 8、 J1 J1 为步进电机插座,其定义如下图 2.15,系统中已和驱动电路连好。 9、 J2 J2 为电子音响插座,其定义如图 2.16,系统中已和驱动电路连好。 10、DM DM 为直流电机插座,其定义如图 2.17,系统中已和驱动电路连好。 SOUT GND Dout GND 图 216 图 217 第四章 接口实验项目 4.1概述: 本章是为 DVCC8086H 微机原理及接口实验系统编写的详细实验指导书,DVCC8086H 实验系 统上提供的全套实验是为微机原理、微机接口应用、计算机控制技术等课程配置的,书中详细叙述

59、了各实 验的实验目的、实验原理、实验内容、 实验原理图和软件框图、软件清单以及实验步骤。减轻和免除了主 讲教师和实验指导老师为设计、准备、调试实验线路和实验程序所需的工作量,节约了宝贵的时间, 提高 了教学效率。 本指导书上所有软硬件都已经过调试运行,需特别说明的四点是: 1、 所有实验程序用两种方式存放:其一放在随机软盘中,源程序( . ASM) 在 8HASM 子目录中, 可执行文件 ( . EXE) 在 8HEXE 子目录中,每个实验程序的执行文件的装入地址详见附录一;其二是存放 在 DVCC8086H 系统监控中,各个实验程序在 EPROM 中的存放地址详见附录二。 当你选择 DVCC

60、8086H 独立使用时,你可以通过 DVCC8086H 自带的键盘显示器,输入各种命 令,显示实验结果,完成各个实验,这种方式为没有 PC 机的用户带来极大方便。 下面各个实验的实验步骤是按独立方式进行的,运行的实验程序在系统监控中。 当你选择 DVCC8086H 和上位机联机使用时, 所有的操作均在上位机的键盘上进行。 此时你既 可以运行系统监控中的实验程序, 亦可以运行DVCC86H8HEXE 目录中的实验程序。 2、系统监控中的实验程序,不能以断点方式运行。 3 、实验原理图上的粗实线,表示用户在实验时要用导线连接起来的。 4 、所有实验都是相互独立的,次序上也没有固定的先后关系, 在使

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论