h88s.asm

来自「上课老师给的8086仿真器」· 汇编 代码 · 共 105 行

ASM
105
字号
CODE SEGMENT
ASSUME CS:CODE
	 ORG 1500H
START:	 JMP SERIAL
SECOPORT EQU 0051H
SEDAPORT EQU 0050H
SERIAL: call for8251
	cld
	MOV DS:[077AH],1702H
	MOV DS:[077CH],0501H
	MOV DS:[077EH],0802H
	MOV DS:[0740H],077FH
watrxd: call disp
	MOV DX,SECOPORT
	IN AL,DX
	TEST AL,02H
	JZ watrxd
	MOV DX,SEDAPORT
	IN AL,DX
	MOV BYTE PTR DS:[0701H],AL
wattxd: MOV DX,SECOPORT
	IN AL,DX
	TEST AL,01H
	JZ WATTXD
	MOV DX,SEDAPORT
	MOV AL,BYTE PTR DS:[0701H]
	OUT DX,AL
	MOV BX,DS:[0740H]
	mov ds:[bx],al
	CMP BX,077ah
	jz serial1
	dec BX
	MOV DS:[0740H],BX
	jmp watrxd
serial1:mov ds:[0740h],077fh
	jmp watrxd
disp:	mov dx,077Fh
	mov ah,20h
disp0:	mov cx,00ffh
	mov bx,dx
	mov bl,ds:[bx]
	mov bh,0h
	push dx
	mov dx,0ff22h
	mov al,cs:[bx+1588h]
	OUT DX,AL
	mov dx,0ff21h
	mov al,ah
	OUT DX,AL
disp1:	loop disp1
	pop dx
	dec dx
	shr ah,01h
	jnz disp0
	mov dx,0ff22h
	mov al,0ffh
	OUT DX,AL
	ret
data1:	db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h,0c6h,0a1h
	db 86h,8eh,0ffh,0ch,89h,0deh,0c7h,8ch,0f3h,0bfh

for8251:call t8253
	mov al,65h
	out dx,al
	call l4726
	mov dx,SECOPORT
	mov al,25h
	out dx,al
	call l4726
	mov dx,SECOPORT
	mov al,65h
	out dx,al
	call l4726
	mov dx,SECOPORT
	mov al,4eh
	out dx,al
 	call l4726
	mov dx,SECOPORT
	mov al,25h
	out dx,al
	call l4726
	ret
T8253:	  MOV DX,43H
	  MOV AL,76H
	  out dx,al
	  MOV DX,41H
	  MOV AL,0CH
	  out dx,al
	  MOV DX,41H
	  MOV AL,00H
	  out dx,al
	  mov dx,SECOPORT
	  mov dx,SECOPORT
	  RET
 l4726: push bp
	mov bp,sp
	mov al,0ffh
	mov cl,0ffh
	shr al,cl
	mov byte ptr ds:[0754h],al
	pop bp
	ret
code ends
END  START

⌨️ 快捷键说明

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