📄 sy3-2.asm
字号:
; 实验三:开关输入实验 SY3-2.ASM
PA55 EQU 280H
PB55 EQU 281H
PC55 EQU 282H
P55CTL EQU 283H
DATE SEGMENT
MESS2 DB 'Press any key to exit !',0DH,0AH,'$'
DCTBL DB 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,77h,7ch,39h,5eh,79h,71h
NUM DW ?
DATE ENDS
STAC SEGMENT PARA STACK 'STACK'
STA DW 50 DUP(?)
TOP EQU LENGTH STA
STAC ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATE,SS:STAC,ES:DATE
START: MOV AX,DATE
MOV DS,AX
MOV ES,AX
MOV AH,09H
MOV DX,OFFSET MESS2
INT 21H
MOV DX,P55CTL
MOV AL,9BH
OUT DX,AL
LOP0: MOV DX,PB55
IN AL,DX
MOV BL,AL
MOV AH,00H
MOV NUM,AX
CALL DISP
MOV DL,0FFH
MOV AH,06H
INT 21H
JZ LOP0
QUIT: MOV AX,4C00H
INT 21H
DISP PROC NEAR
PUSH DS
PUSH CX
PUSH AX
DISP0: MOV CX,NUM
MOV AX,CX
AND AL,0FH
MOV AH,AL
MOV AL,CL
MOV CL,04H
SHR AL,CL
MOV CH,AL
MOV CL,AH
DISPL: mov dx,288h
mov al,02h
out dx,al
mov dx,284h
mov al,cl
mov ah,0
lea bx,dctbl
mov si,ax
mov al,[bx+si]
out dx,al
CALL DELAY1
DISPH: mov dx,288h
mov al,01h
out dx,al
mov dx,284h
mov al,ch
mov ah,0
lea bx,dctbl
mov si,ax
mov al,[si+bx]
out dx,al
CALL DELAY1
POP AX
POP CX
POP DS
RET
DISP ENDP
DELAY1 PROC NEAR
PUSH CX
MOV CX,0F00H
LOOP $
POP CX
RET
DELAY1 ENDP
DELAY2 PROC NEAR
PUSH AX
PUSH CX
MOV CX,030H
DL21: CALL DELAY1
LOOP DL21
POP CX
POP AX
RET
DELAY2 ENDP
CODE ENDS
END START
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -