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 + -
显示快捷键?