实验1
更新时间:2023-11-22 11:56:01 阅读量: 教育文库 文档下载
实验一 汇编语言程序设计
一、实验目的
1、学习8086汇编语言程序的基本结构和程序设计的基本方法。
2、熟悉在PC机上建立、汇编、连接、调试和运行汇编语言程序的全过程。 二、实验预习要求
1、认真阅读预备知识中汇编语言的上机步骤的说明,熟悉汇编程序的建立、汇编、连接、执行、调试的全过程。
2、根据实验要求预先编写汇编语言源程序。 三、实验内容
计算a+b-c,并将结果显示在屏幕上。其中a,b,c均为两位十进制数,要求编写汇编语言源程序,并分别利用以下三组初值进行程序调试。
1、a=30,b=40,c=20 2、a=80,b=50,c=10 3、a=10,b=20,c=50 四、实验报告要求
整理出完整的实验程序和使用不同实验数据时的运行结果。 DATAS SEGMENT DATA_A DB 03H DATA_B DB 02H DATA_C DB 06H
ASCII DB 5 DUP(?),0DH,0AH,'$' DATAS ENDS
STACKS SEGMENT ;此处输入堆栈段代码 STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS START:
MOV AX,DATAS MOV DS,AX ;此处输入代码段代码 MOV AL,DATA_A MOV BL,DATA_B ADD AL,BL MOV BL,DATA_C CMP AL,BL
JB X1 ;AL ;SUB AL,BL ;AL>BL 继续执行 JMP X2 X1:XCHG AL,BL ;MOV CL,AL ;MOV AL,BL ;MOV BL,CL ;XOR AH,AH PUSH AX MOV DL,'-' MOV AH,02H INT 21H POP AX X2:;PUSH AX SUB AL,BL MOV CX,5 XOR DX,DX ;MOV AX,AL ;可能需要修改 ;POP AX XOR AH,AH LEA DI,ASCII MOV BX,0AH X3:;取ASCII码 DIV BX ADD DL,30H MOV [DI+2],DL ;INC DI DEC DI AND AX,AX JZ X4 ;判断是否除尽 MOV DL,0 LOOP X3 X4:LEA DX,ASCII MOV AH,09H INT 21H MOV AH,4CH INT 21H CODES ENDS END START 实验二 数码显示 一、实验目的 了解LED数码管动态显示的工作原理及编程方法。 二、实验内容 编制程序,使数码管显示“HELLO”字样。 三、实验程序框图 开始初始化显示缓冲区置显示缓冲区首址为显示指针初值置选通位码初值查表取字形代码送字形口Y位码送字位口延时N位码右移一位显示指针加1第五位显示完? 四、DICE-8086K软件使用简介 1.启动和联机 双击桌面上的“DICE-8086K”快捷图标,即可运行DICE-8086K软件,屏幕显示DICE-8086K软件的工作窗口,底边状态栏由“下位机没有连接….”变成“连接上下位机”,说明联机成功,否则会弹出对话框提示:“下位机没有连接…”。单击工具栏上的“重新连接” 按钮可以联机,或者关闭DICE-8086K软件,重新运行。一定要保证上下位机联机成功。注意:与实验箱连接时,要用串口和上面的端口相连,通讯开关打到最下端86/88档。 2.编辑源程序 进入DICE-8086K软件后,默认会打开一个编辑窗口Editor,此时可在此编辑、输入源程序。或单击菜单栏“文件”或工具栏:“新建”图标,建立一个新的源程序编辑窗口。 源程序编写完成后要先保存,保存的文件名后缀为.ASM ,注意保存路径中不要出现中文,否则会导致编译失败!保存后,依次单击“调试”、“编译装载”或工具栏上的编译装载图标,几秒钟后会弹出“编译成功”对话框,单击“OK”,再等几秒钟会弹出“装载成功”对话框,单击“OK”即编译装载完毕。如编译出错,会提示错误信息,待修改原文件后,重新编译装载即可。注意:编译只能发现语法错误,不能发现功能错误! 3.运行 单击菜单栏“调试”下的“连续运行”或单击工具栏的连续运行图标,即可快速连续运行程序。单击菜单栏“调试”下的“程序单步”或单击工具栏的程序单步图标,即可单步运行程序。 4.复位 程序装载到下位机后,若发现功能错误,要先复位,实验箱中央黑色圆钮为复位按钮。复位后,重新修改原程序,然后编译装载运行。 五、实验步骤 1.根据实验要求在DICE-8086K环境下编写源程序。 2.编译装载源程序,然后连续运行,在LED数码管上显示输出“HELLO”。 注意:字形口端口地址为0FF21H,字位口地址为0FF20H。6组LED对应字位口的低6位,输出0被选中。字形口输出0相应发光二极管亮。 六、实验报告 整理出详细的实验程序,实验程序如下: CODE SEGMENT ASSUME CS:CODE START: JMP TO DATA DB 89H,86H,0C7H,0C7H,0C0H TO:LEA SI,DATA MOV BL,11101111B NEXT: MOV DX,0FF20H MOV AL,BL OUT DX,AL ROR BL,1 CMP AL,10111111B JZ TO MOV DX,0FF21H MOV AL,[SI] OUT DX,AL INC SI CALL DELAY JMP NEXT DELAY PROC MOV CL,0FFH X1:DEC CL JNZ X1 DELAY ENDP HLT CODE ENDS END START 实验三 8255A模拟交通灯 一、实验目的 掌握通过8255A并行口传输数据的方法,以控制发光二极管的亮与灭。 二、实验内容 用8255做输出口,控制12个发光二极管亮灭,模拟交通灯管理 三、实验要求 1. 通过8255A控制发光二极管,PB4-PB7对应黄灯,PC0-PC3对应红灯,PC4-PC7对 应绿灯,模拟交通灯的管理。 2. 交通灯的亮灭规律如下:设有一个十字路口,1、3为南北方向,2和4为东西方向。 初始状态为四个路口的红灯全亮,之后,1、3路口的绿灯亮,2、4路口的红灯亮,1、3方向通车。延时一段时间后,1、3路口的绿灯熄灭,而黄灯开始闪烁,闪烁若干次后1、3路口红灯亮,同时2、4路口的绿灯亮,2、4路口方向通车,延时一段时间后,2、4路口的绿灯熄灭,黄灯开始闪烁,闪烁若干次后,再切换到1、3路口方向,之后,重复上述过程。 3. 程序中设定8255A的工作模式及三个端口均工作在方式0,并处于输出状态。8255A 端口地址为0FF28H-0FF2BH。 4. 各发光二极管共阳极,使其点亮应使8255A相应端口输出为0。 四、实验步骤 1. 根据实验要求连接好实验线路 2. 编写实验程序 3. 编译装载后运行程序,观察结果 五、实验报告 编写完整的实验程序。 CODE SEGMENT ASSUME CS:CODE IOCONPT EQU 0073H IOAPT IOBPT IOCPT EQU 0070H EQU 0071H EQU 0072H IOBDATA EQU 0500H CONTPORT EQU 00DFH DATAPORT EQU 00DEH DATA1 START: IOLED: EQU 0640H JMP IOLED CALL FORMAT CALL LEDDISP MOV AX,0H MOV DS,AX MOV AL,82H MOV DX,IOCONPT OUT DX,AL MOV DX,IOBPT IN AL,DX MOV BYTE PTR DS:[0501H],AL MOV DX,IOCONPT MOV AL,80H OUT DX,AL MOV DX,IOBPT MOV AL,DS:[0501H] OR AL,0F0H OUT DX,AL MOV DX,IOCPT MOV AL,0F0H OUT DX,AL CALL DELAY1 MOV DX,IOCPT OUT DX,AL CALL DELAY1 CALL DELAY1 OR AL,0F0H OUT DX,AL MOV CX,8H MOV AL,DS:[0501H] AND AL,10101111B OUT DX,AL CALL DELAY2 OR AL,01010000B OUT DX,AL CALL DELAY2 LOOP IOLED1 MOV AL,0F0H OUT DX,AL CALL DELAY2 MOV AL,01011010B OUT DX,AL CALL DELAY1 CALL DELAY1 OR AL,0F0H OUT DX,AL MOV CX,8H MOV AL,DS:[0501H] AND AL,01011111B OUT DX,AL CALL DELAY2 IOLED0: MOV AL,10100101B IOLED1: MOV DX,IOBPT MOV DX,IOCPT IOLED2: MOV DX,IOBPT OR AL,10100000B OUT DX,AL CALL DELAY2 LOOP IOLED2 MOV DX,IOCPT MOV AL,0F0H OUT DX,AL CALL DELAY2 JMP IOLED0 PUSH CX MOV CX,0030H CALL DELAY2 LOOP DELY2 POP CX POP AX RET DELAY1: PUSH AX DELY2: DELAY2: PUSH CX MOV CX,8000H POP CX RET MOV DX,CONTPORT OUT DX,AL MOV BYTE PTR DS:[0600H],00 CMP BYTE PTR DS:[0600H],07H JA LED2 MOV BL,DS:[0600H] MOV BH,0H MOV AL,CS:[BX+DATA1] OUT DX,AL ADD BYTE PTR DS:[0600H],01H JNZ LED1 RET DELA1: LOOP DELA1 LEDDISP:MOV AL,90H LED1: MOV DX,DATAPORT LED2: FORMAT: MOV BX,0 MOV WORD PTR DS:[BX+0640H],405BH ADD BX,2 MOV WORD PTR DS:[BX+0640H],4040H ADD BX,2 MOV WORD PTR DS:[BX+0640H],6D6DH ADD BX,2 MOV WORD PTR DS:[BX+0640H],7F5BH RET CODE ENDS END START
正在阅读:
实验111-22
2022年关于民法典宣传工作总结范文三篇03-23
上海五角场综合体项目设计任务书 - 图文05-12
与蚊子战斗作文500字06-17
WebKit引擎介绍06-14
高校实验室建设与管理存在的问题及对策建议12-28
创建生态文明村工作总结12-25
计量经济学期末试题211-02
税务机关案件集体审理制度11-29
2016年项目评估考核题目与答案01-17
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 实验
- 人教版四年级上册语文《巨人的花园》教学 设计
- 元日教案
- 0gp%nqjw2008年中华人民共和国广东海事局拟录用工作人员名单
- 新疆地方菜制作课程标准
- 材料分析方法题库及答案
- 苏教版六年级数学下册试卷第三单元
- 全才和专才辩论几个致命问题及解答(本人原创)
- 六年级语文下学期期末考试试题 新人教版 附解析
- 《高分子化学》习题与答案
- 现代远程教育2016年上半年 考试大作业
- 社保卡 社会保障卡知识及答案
- 第七单元 电子表格中的数据处理
- 《男生贾里全传》检测题发件
- ComBoBox消息触发事件
- 语言连贯教案
- 三输入与或门设计
- 全国扶贫开发工作会议解读测试满分答案(安徽干部教育在线)
- 定语从句经典练习题
- 仁爱版英语七年级下册Unit7Topic2导学案(无答案)
- 人际沟通试卷