sy2-2.asm

来自「硬件电路测试参考数据包」· 汇编 代码 · 共 100 行

ASM
100
字号
;       实验二:读乒乓开关,数码管输出实验  SY2-2.ASM

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      32 DUP(?)
TOP     EQU     LENGTH STA
STAC   ENDS

CODE    SEGMENT
ASSUME  CS:CODE,DS:DATE,SS:STAC,ES:DATE
START:  NOP
	MOV     AX,DATE
	MOV     DS,AX
	MOV     ES,AX
	MOV     AH,09H
	MOV     DX,OFFSET MESS2
	INT     21H

LOP0:   NOP
	MOV     DX,280H
	IN      AL,DX
	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,050H
DL21:   CALL    DELAY1
	LOOP    DL21
	POP     CX
	POP     AX
	RET
DELAY2  ENDP

CODE    ENDS
	END     START

⌨️ 快捷键说明

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