1 / 4
文档名称:

实验四DMA.doc

格式:doc   页数:4页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

实验四DMA.doc

上传人:中国课件站 2011/9/6 文件大小:0 KB

下载得到文件列表

实验四DMA.doc

文档介绍

文档介绍:实验四 DMA传送实验
实验目的:
掌握DMA方式的工作原理和8237的编程使用方法。
:
1. 按照实验指导第61页的实验接线图连接硬件线路
2. 对照【】的程序清单键入源程序,经汇编和连接后运行程序
实验电路
实验程序:
DISP MACRO VAR ;宏定义
MOV AH,09H ;将形参中所存的以结尾的字符串显示在屏幕上
MOV DX,OFFSET VAR
INT 21H
ENDM
SCANKEY MACRO ;宏定义
LOCAL LLL ;为标号LLL建立唯一的从??0001H到??FFFFH的符号
LLL: MOV AH,01H ;等待是否有键按下
INT 16H
JZ LLL ;无则继续等待
MOV AH,0 ;否则读出键值
INT 16H
ENDM
DATA SEGMENT
TEXT DB 'THE QUICK BROWN FOX JUMPS OVER LAZY DOG'
DB 0DH,0AH
DB 'THE QUICK BROWN FOX JUMPS OVER LAZY DOG'
DB 0DH,0AH
DB 'THE QUICK BROWN FOX JUMPS OVER LAZY DOG'
DB 0DH,0AH,'$'
COUNT EQU $-TEXT ;TEXT的总长度
BUF DB COUNT DUP(?)
MESG DB 'TO MAKE A DMA REQUEST!'
DB 'THEN STRIKE ANY KEY!',0DH,0AH,'$'
DATA ENDS
STACK SEGMENT STACK 'STACK'
DB 256 DUP(?)
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
BEG: MOV AX,DATA ;主程序部分
MOV DS,AX ;装入数据段
CALL I8237R ;DMA通道1读出初始化
DISP MESG ;显示操作提示
SCANKEY ;等待直到有键按下,读出键值
LAST1: IN AL,08H ;读DMA状态寄存器
AND AL,02H ;传送是否结束
JZ LAST1 ;否则继续等待传送结束
CALL I8237W ;DMA通道1写入初始化
DISP MESG ;显示操作提示
SCANKEY ;等待直到有键按下,读出键值
LAST2: IN AL,08H ;读DMA状态寄存器
AND AL,02H ;传送是否结束
JZ LAST2 ;否则继续等待传送结束
DISP BUF ;显示BUF中DMA读写传送的最后结果
MOV AH,4CH
INT 21H ;结束程序并返回DOS
I8237R PROC ;DMA通道1读出初始化
MOV AL,05H
OUT 0AH,AL ;通道1屏蔽触发器置1
MOV AL,01001001B ;通道1方式字,单字节写传送
OUT 0BH,AL ;自动加1变址,不自动预置
MOV AL,0
OUT 0CH,AL ;先/后触发器置0
MOV AX,DATA ;AX为TEXT