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

📄 sy6-2.asm

📁 硬件电路测试参考数据包
💻 ASM
字号:
;     实验六  8251通讯实验(自发自收) SY6-2.ASM

DATA    SEGMENT
DATA51  EQU     280H
CTRL51  EQU     281H
TIMER2  EQU     292H       
TIMCTL  EQU     293H
CLKQ4   EQU     187
CLKQ3   EQU     375
CLKQ2   EQU     750
CLKQ1   EQU     1500
CLKQ0   EQU     3000
BPS00   EQU     1200
BPS01   EQU     2400
BPS02   EQU     4800
BPS03   EQU     9600
BPS04   EQU     19200
BPS05   EQU     38400
BPS06   EQU     57600
FACTOR  EQU     16
MES     DB      'NOW YOU CAN PLAY A KEY ON THE CUP_KEYBOARD',0AH,0DH
	DB      'IT WILL DISPLAY ON THE TERMINAL_SCREEN!!',0AH,0DH
	DB      'END "#"',0AH,0DH,0AH,0DH,'$'
DATA    ENDS

STAC    SEGMENT PARA STACk 'STACK'
STA     DB      50 DUP(?)
TOP     EQU     LENGTH STA
STAC    ENDS

CODE    SEGMENT
ASSUME  CS:CODE,DS:DATA
MAIN    PROC    FAR
START:  CALL    SET
	CALL    INIT51
	MOV     AX,DATA
	MOV     DS,AX
	MOV     DX,OFFSET MES
	MOV     AH,09H
	INT     21H
LOP3:   MOV     AH,01H
	INT     21H
	MOV     BL,AL
	MOV     DX,CTRL51
LOP4:   IN      AL,DX
	TEST    AL,01H
	JZ      LOP3
	MOV     DX,DATA51
	MOV     AL,BL
	INC     AL
	OUT     DX,AL

	MOV     CX,0FFFFH
S51:    LOOP    S51
	MOV     CX,0FFFFH
S52:    LOOP    S52

NEXT:   MOV     DX,CTRL51
	IN      AL,DX
	TEST    AL,02H
	JZ      NEXT
NEXT1:  MOV     DX,DATA51
	IN      AL,DX
	MOV     DL,AL
	MOV     AH,02H
	INT     21H

	PUSH    DX
	MOV     DL,20H
	MOV     AH,02H
	INT     21H
	POP     DX

	DEC     DL
	CMP     DL,"#"
	JNZ     LOP3
OVER:   MOV     AX,4C00H
	INT     21H
MAIN    ENDP

INIT51  PROC    NEAR
	MOV     DX,CTRL51
	XOR     AX,AX
	MOV     CX,03H
LOP1:   CALL    CHAROUT
	LOOP    LOP1
	MOV     AL,40H
	CALL    CHAROUT
	MOV     AL,4EH
	CALL    CHAROUT
	MOV     AL,27H
	CALL    CHAROUT
	RET
CHAROUT: OUT    DX,AL
	PUSH    CX
	MOV     CX,02H
LOP2:   LOOP    LOP2
	POP     CX
	RET
INIT51  ENDP

SET     PROC    NEAR
	MOV     DX,0H
	MOV     AX,CLKQ0
	MOV     BX,1000
	MUL     BX
	MOV     BX,BPS05
	DIV     BX
	MOV     DX,00H
	MOV     BX,FACTOR
	DIV     BX
	MOV     BX,AX
	MOV     DX,TIMCTL
	MOV     AL,0B6H
	OUT     DX,AL
	MOV     DX,TIMER2
	MOV     AX,BX
	OUT     DX,AL
	MOV     AL,AH
	OUT     DX,AL
	RET
SET     ENDP
CODE    ENDS
	END     START

⌨️ 快捷键说明

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