logo资料库

微型计算机原理与接口技术实验报告.doc

第1页 / 共28页
第2页 / 共28页
第3页 / 共28页
第4页 / 共28页
第5页 / 共28页
第6页 / 共28页
第7页 / 共28页
第8页 / 共28页
资料共28页,剩余部分请下载后查看
实验二 8259A硬件中断实验
实验三 可编程定时器/计数器8253实验
一.实验要求
二.实验目的
三.实验说明
四.实验程序框图
实验四 并行接口8255A输入输出实验
(一) 8255A输出实验
一. 实验要求
二. 实验目的
三. 实验说明
四. 实验程序框图
(二) 开关状态显示实验
一. 实验要求
二. 实验目的
三 实验说明
四. 实验程序框图
(三) 双色灯实验
一.实验要求
二.实验目的
三.实验说明
四. 实验程序框图
实验五 A/D转换实验
一.实验要求
二.实验目的
三.实验说明
微型计算机原理与接口技术 实验报告 实验名称: 实验一 INTEL88 软件实验 实验二 8259A 硬件中断实验 实验三 可编程定时器/计数器 8253 实验 实验四 并行接口 8255A 输入输出实验 实验五 A/D 转换实验 实验六 D/A 转换实验 班 学 姓 级: 号: 名: 指导老师: 王俊宏 实验一 INTEL88 软件实验
(一) 两个多位十进制数相减实验 1.实验要求 将两个多位十进制数相减,要求被减数,减数均以 ASCII 码形式按顺序存放在以 DATAI 和 DATA2 为首的 5 个内存单元中(低位在前),并且先后在数码管上显示出来,相减的结果转 化为 ASCII 码送回 DATA。 2.实验目的 1.学习数据传送和算术运算指令的用法。 2.熟悉在 PC 机上建立、汇编、链接、调试和运行汇编语言程序的过程。 3.程序说明: 开始 调用子程序 LEDSHOW 显示被减数和减数 被减数和减数转换成十六进制数 设置计数值 清除最低进位位 带进位减 结果送 RESULT N 调整偏移量 计数值-1=0 Y 调用子程序 LEDSHOW 显示结果 结束
4.源程序清单及执行结果: DATA SEGMENT DATA1 DB 33H,39H,31H,37H,38H ;第一个数据(作为被减数) DATA2 DB 36H,35H,30H,38H,32H ;第二个数据(作为减数) MES1 DB '-','$' MES2 DB '=','$' DATA ENDS STACK SEGMENT ;堆栈段 STA DB 20 DUP(?) TOP EQU 20 STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK,ES:DATA START: MOV AX,DATA MOV DS,AX MOV ES,AX MOV AX,STACK MOV SS,AX MOV AX,TOP MOV SP,AX MOV SI,OFFSET DATA1 MOV BX,05
CALL DISPL ;显示被减数 MOV AH,09H LEA DX,MES1 INT 21H MOV SI,OFFSET DATA2 MOV BX,05 ;显示减数 CALL DISPL MOV AH,09H LEA DX,MES2 INT 21H MOV SI,OFFSET DATA1 MOV DI,OFFSET DATA2 CALL SUBA ;减法运算 MOV SI,OFFSET DATA1 MOV BX,05 ;显示结果 CALL DISPL MOV DL,0DH MOV AH,02H INT 21H MOV DL,0AH MOV AH,02H INT 21H
INT 21H MOV AX,4C00H INT 21H DISPL PROC NEAR ;显示子功能 DSI: MOV AH,02 MOV DL,[SI+BX-1] ;显示字符串中一字符 INT 21H DEC BX ;修改偏移量 JNZ DSI RET DISPL ENDP SUBA PROC NEAR MOV DX,SI MOV BP,DI MOV BX,05 SU1: SUB BYTE PTR[SI+BX-1],30H SUB BYTE PTR[DI+BX-1],30H DEC BX ;将 ASCII 码表示的数字串 JNZ SU1 ;转化为十六进制的数字串 MOV SI,DX MOV DI,BP MOV CX,05 ;包括进位,共 5 位 CLC ;清进单位 SU2: MOV AL,[SI]
MOV BL,[DI] SBB AL,BL ;带进位相减 AAS ;非组合 BCD 码的减法调整 MOV [SI],AL ;结果送被减数区 I NC SI INC DI ;指向下一位 LOOP SU2 ;循环 MOV SI,DX MOV DI,BP MOV BX,05 SU3: ADD BYTE PTR [SI+BX-1],30H ADD BYTE PTR [DI+BX-1],30H DEC BX ;十六进制的数字串转化 ASCII 码表示的数字串 JNZ SU3 RET SUBA ENDP LED DB DB DB DB DB DB DB DB 45 DUP(00H) 40H,80H,00H ;减号,点号字型码 3FH,06H,5BH,4FH ;0-3 字型码 66H,6DH,7DH,07H ;4-7 字型码 7FH,6FH ;8-9 字型码 7 DUP(00H) 77H,7CH,39H,5EH ;A-D 字型码 79H,71H,7DH,76H ;E-H 字型码
DB DB DB DB 0FH ; I 字型码 7 DUP(00H) 67H,50H,6DH ;Q-S 字型码 11 DUP(00H),08H ;"_"字型码 LEDSHOW ENDP DELAY PROC ;延时子程序 AX CX PUSH PUSH PUSHF MOV AL, 0AH DELAY1:MOV CX, 0FFFFH DELAY2:NOP LOOP DELAY2 DEC AL JNZ DELAY1 POPF POP POP RET CX AX DELAY ENDP OVER: NOP HLT CODE ENDS END START ;执行结果:(按显示顺序)64345 44621 19724
(二)两个数相乘的实验 1.实验要求: 实现十进制数的乘法,被乘数和乘数均以 ASCII 码形式存放在内存中,并先后显示到数码管 上,乘法结果在数码管上显示出来。 2.实验目的: 掌握乘法指令和循环指令的用法。 3.程序说明: 开 始 乘 数 → B L B L 的 数 转 化 为 十 六 进 制 数 S I 指 向 乘 数 D I 指 向 结 果 区 ( 预 清 0 ) 设 置 计 数 值 被 乘 数 [ S I ] 单 元 与 B L 相 乘 A A M 调 整 结 果 → [ D I ] D I + 1 指 向 下 一 单 元 , 进 位 → [ D I ] N 计 数 值 - 1 = 0 Y 显 示 结 果 结 束 4.源程序清单及执行结果: N CODE EQU 4 START: SEGMENT ASSUME PUSH POP LEA CS:CODE,DS:CODE CS DS SI,DATA1
分享到:
收藏