微机实验硬件报告.
微机原理硬件实验报告
班级:
姓名:
序号:
日 期: 2012年 月
实验一 熟悉实验环境及IO的使用
一、实验目的
通过实验了解和熟悉实验台的结构,功能及使用方法。
通过实验掌握直接使用Debug的I、O命令来读写I/O端口。
学会Debug的使用及编写汇编程序。
二、实验内容
学习使用Debug命令,并用I、O命令直接对端口进行读写操作。
用汇编语言编写跑马灯程序。实现功能:
通过读入端口状态,选择工作模式(灯闪烁方式、速度等);
通过输出端口控制灯的工作状态(低电平灯亮)。
1. 实验板的IO端口地址为 E8E0H
在Debug 下,I 是读命令。(即读输入端口的状态---拨码开关的状态)
O 是写命令。(即向端口输出数据--- 通过发光管来查看)
进入Debug 后,读端口,拨动实验台上八位拨码开关
输入 I端口地址,回车,屏幕显示xx表示从端口读出的内容,即八位开关的状态ON是0,OFF 是1
写端口:输入O端口地址xxxx表示要向端口输出的内容)回车
查看实验台上的发光二极管状态,0 是灯亮,1 是灯灭。
2. 在 Debug 环境下,用 a 命令录入程序,用 g 命令运行
C>Debug -a
movdx, 端口地址
moval,输出内容
outdx, al
movah, 0bh
int21h
oral, al
jz0100
int20h
-g
运行查看结果 ,修改输出内容 ,再运行查看结果
分析
movah, 0bh
int21h
oral, al
jz0100
int20h
该段程序的作用:检测键盘有没有按键,有则返回DOS。没有继续执行。
在DOS的DEBUG模式下,地址不用添加十六进制H标志。地址默认为16进制。普通数据为了区分需要添加H。
利用 EDIT 工具编写汇编写跑马灯程序程序 ,实现功能:
A.通过读入端口状态(ON 为低电平),选择工作模式(灯的闪烁方式、速度等)。
B.通过输出端口控制灯的工作状态(低电平灯亮) C>EDIT 文件名.asm
3.1流程图
no
yes
3.2led硬件连接图
3.2源程序
DATA SEGMENT
DB 100 DUP(0)
DATA ENDS
STACK SEGMENT STACK 'STACK' ;Define STACK Segment
DB 100 DUP(0)
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
;Use two loops to delay
;Read in to decide how long to loop, this can control speed
PUASE MACRO
LOCAL LOPP1,LOPP2,HER
PUSH AX
PUSH BX
PUSH DX
HER: READ;here can implement PAUSE function
SHL AH,1
SHL AH,1;D6 control pause
JC HER
MOV DH,AL
AND DH,6FH;Used to control running speed
LOPP1:
MOV AX,0FFFH
LOPP2:
DEC AX
JNZ LOPP2
DEC DX
JNZ LOPP1;Two loops , so time is long enough
POP DX
POP BX
POP AX
ENDM
READ MACRO;Read in control information
MOV DX,0E8E0H
IN AL,DX
MOV AH,AL
ENDM
START:;Main program
MOV AX,DATA
MOV DS,AX
MOV DX,0E8E0H
LOP:
READ
SHL AL,1;D7 is the switch
JNC LOP
SHR AH