t8237.asm

来自「一些微机接口的例子」· 汇编 代码 · 共 73 行

ASM
73
字号
;T8237.ASM
;8237DMA传输实验

;***************根据CHECK配置信息修改下列符号值*******************
IOY0         EQU  9C00H        ;IOY0起始地址
;*****************************************************************
MY8237_0     EQU  IOY0+00H*4   ;通道0当前地址寄存器 
MY8237_1     EQU  IOY0+01H*4   ;通道0当前字节计数寄存器
MY8237_2     EQU  IOY0+02H*4   ;通道1当前地址寄存器
MY8237_3     EQU  IOY0+03H*4   ;通道1当前字节计数寄存器
MY8237_8     EQU  IOY0+08H*4   ;写命令寄存器/读状态寄存器
MY8237_9     EQU  IOY0+09H*4   ;请求寄存器
MY8237_B     EQU  IOY0+0BH*4   ;工作方式寄存器
MY8237_D     EQU  IOY0+0DH*4   ;写总清命令/读暂存寄存器
MY8237_F     EQU  IOY0+0FH*4   ;屏蔽位寄存器 

STACK1 SEGMENT STACK
        DW 256 DUP(?)
STACK1 ENDS

CODE SEGMENT
	ASSUME CS:CODE

START:  MOV DX,MY8237_D   ;写总清命令
        OUT DX,AL

        MOV DX,MY8237_0   ;写通道0当前地址寄存器
        MOV AL,00H               
        OUT DX,AL
        MOV AL,00H     
        OUT DX,AL

       	MOV DX,MY8237_2   ;写通道1当前地址寄存器
        MOV AL,08H        
       	OUT DX,AL
        MOV AL,00H
        OUT DX,AL

        MOV DX,MY8237_1   ;写通道0当前字节计数寄存器
        MOV AL,07H       
        OUT DX,AL
        MOV AL,00H
        OUT DX,AL

        MOV DX,MY8237_3   ;写通道1当前字节计数寄存器
        MOV AL,07H        
        OUT DX,AL
        MOV AL,00H
        OUT DX,AL

        MOV DX,MY8237_B   ;写通道0工作方式寄存器
        MOV AL,88H        
        OUT DX,AL
        MOV AL,85H        ;写通道1工作方式寄存器     
        OUT DX,AL

        MOV DX,MY8237_8   ;写命令寄存器
        MOV AL,81H        
        OUT DX,AL
   
        MOV DX,MY8237_F   ;写屏蔽位寄存器
        MOV AL,00H          
        OUT DX,AL

        MOV DX,MY8237_9   ;写请求寄存器
        MOV AL,04H        
        OUT DX,AL
        
QUIT:   MOV AX,4C00H      ;结束程序退出
        INT 21H
CODE ENDS
     END START

⌨️ 快捷键说明

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