⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pcdma.asm

📁 此程序是微机与接口技术的课程设计源程序
💻 ASM
字号:
;FILENAME: PCDMA.ASM 
;内容:DMA数据传输
DATA  SEGMENT
MESS1	DB 'INPUT SOURCE DMA ADDR' ,0DH,0AH,'$'
MESS2 	DB 'INPUT DIRECTION DMA ADDR ',0DH,0AH,'$'
SBUF  	DB 5 DUP(?)
DBUF  	DB 5 DUP(?)
DATA  	ENDS
STACK 	SEGMENT STACK 'STACK'
       	DB 100 DUP(?)
STACK 	ENDS
CODE  	SEGMENT
       	ASSUME CS:CODE, DS:DATA, SS:STACK
START:	MOV AX,DATA
       	MOV DX, AX
       	MOV BX, 0000H
       	MOV AL,05H         		;设置通道1的屏蔽字
       	OUT 0AH, AL
       	OUT 0CH,AL         		;清除先后触发器
       	MOV AL, 01001001B
       	OUT 0BH,AL         		;设置通道1的模式字:单字节,读传输
       	MOV AL,BL          		;设置传输起始地址为60000H
      	OUT 02H, AL
      	MOV AL, BH
       	OUT 02H,AL
       	MOV AL, 06H
       	OUT 83H,AL
       	MOV AL,00H         		;传输字节数为800H
       	OUT 03H,AL
       	MOV AL, 08H
       	OUT 03H,AL
       	MOV AL,01H         		;去除通道1的屏蔽字
       	OUT 0AH, AL
       	PUSH AX                		;延迟
       	POP AX
WAIT0:	IN AL,08H           		;测试DMA状态字
       	AND AL, 02H
       	JZ WAIT0            		;传输没结束则循环等待
       	MOV AL,05H         		;设置通道1屏蔽字
       	OUT 0AH, AL
       	OUT 0CH,AL         		;清除先后触发器
       	MOV AL, 01000101B   		;

       	OUT 0BH, AL         		;设置通道1为单字节写传输
       	MOV AL ,BL          		;设置传输起始地址为70000H
       	OUT 02H, AL
       	MOV AL ,BH
       	OUT 02H, AL
       	MOV AL, 07H
       	OUT 83H,AL
       	MOV AL,00H         		;传输字节数为800H
       	OUT 03H,AL
       	MOV AL, 08H
       	OUT 03H,AL
       	MOV AL,01H         		;去除通道1的屏蔽
       	OUT 0AH, AL
       	PUSH AX
       	POP AX
WAIT1:	IN AL,08H
       	AND AL,02H         		;等待DMA传送结束
       	JZ WAIT1
       	MOV AX, 4C00H        		;返回DOS
       	INT 21H
CODE  	ENDS
       	END START

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -