📄 jiayouji .txt
字号:
cseg segment
assume cs:cseg
start:
MOV AX,CS
MOV DS,AX
;-----8255初始化-----
MOV DX,203H
MOV AL,80H
OUT DX,AL
;-----8279初始化-----
MOV DX,210H
MOV AL,00H;8字符显示,左入口,编码扫描键盘,双键所定
OUT DX,AL
MOV AL,38H ;24分频
OUT DX,AL
;——--8259初始化——
mov al,13h;边缘触发,单级,需要设置ICW4
mov dx,230h
out dx,al;Icw1
mov al,8h;设置中断类型码的高5位,为08H。
mov dx,231h
out dx,al;Icw2
mov al,01h
out dx,al;Icw4
mov al,0feh
out dx,al;Ocw1
wait1: ; 判断ram
mov dx,212h
in al,dx
test al,80h
jnz wait1
;——显示输入键盘——选择输入加油的种类有3——a一元每升,b二元每升,c三元每升
aa: mov dx,212h
in al,dx
test al,0fh
jz aa
mov dx,210h
in al,dx
mov ah,al
cmp ah,0ah
jz aone;跳转到加一元油的子程序
cmp ah,0bh
jz btwo;跳转到加二元油的子程序
cmp ah,0ch
jnz aa
cthree:
mov al,02h
mov bx,offset table2
xlat
mov ah,al
mov dx,212h
mov al,85h
out dx,al
mov al,ah
mov dx,210h
out dx,al
call int1
jmp aa
aone: mov al,00h
mov bx,offset table2
xlat
mov ah,al
mov dx,212h
mov al,87h
out dx,al
mov al,ah
mov dx,210h
out dx,al
call int1
jmp aa
btwo:
mov al,01h
mov bx,offset table2
xlat
mov ah,al
mov dx,212h
mov al,86h
out dx,al
mov al,ah
mov dx,210h
out dx,al
call int1
jmp aa
;开始加油
;——显示输入键盘——选择输入定量加油d,定钱加油e,还是随机加油f
int1 proc far
mov dx,212h
in al,dx
test al,80h
jnz int0
cc:
mov dx,212h
in al,dx
test al,0fh
jz cc
mov dx,210h
in al,dx
cmp al,0dh
jz dingliang
cmp al,0eh
jz dingqian
cmp al,0fh
jnz cc
;suiji:
tt:
ret
dingliang:
call dingliang1
jmp tt
dingliang1 proc
;按开始键加油,显示方式D
mov dx,212h
mov al,84h
out dx,al
mov al,00h
mov bx,offset table3
xlat
mov dx,210h
out dx,al
bb:
mov dx,212h
in al,dx
test al,0fh
jz bb
mov dx,210h
in al,dx
cmp al,13h
jnz bb
;输入定量数
dd:
mov dx,212h
in al,dx
test al,0fh
jz dd
mov dx,210h
in al,dx
mov cl,al
mov bx,offset table1
xlat
mov ah,al
mov dx,212h
mov al,81h
out dx,al
mov dx,210h
mov al,ah
out dx,al
mov dx,210h
in al,dx
mov ch,al
mov bx,offset table1
xlat
mov ah,al
mov dx,212h
mov al,80h
out dx,al
mov dx,210h
mov al,ah
out dx,al
mul cl,10
add cl,ch
;------8253初始化----
MOV AL,34H
MOV DX,223H
OUT DX,AL;计数器0,模式2
MOV AX,9600
MOV DX,220H
MOV AL,AH
OUT DX,AL
mov dx,223h
mov al,74h
out dx,al
mov dx,221h
mov ax,10
out dx,al
mov al,ah
out dx,al
xor ax,ax
mov ds,ax
cli
mov ax, offset qq
mov bx,20h
mov [bx],ax
mov ax,8100h
mov 2[bx],ax
sti
mov bl,0eeh
mov al,bl
mov dx,200h
out dx,al
jmp $
qq: rol bl,1
dec cl
mov [di],cl
mov ax,word ptr cl
mov cl,10
div cl
mov ch,ah
mov bx,offset table1
xlat
mov ah,al
mov dx,212h
mov al,81h
out dx,al
mov dx,210h
mov al,ah
out dx,al
mov al,ch
mov bx,offset table1
xlat
mov ah,al
mov dx,212h
mov al,80h
out dx,al
mov dx,210h
mov al,ah
out dx,al
mov cl,[di]
mov al,bl
mov dx,200h
out dx,al
loop qq
ret
;dingqian:
;jmp tt
suiji:
;jmp tt
led db 00,01,02,03,04,05,06,07,08,09
table1 db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh; 对应键盘0——9
table2 db 77h,7ch,39h;对应键盘a——c
table3 db 5eh,79h,71h;对应键盘d——f
cseg ends
end start
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -