微机系统与接口实验考试题目(2014级题目-03)

微机系统与接口实验考试题目(2014级题目-03)

题目要求:使用X86汇编语言实现如下所述功能:

根据开关k0k1k2组成的三位数000~111决定数码管显示,初始从右到左输出稳定的123456:
;三位数的值为0或7时依然从右到左输出稳定的123456,
;三位数的值为1-6时从右到左输出的123456中灭掉相应位,比如为1则数码管上1位置显示空

代码:
A8255_A    EQU 0600H
A8255_B    EQU 0602H
A8255_C    EQU 0604H
A8255_CON  EQU 0606H

SSTACK SEGMENT STACK
	DB 16 DUP(?)
SSTACK ENDS

DATA SEGMENT
		LEDTAB DB 3FH,06H,5BH,4FH,66H,6DH,7DH	;0~6
		NUMBER DB 1H,2H,3H,4H,5H,6H
		NUM DB 00H						;低三位的值
DATA ENDS

CODE  SEGMENT
      ASSUME CS:CODE,DS:DATA
START:
		MOV AX,DATA
		MOV DS,AX

		;8255
		MOV   AL,89H   ;10000001B
		MOV   DX,A8255_CON
		OUT   DX,AL
		
BEGIN:	
		MOV NUM,0H
		MOV   DX,A8255_C
		IN    AL,DX       	;从c口读入

		AND AL,07H
		MOV NUM,AL
		CALL DIS

		JMP BEGIN

DIS PROC
		PUSH AX
		PUSH BX
		PUSH CX
		LEA SI,NUMBER
		MOV AH,00H
		MOV BL,0FEH			;从最左边开始显示
		MOV CX,6H			;显示6位 
AGAIN:
		MOV AL,BL
		MOV DX,A8255_A
		OUT DX,AL
		MOV AL,[SI]
		CMP AL,NUM			;处理0-7,其中0和7不会相等
		JNZ NORMAL			
		MOV AL,00H			;NUM处输出‘空’
		JMP OUTD
NORMAL:				
		LEA DI,LEDTAB
		ADD DI,AX
		MOV AL,[DI]
OUTD:		
		MOV DX,A8255_B 
		OUT DX,AL 
		CALL DELAY1
		CALL CLEAR		;消影处理
		INC SI
		ROL BL,1
		LOOP AGAIN

		POP CX
		POP BX
		POP AX
		RET
DIS ENDP

CLEAR PROC
		PUSH AX
		MOV AL,00H
		MOV DX,A8255_B
		OUT DX,AL
		POP AX
		RET
CLEAR ENDP

DELAY1 PROC
		PUSH CX
		MOV  CX,0FFH
		LOOP $
		POP  CX
		RET
DELAY1 ENDP	

CODE  ENDS
	END START

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值