实现由8086cpu 实现 开关控制led亮关
原理还是很深奥的害
DATAS SEGMENT ;数据段
;A7 =1 A5 A6 与非=0 A4A3A0=4 1 0 0 A2 A1 0 0 A 01 B 10C 11 CTRL
PORTA EQU 0F0H
PORTB EQU 0F2H
PORTC EQU 0F4H
CTRL EQU 0F6H
DATAS ENDS
EXTRA SEGMENT ; ;附加段
EXTRA ENDS
;
STACK SEGMENT PARA STACK ‘STACK’ ;堆栈段
STAPN DB 100 DUP (00H) ;定义100字节空间
TOP EQU LENGTH STAPN
STACK ENDS
CODE SEGMENT
MAIN PROC FAR ;过程定义语句
;说明4个段寄存器分别与哪些段有关
ASSUME CS:CODE, DS:DATA,ES:EXTRA,SS:STACK
START:
MOV AX,DATAS
MOV DS,AX
MOV AX, EXTRA
MOV ES,AX
MOV AX,STACK
MOV SS,AX
;从这开始写代码
MOV DX,CTRL ;控制字所在地址
MOV AL,90H ;控制字为90h
OUT DX,AL ;控制字写入地址
KEY_TEST: MOV DX,PORTA
IN AL,DX ;读A端口数据
MOV DX,PORTB
OUT DX,AL ;将A端口数据输出到b端口
MOV CX,40H ;延时cx个
CALL DELAY ;延时程序
JMP KEY_TEST
RET
MAIN ENDP ;MAIN过程结束
DELAY PROC
PUSH CX
LOOP $ ;延时cx
POP CX
RET
ENDP
CODE ENDS ;代码段结束
END MAIN ;整个源代码结束