當前位置:編程學習大全網 - 編程語言 - 大家幫幫忙,匯編語言編寫的“開關控制指示燈顯示”和“流水燈顯示”代碼的註釋及流程圖。謝謝!急!!!

大家幫幫忙,匯編語言編寫的“開關控制指示燈顯示”和“流水燈顯示”代碼的註釋及流程圖。謝謝!急!!!

開關控制指示燈顯示

MY8255_A EQU 0A860H;8255A口地址

MY8255_B EQU 0A861H;8255B口地址

MY8255_C EQU 0A862H;8255C口地址

MY8255_MODE EQU 0A863H;8255控制口地址

CODE SEGMENT

ASSUME CS:CODE

START: MOV DX,MY8255_MODE

MOV AL,82H

OUT DX,AL ;將控制字82H寫入8255控制口,A口方式0輸出,B口方式0輸入, C口未用到。

A1: MOV DX,MY8255_B

IN AL,DX ;讀8255 B口內容

MOV DX,MY8255_A

OUT DX,AL ; 將前面讀到的B口內容送到A口,即A口內容=B口內容

CALL BREAK ;調用子程序BREAK

JMP A1        ;跳轉到A1

BREAK PROC NEAR ;BREAK子程序

MOV AH,1

INT 16H

JZ RETURN ;讀按鍵字符,ZF=1,則返回;ZF=0,則AL=字符

MOV AX,4C00H

INT 21H       ;返回DOS 

RETURN:RET

BREAK ENDP

CODE ENDS         

END START  

;流水燈顯示

MY8255_A EQU 0b860H;8255A口地址

MY8255_B EQU 0b861H;8255B口地址

MY8255_C EQU 0b862H;8255C口地址

MY8255_MODE EQU 0b863H;8255控制口地址

DATA SEGMENT

LA DB ?;留出1個字節

LB DB ?;留出1個字節

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START: MOV AX,DATA

MOV DS,AX

MOV DX,MY8255_MODE

MOV AL,80H

OUT DX,AL ;控制字80H送入8255控制口,A口、B口都是方式0輸出,C口未用到。

MOV DX,MY8255_A

MOV AL,7FH

OUT DX,AL ;將7FH送入A口

MOV LA,AL ;將7FH送入LA存儲單元

MOV DX,MY8255_B

MOV AL,0FEH

OUT DX,AL ;將FEH送入B口

MOV LB,AL ;將FEH送入LB存儲單元

CALL DALLY

A1: MOV AL,LA

ROR AL,1 ;LA內容循環右移1次

MOV LA,AL

MOV DX,MY8255_A

OUT DX,AL ;將循環右移後的LA內容送A口,其目的是讓A口連接的LED燈依次向右循環點亮

MOV AL,LB

ROL AL,1 ;LB內容循環左移1次

MOV LB,AL

MOV DX,MY8255_B

OUT DX,AL ;將循環左移後的LB內容送B口,其目的是讓B口連接的LED燈依次向左循環點亮

CALL DALLY ;延時,讓壹個LED燈發光穩定之後再點亮另壹個

CALL BREAK ;調用BREAK子程序,看是否有鍵按下

JMP A1 ;跳轉到A1

DALLY: MOV CX,3FFH ;延時子程序

D1: MOV AX,0FFFFH

D2: DEC AX

JNZ D2

LOOP D1

RET

BREAK PROC NEAR ;是否有鍵按下

MOV AH,06H

MOV DL,0FFH

INT 21H

JE RETURN ;若無,則轉RETURN

MOV AX,4C00H

INT 21H ;返回DOS

RETURN:RET

BREAK ENDP

CODE ENDS

END START

  • 上一篇:戴爾筆記本怎麽調鼠標靈敏度
  • 下一篇:關於材料專業轉計算機專業考研的問題
  • copyright 2024編程學習大全網