exp1_1.txt
资源名称:interface.rar [点击查看]
上传用户:hongshyy
上传日期:2007-01-25
资源大小:348k
文件大小:2k
源码类别:
教育系统应用
开发平台:
DOS
- code segment
- assume cs:code
- start:
- cli
- mov cx,1
- mov bx,1
- mov di,1
- mov al,0b0h ;8255A端口A为方式1、输入,端口B为方式0、输出
- out 63h,al
- mov al,09h ;PC4允许中断
- out 63h,al
- mov ax,0
- mov ds,ax
- mov ax,offset irq1 ;中断1偏移地址
- add ax,2000h
- mov si,09h*4
- mov [si],ax
- mov ax,0
- mov [si+2],ax
- mov ax,offset irq7 ;中断7偏移地址
- add ax,2000h
- mov si,0fh*4
- mov [si],ax
- mov ax,0
- mov [si+2],ax
- in al,21h
- and al,7dh ;打开中断1和中断7
- out 21h,al
- mov dx,43h ;设定控制端口
- mov al,10110100B ;写入控制字,设定8253工作在方式2,先低字节,后高字节,十进制计数
- out dx,al
- mov dx,42h ;设计数器2
- mov al,10011010b ;写计数初值低字节
- out dx,al
- mov al,00101110b ;写计数初值高字节
- out dx,al
- mov al,11111111b ;控制灯初始化为都不亮
- out 61h,al
- mov al,20h
- out 20h,al
- a1: sti
- hlt
- jmp a1
- irq7:
- cmp bx,100
- jne contiue
- mov bx,1
- cmp cx,45
- jne count
- mov cx,1 ;循环记数
- count:
- cmp cx,15
- jbe green
- cmp cx,16
- je nolight
- cmp cx,17
- je green
- cmp cx,18
- je nolight
- cmp cx,19
- je green
- cmp cx,20
- je nolight
- cmp cx,21
- cmp cx,40
- jbe red
- cmp cx,42
- je red
- cmp cx,44
- je red
- nolight:
- mov al,11111111B ;控制灯不亮
- jmp control
- green: ;控制绿灯亮
- mov al,11110000B
- jmp control
- red: ;控制红灯亮
- mov al,00001111B
- jmp control
- control:
- inc cx ;计数器加1
- out 61h,al
- mov al,20h
- out 20h,al
- iret
- contiue:
- inc bx
- mov al,20h
- out 20h,al
- iret
- irq1:
- cmp di,0
- jne open
- mov al,11110111B ;测试用
- out 61h,al
- mov al,08h ;PC4禁止中断
- out 63h,al
- ; in al,21h
- ; and al,0ffh
- ; out 21h,al
- ; mov al,20h
- ; out 20h,al
- mov di,1
- iret
- open:
- mov al,11110100B ;测试用
- out 61h,al
- mov al,09h ;PC4允许中断
- out 63h,al
- ; in al,21h
- ; and al,7dh
- ; out 21h,al
- ; mov al,20h
- ; out 20h,al
- mov di,0
- iret
- code ends
- end start
English
