版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、微机原理与接口技术微机原理与接口技术 实验指导书实验指导书 编者:编者:王亭岭王亭岭 华北水利水电学院华北水利水电学院 电气学院自动化教研室电气学院自动化教研室 二零一二年三月二零一二年三月 目目 录录 实验一实验一 标志寄存器应用标志寄存器应用.1 实验二实验二 指令寻址方式练习指令寻址方式练习.4 实验三实验三 分支结构程序设计分支结构程序设计.6 实验四实验四 循环结构程序设计循环结构程序设计.7 实验五实验五 子程序结构程序设计子程序结构程序设计.8 实验六实验六 DOS 系统功能调用程序设计系统功能调用程序设计.12 实验七实验七 BIOS 中断调用程序设计中断调用程序设计 .14
2、实验八实验八 定时器中断程序设计定时器中断程序设计.16 实验一实验一 标志寄存器应用标志寄存器应用 一、实验目的与要求 1掌握汇编程序的编译过程; 2掌握 8086 的标志寄存器的特点。 二、实验内容 练习识别 8086 标志寄存器的各种标志位。PC 机中状态位的表示如下: 标志位的名称为 1 的对应符号为 0 的对应符号 OF 溢出标志OVNV DF 方向标志DNUP IF 中断允许标志EIDI SF 符号标志NGPL ZF 零标志ZRNZ AF 半进位标志ACNA PF 奇偶标志PEPO CF 进位标志CYNC 三、实验设备 微型计算机(80 x86 系列) 。 四、实验参考程序 DAT
3、A SEGMENT A DW 123 B DW 456 SUM DW ? DATA ENDS CODE SEGMENT ASSUME CS:CODE , DS:DATA START: MOV AX , DATA MOV DS , AX MOV AX , A SUB AX , B MOV SUM , AX MOV AH,4CH INT 21H CODE ENDS END START 五、实验步骤 步骤一、用鼠标单击开始菜单,单击运行。如下图所示: 步骤二、在运行窗口中键入 cmd,回车进入命令提示符。如下图所示: 步骤三、在命令提示符中编译汇编源程序并连接*.obj 文件。如下图所示: 1C:D
4、: 回车 2D: CD MASM 回车 3D:MASMMASM SY1.ASM 回车 4D:MASMLINK SY1.OBJ 回车 步骤四、在命令提示行中运行并调试汇编程序。如下图所示: 1D:MASMSY1.EXE 回车 2D:MASMDEBUG SY1.EXE 回车 六、实验结论 1程序运行后变量 SUM 的值是多少? 2程序运行前后标志寄存器的各标志位有何变化? 3分析实验结果及所遇到的问题,并说明解决的方法。 实验二实验二 指令寻址方式练习指令寻址方式练习 一、实验目的与要求 1掌握汇编语言调试工具(DEBUG)的基本使用方法; 2掌握 8086 的寻址方式。 二、实验内容 练习识别
5、8086 相关指令的寻址方式。 DEBUG 的命令及其功能: 命令功能格式 A对语句进行汇编A C比较内存内容C D显示内存内容D或 E修改内存内容E F填充内存内容F G运行一个程序或程序段G H十六进制的加减法运算H I读/显示输入字节I L 装入文件或磁盘扇区L M传送内存块M N定义文件名和参量N O输出命令O P单步,并跳过子程序P Q退出 DEBUGQ R显示和修改寄存器内容R S对字符进行检索S T跟踪执行和显示T U对指令进行反汇编U W 写入文件或磁盘扇区W 其中表示输入的内容;表示为可选项。 三、实验设备 微型计算机(80 x86 系列) 。 四、实验参考程序 DSEG S
6、EGMENT ARRAY DB 11,56,78,8,76,90,96,33,21,06 COUNT DW $ - ARRAY RELUST DB ? DSEG ENDS SSEG SEGMENT PARA STACK STACK SDAT DB 50 DUP (?) TOP EQU LENGTH SDAT SSEG ENDS CSEG SEGMENT ASSUME CS:CSEG , DS:DSEG , SS:SSEG START: MOV AX , DSEG MOV DS , AX MOV AX , SSEG MOV SS , AX MOV AX ,TOP MOV SP , AX MOV
7、BX , OFFSET ARRAY MOV CX , COUNT DEC CX MOV AL , BX AGAIN: INC BX CMP AL , BX JAE NEXT MOV AL , BX NEXT: DEC CX JNZ AGAIN MOV RELUST, AL MOV AH, 4CH INT 21H CSEG ENDS END START 五、实验步骤 1D:MASMMASM SY2.ASM 2D:MASMLINK SY2.OBJ 3D:MASMSY2.EXE 4D:MASMDEBUG SY2.EXE 六、实验结论 1指出参考程序中带下划线的指令中源操作数的寻址方式? 2程序运行后
8、 AL 中的值是多少? 3分析实验结果及所遇到的问题,并说明解决的方法。 实验三实验三 分支结构程序设计分支结构程序设计 一、实验目的与要求 学习并掌握汇编语言分支结构程序设计的方法。 二、实验内容 比较两个无符号数的大小,把大数存入 MAX 单元。 三、实验设备 微型计算机(80 x86 系列) 。 四、实验参考程序 DSEG SEGMENT NUMBER DB 60H,66H MAX DB ? DSEG ENDS CSEG SEGMENT ASSUME CS:CSEG,DS:DSEG START: MOV AX,DSEG MOV DS,AX MOV AL,NUMBER CMP AL,NUM
9、BER+1 JNC BRANCH MOV AL,NUMBER+1 BRANCH: MOV MAX,AL MOV AH,4CH INT 21H CSEG ENDS END START 五、实验步骤 1D:MASMMASM SY3.ASM 2D:MASMLINK SY3.OBJ 3D:MASMSY3.EXE 4D:MASMDEBUG SY3.EXE 六、实验结论 1说明指令 JNC 的功能? 2程序运行后变量 MAX 的值是多少? 3分析实验结果及所遇到的问题,并说明解决的方法。 实验四实验四 循环结构程序设计循环结构程序设计 一、实验目的与要求 学习并掌握汇编语言循环结构程序设计的方法。 二、实
10、验内容 统计字符串 STRING 中空格的个数。源程序见实验参考程序。 三、实验设备 微型计算机(80 x86 系列) 。 四、实验参考程序 DSEG SEGMENT STRING DB Where there is a will,there is a way. $ RESULT DW ? DSEG ENDS CSEG SEGMENT ASSUME DS:DSEG,CS:CSEG START: MOV AX,DSEG MOV DS,AX MOV BX,OFFSET STRING MOV DX,0 NEXT: MOV AL,BX CMP AL,$ JZ FIN CMP AL,20H JNZ CO
11、NT INC DX CONT: INC BX JMP NEXT FIN: MOV RESULT,DX MOV AH,4CH INT 21H CSEG ENDS END START 五、实验步骤 1D:MASMMASM SY4.ASM 2D:MASMLINK SY4.OBJ 3D:MASMSY4.EXE 4D:MASMDEBUG SY4.EXE 六、实验结论 1指出参考程序中循环体执行的次数? 2程序运行后变量 RESULT 的值是多少? 3分析实验结果及所遇到的问题,并说明解决的方法。 实验五实验五 子程序结构程序设计子程序结构程序设计 一、实验目的与要求 学习并掌握汇编语言子程序结构程序设计
12、的方法。 二、实验内容 利用堆栈,采用递归子程序的方法,编程实现求N!。掌握汇编语言子 程序结构程序设计的方法。 三、实验设备 微型计算机(80 x86 系列) 。 四、实验参考程序 图 5-1 求阶乘示意图 DSEG SEGMENT N DW 5 ;此变量要送人 AX 中,应定义为字类型 RLT DW ? ;存放运算后的结果 DSEG ENDS SSEG SEGMENT STACK STACK ;声明组合类型后,系统自动为 SS 及 SP DW 100 DUP (?) ;分配值 SSEG ENDS CSEG SEGMENT ASSUME CS :CSEG,DS:DSEG,SS:SSEG ST
13、ART: MOV AX, DSEG MOV DS, AX MOV AX, N CALL REC ;调用求阶乘递归子程序 BRK: MOV RLT,AX ;运算后的结果送人 RLT 中 MOV AH, 4CH INT 21H REC PROC NEAR PUSH DX ;递归调用时 DX(5、4、3、2)依次压入堆栈 MOV DX, AX CMP AX,1 JZ EXIT DEC AX CALL REC ;递归调用 AMD: MUL DX ;AX * DXDXAX EXIT: POP DX RET REC ENDP CSEG ENDS END START 五、实验步骤 1D:MASMMASM S
14、Y5.ASM 2D:MASMLINK SY5.OBJ 3D:MASMSY5.EXE 4D:MASMDEBUG SY5.EXE 六、实验结论 1说明利用堆栈实现参数传递的好处? 2程序运行后变量 SUM 的值是多少? 3分析实验结果及所遇到的问题,并说明解决的方法。 实验六实验六 DOS 系统功能调用程序设计系统功能调用程序设计 一、实验目的与要求 1掌握 DOS 系统功能调用的方法; 2正确使用功能调用中相关的入口参数和出口参数。 二、实验内容 接收键盘输入并在屏幕上显示。如果是 “ESC”键,则退出程序(参考 程序 1) ;输出 MESS 中的字符串。按 “ESC”键退出程序(参考程序 2)
15、 。 运行可执行文件并加以调试。分析运行结果。 三、实验设备 微型计算机(80 x86 系列) 。 四、实验参考程序 1实验参考程序 1: CSEG SEGMENT ASSUME CS:CSEG START: MOV AH , 1 START1: INT 21H CMP AL , 1BH JZ OVER JMP START1 OVER: MOV AH , 4CH INT 21H CSEG ENDS END START 2实验参考程序 2: DSEG SEGMENT MESS DB HuaBeiShuiYuan!$ ;显示信息 DSEG ENDS CSEG SEGMENT ASSUME CS:
16、CSEG, DS:DSEG START: MOV AX, DSEG MOV DS, AX LEA DX, MESS MOV AH, 9 INT 21H MOV AH , 07H ;功能号为 07H 的功能是键盘输入无回显 INPUT: INT 21H CMP AL , 1BH ;“ESC”键的 ASCII 是 1BH JZ EXIT ;按“ESC”键退出程序 JMP INPUT EXIT: MOV AH , 4CH INT 21H CSEG ENDS END START 五、实验步骤 1D:MASMMASM SY6.ASM 2D:MASMLINK SY6.OBJ 3D:MASMSY6.EXE
17、4D:MASMDEBUG SY6.EXE 六、实验结论 1说明参考程序所完成的功能? 2什么是 DOS 系统功能调用? 3分析实验结果及所遇到的问题,并说明解决的方法。 实验七实验七 BIOS 中断调用程序设计中断调用程序设计 一、实验目的与要求 1掌握 BIOS 中断调用的方法; 2正确使用功能调用中相关的入口参数和出口参数。 二、实验内容 采用 BIOS 功能调用在屏幕上用多种属性显示字符串 。运行可执行文件 并加以调试。分析运行结果。 三、实验设备 微型计算机(80 x86 系列) 。 四、实验参考程序 ROW=5 ;常量定义,显示信息的行号 COLUM=10 ;显示信息的列号 ESCK
18、EY=1BH ;ESC 键的 ASCII 码值 DSEG SEGMENT MESS DB HuaBeiShuiYuan! ;显示信息 MESS_LEN = $ - OFFSET MESS ;显示信息的长度 COLORB DB 07H,01H,0FH,70H,74H ;颜色属性 COLORE LABEL BYTE DSEG ENDS CSEG SEGMENT ASSUME CS: CSEG, DS:DSEG, ES:DSEG START: MOV DI, OFFSET COLORB-1 ;颜色指针初值 NEXTC: MOV AX, DSEG MOV DS, AX ;设置数据段段值 MOV ES,
19、 AX ; ES 指向数据段 INC DI ;调整颜色指针 CMP DI, OFFSET COLORE ;是否超过指定的颜色 JNZ NEXTE ;没有超过则跳转 MOV DI, OFFSET COLORB ;超过则重新指定为第一种颜色 NEXTE: MOV BL, DI ;取颜色 MOV SI, OFFSET MESS ;取显示信息指针 MOV CX, MESS_LEN ;取显示信息长度 MOV DH, ROW ;设置显示开始行号 MOV DL, COLUM ;设置显示开始列号 CALL ECHO ;调用显示子程序 MOV AH, 0 ; 0 号功能为从键盘读字符 INT 16H ;执行 I
20、NT 16H 的 0 号功能 CMP AL, ESCKEY ;是否为“ESC”键 JNZ NEXTC ;不是,继续循环 MOV AH, 4CH ;结束程序,返回 DOS INT 21H ;子程序入口参数包括:DS:SI = 字符串首地址 ; CX = 字符串长度,BL = 属性,DH = 显示开始行号,DL=显示开始列号 ECHO PROC NEAR JCXZ ECHO2 ;如果字符串长度为 0,则结束 MOV BH, 0 MOV AH, 2 ;设置光标位置 INT 10H MOV AL, 20H ;用指定属性写一空格 MOV AH, 9 INT 10H MOV AH, 0EH ECHO1:
21、MOV AL, SI INC SI INT 10H ;逐个显示字符 CALL DELAY ;调用延时子程序 LOOP ECHO1 ECHO2: RET ECHO ENDP DELAY PROC NEAR ;延时子程序 PUSH BX PUSH CX MOV BX, 500 WAIT0: MOV CX, 0FFFFH WAIT1: LOOP WAIT1 DEC BX JNZ WAIT0 POP CX POP BX RET DELAY ENDP CSEG ENDS END START 五、实验步骤 1D:MASMMASM SY7.ASM 2D:MASMLINK SY7.OBJ 3D:MASMSY7
22、.EXE 4D:MASMDEBUG SY7.EXE 六、实验结论 1说明参考程序所完成的功能? 2什么是 BIOS 中断调用? 3分析实验结果及所遇到的问题,并说明解决的方法。 实验八实验八 定时器中断程序设计定时器中断程序设计 一、实验目的与要求 1掌握中断的基本概念; 2会将定时器中断子程序的入口地址写入中断向量表中; 3理解简单的多任务操作。 二、实验内容 将自编的显示系统时间的中断服务子程序驻留在内存中,通过定时器中断 (向量号为 1CH)定时调用中断服务子程序来显示系统时间,同时可以在命令 提示符下运行并调试其他程序,实现多任务操作。运行可执行文件并加以调试。 分析运行结果。 三、实
23、验设备 微型计算机(80 x86 系列) 。 四、实验参考程序 CODE SEGMENT ASSUME CS:CODE, DS:CODE START: JMP GOSET OLDCUR DW ? OLD1C DW 2 DUP(?) NEWINT1C: PUSHF CALL DWORD PTR CS:OLD1C ;OLD1C 中为 1CH 的中断向量 PUSH AX PUSH BX PUSH CX PUSH DX XOR BH, BH ;BH 清零 MOV AH, 3 ;INT 10H 的 3 号功能为读光标位置, INT 10H ;BH=页号,返回参数 DH/DL=行/列 MOV CS:OLD
24、CUR, DX ;光标位置保存在 OLDCUR 单元中 MOV AH, 2 ;INT 10H 的 2 号功能为置光标位置, BH=页号 XOR BH, BH ;清零,表明为 0 页 MOV DX, 0146H ; DH/DL=行/列,设置显示的时间在 1 行/70 列 INT 10H MOV AH, 2 ;INT 1AH 的 2 号功能为读电池供电时钟时间 INT 1AH ;出口参数:CH:CL:DH=时:分:秒 PUSH DX PUSH CX POP BX ;CX 压入堆栈的值弹出给 BX PUSH BX CALL SHOWBYTE ;此处调用为显示小时 CALL SHOWCOLON ;显示
25、: POP BX XCHG BH, BL ;BL 中为分钟值 CALL SHOWBYTE ;此处调用为显示分钟 CALL SHOWCOLON ;显示: POP BX ;DX 压入堆栈的值弹出给 BX CALL SHOWBYTE ;BL 中为秒值 MOV DX, CS:OLDCUR ;恢复保存在 OLDCUR 单元中的光标位置 MOV AH, 2 XOR BH, BH INT 10H POP DX POP CX POP BX POP AX IRET ;中断返回指令 SHOWBYTE PROC NEAR ;将 BX 中的值转换为 ASCII 码后显示在屏幕上 PUSH BX MOV CL, 4 M
26、OV AL, BH ;BH 中的值可以是当前时:分:秒 SHR AL, CL ADD AL, 30H ;计算 ASCII 码 CALL SHOW ;在光标位置显示字符和属性 CALL CURMOVE ;子程序的功能为读当前光标并后移 POP BX MOV AL, BH AND AL, 0FH ADD AL, 30H CALL SHOW CALL CURMOVE RET SHOWBYTE ENDP SHOWCOLON PROC NEAR ;显示: MOV AL,: CALL SHOW CALL CURMOVE RET SHOWCOLON ENDP CURMOVE PROC NEAR ;读当前光标并后移 PUSH AX PUSH BX PUSH CX PUSH DX MOV AH, 3 ;INT 10H 的 3 号功能为读光标位置 MOV BH, 0 INT 10H INC DL ;列增 1,光标
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 广东水利电力职业技术学院《数字逻辑设计》2023-2024学年第一学期期末试卷
- 广东生态工程职业学院《建筑装饰工程概预算》2023-2024学年第一学期期末试卷
- 广东梅州职业技术学院《地下水污染与防治》2023-2024学年第一学期期末试卷
- 【2022届走向高考】高三数学一轮(人教B版)基础巩固:第2章-第1节-函数及其表示
- 广东省揭阳市榕城区2024-2025年第一学期期终质量检测小学五年级语文科试卷(有答案)
- 【金版学案】2014-2021学年高中历史优化训练(人教版必修3)第11课-物理学的重大进展
- 【全程复习方略】2020年人教A版数学理(福建用)课时作业:第十章-第九节离散型随机变量的均值与方差
- 2022届《创新设计》数学一轮课时作业(文科)(浙江专用)-第四章-三角函数、解三角形-4-2
- 四年级数学(四则混合运算)计算题专项练习与答案汇编
- 会议应急预案策划包括哪些内容
- 评判创业计划书
- 银行信访工作培训课件
- 北京市西城区2023-2024学年部编版七年级上学期期末历史试卷
- T-CPIA 0054-2023 光伏发电系统用柔性铝合金电缆
- 广东省博物馆
- 徐州市2023-2024学年九年级上学期期末道德与法治试卷(含答案解析)
- 农业信息化实现农业现代化的数字化转型
- 《义务教育道德与法治课程标准(2022年版)》
- 20以内退位减法口算练习题100题30套(共3000题)
- 调味品年终总结汇报
- 无人机遥感技术与应用
评论
0/150
提交评论