📄 zxl9.asm
字号:
cseg segment
assume cs:cseg
start:
mov dx,222h
mov al,0c1h
out dx,al
t0: in al,dx
test al,80h
jnz t0
mov al,0h
out dx,al
mov al,30h
out dx,al
mov ax,8100h
mov ds,ax
mov cx,3
tt1: push cx
t3: mov dx,222h ;接收一个字节
in al,dx
test al,0fh
jz t3
mov al,40h
out dx,al
mov dx,220h
in al,dx
mov dx,222h ;输出8个点
mov al,90h
out dx,al
mov cx,8
mov al,80h
mov dx,220h
t2: out dx,al
loop t2
mov si,offset hh ;接收银行卡号
mov cx,8
mov dx,222h
mov al,90h
out dx,al
t1: mov dx,222h
in al,dx
test al,0fh
jz t1
mov al,40h
out dx,al
mov dx,220h
in al,dx
mov [si],al
inc si
mov bx,offset tab
xlat
out dx,al
loop t1
cld ;判断卡号是否正确并显示结果
mov di,offset yh1
mov ax,8100h
mov es,ax
mov cx,3 ;3个用户
te1: push cx
mov bx,di
mov si,offset hh
mov cx,8
rep cmpsb
jz te7
mov di,bx
add di,24
pop cx
loop te1
jmp t7
te7: mov bl,80h
jmp t6
t7: mov bl,3fh
t6: mov dx,222h
mov al,90h
out dx,al
mov cx,8
mov al,bl
mov dx,220h
t4: out dx,al
loop t4
cmp bl,80h
jz tx1
pop cx
dec cx
cmp cx,0
jz tmj
jmp tt1
tmj: jmp tm
push di
xx: pop di
push di
tx1:
mov dx,222h ;输出8个点
mov al,90h
out dx,al
mov cx,8
mov al,80h
mov dx,220h
tn2: out dx,al
loop tn2
mov dx,222h ;接收选项
in al,dx
test al,0fh
jz tx1
mov al,40h
out dx,al
mov dx,220h
in al,dx
push ax
push ax
mov dx,222h
mov al,87h
out dx,al
pop ax
mov bx,offset tab
xlat
mov dx,220h
out dx,al
pop ax
mov bx,offset zong
mov [bx],al
mov ah,0
mov 1[bx],ah
cmp al,01h ;判断选项
jz chaxun1
cmp al,02h
jz qukuan1
cmp al,03h
jz cunkuan1
jmp tm
chaxun1: jmp chaxun
qukuan1: jmp qukuan
cunkuan1: jmp cunkuan
chaxun: push di
mov cx,3
ztt1: pop di
push di
push cx
mov si,offset hh ;接收银行卡查询密码
mov cx,8
mov dx,222h
mov al,90h
out dx,al
zt1: mov dx,222h
in al,dx
test al,0fh
jz zt1
mov al,40h
out dx,al
mov dx,220h
in al,dx
cmp al,11h
jz zt2
mov [si],al
inc si
mov al,40h
out dx,al
loop zt1
zt2: cmp cx,2 ;判断查询密码
jnz zt7
mov si,offset hh
mov cx,6h
rep cmpsb
jnz zt7
mov bl,80h
jmp zt6
zt7: mov bl,3fh
zt6: mov dx,222h
mov al,90h
out dx,al
mov cx,8
mov al,bl
mov dx,220h
zt4: out dx,al
loop zt4
cmp bl,80h
jz ztx1
pop cx
dec cx
cmp cx,0
jz tmp
jmp ztt1
tmp: jmp tm
ztx1: ;显示余额
mov dx,222h ;输出8个点
mov al,90h
out dx,al
mov cx,8
mov al,80h
mov dx,220h
tn1: out dx,al
loop tn1
mov dx,222h
mov al,87h
out dx,al
mov dx,220h
mov al,49h
out dx,al
add di,6
mov dx,222h
mov al,90h
out dx,al
mov bx,10
mov ax,[di]
zt9: mov dx,0
div bx
push ax
mov ax,dx
mov dx,220h
push bx
mov bx,offset tab
xlat
out dx,al
pop bx
pop ax
cmp ax,0
jnz zt9
tz3: mov dx,222h ;接收一个字节
in al,dx
test al,0fh
jz tz3
mov al,40h
out dx,al
mov dx,220h
in al,dx
mov bx,offset zong
mov ah,[bx]
cmp ah,01h
jz aa1
cmp ah,02h
jnz zy1
mov ah,1[bx]
cmp ah,1
jz zy1
jmp aa2
aa1: cmp al,13h ;接受'+'号,改密码
jnz zy1
mov dx,222h ;输出8个点
mov al,90h
out dx,al
mov cx,8
mov al,80h
mov dx,220h
tg1: out dx,al
loop tg1
mov dx,222h
mov al,87h
out dx,al
mov dx,220h
mov al,76h
out dx,al
sub di,12 ;接收银行卡查询新密码
mov cx,6
mov dx,222h
mov al,90h
out dx,al
zg2: mov dx,222h
in al,dx
test al,0fh
jz zg2
mov al,40h
out dx,al
mov dx,220h
in al,dx
mov [di],al
inc di
mov bx,offset tab
xlat
out dx,al
loop zg2
zg3: mov dx,222h ;接收一个任意字节
in al,dx
test al,0fh
jz zg3
mov al,40h
out dx,al
mov dx,220h
in al,dx
zy1: pop di
jmp xx
qukuan: push di
mov cx,3
qtt1: pop di
push di
push cx
mov si,offset hh ;接收银行卡取款密码
mov cx,8
mov dx,222h
mov al,90h
out dx,al
qt1: mov dx,222h
in al,dx
test al,0fh
jz qt1
mov al,40h
out dx,al
mov dx,220h
in al,dx
cmp al,11h
jz qt2
mov [si],al
inc si
mov al,40h
out dx,al
loop qt1
qt2: cmp cx,2 ;判断取款密码
jnz qt7
add di,6
mov si,offset hh
mov cx,6h
rep cmpsb
jnz qt7
mov bl,80h
jmp qt6
qt7: mov bl,3fh
qt6: mov dx,222h
mov al,90h
out dx,al
mov cx,8
mov al,bl
mov dx,220h
qt4: out dx,al
loop qt4
cmp bl,80h
jz qtx1
pop cx
dec cx
cmp cx,0
jz tmp1
jmp qtt1
tmp1: jmp tm
qtx1: sub di,6
jmp ztx1
aa2:
mov dx,222h ;输出8个点
mov al,90h
out dx,al
mov cx,8
mov al,80h
mov dx,220h
tf2: out dx,al
loop tf2
mov dx,222h
mov al,87h
out dx,al
mov dx,220h
mov al,38h
out dx,al
mov bx,0 ;接收银行卡取款额
mov ah,0
mov cx,8
mov dx,222h
mov al,90h
out dx,al
qt11: mov dx,222h
in al,dx
test al,0fh
jz qt11
mov al,40h
out dx,al
mov dx,220h
in al,dx
cmp al,11h
jz qt22
push ax
shl bx,1
mov ax,bx
shl bx,1
shl bx,1
add bx,ax
pop ax
add bx,ax
push bx
mov bx,offset tab
xlat
out dx,al
pop bx
loop qt11
qt22: mov ax,[di]
cmp ax,bx
js qcc
mov cx,2[di]
add cx,bx
cmp cx,1000 ;每天取不能超过1000元
jns qcc1
mov 2[di],cx
sub ax,bx
mov [di],ax
mov al,40h
jmp qw
qcc: mov al,8h
jmp qw
qcc1: mov al,1h
qw: push ax
mov dx,222h
mov al,87h
out dx,al
pop ax
mov dx,220h
out dx,al
tq3: mov dx,222h ;接收一个字节
in al,dx
test al,0fh
jz tq3
mov al,40h
out dx,al
mov dx,220h
in al,dx
cmp al,13h ;接受'+'号,改密码
jz aa3
mov bx,offset zong
mov ah,1
mov 1[bx],ah
sub di,6
jmp ztx1
aa3: mov dx,222h ;输出8个点
mov al,90h
out dx,al
mov cx,8
mov al,80h
mov dx,220h
tg4: out dx,al
loop tg4
mov dx,222h
mov al,87h
out dx,al
mov dx,220h
mov al,76h
out dx,al
sub di,6 ;接收银行卡取款新密码
mov cx,6
mov dx,222h
mov al,90h
out dx,al
qg2: mov dx,222h
in al,dx
test al,0fh
jz qg2
mov al,40h
out dx,al
mov dx,220h
in al,dx
mov [di],al
inc di
mov bx,offset tab
xlat
out dx,al
loop qg2
qg3: mov dx,222h ;接收一个任意字节
in al,dx
test al,0fh
jz qg3
mov al,40h
out dx,al
mov dx,220h
in al,dx
zy2: pop di
jmp xx
cunkuan: push di
mov bx,0 ;接收银行卡存款额
mov ah,0
mov cx,8
mov dx,222h
mov al,90h
out dx,al
ct11: mov dx,222h
in al,dx
test al,0fh
jz ct11
mov al,40h
out dx,al
mov dx,220h
in al,dx
cmp al,11h
jz ct22
push ax
shl bx,1
mov ax,bx
shl bx,1
shl bx,1
add bx,ax
pop ax
add bx,ax
push bx
mov bx,offset tab
xlat
out dx,al
pop bx
loop ct11
ct22: add di,12
mov ax,[di]
add ax,bx
mov [di],ax
sub di,6
jmp ztx1
jmp tm
tab db 3fh,6h,5bh,4fh,66h,6dh,7dh,7h,7fh,6fh,77h,7ch,39h,5eh,79h,71h
yh1 db 1,2,3,4,5,6,7,8
db 1,1,1,1,1,1
db 2,2,2,2,2,2
dw 2000
dw 0
yh2 db 8,7,6,5,4,3,2,1
db 3,3,3,3,3,3
db 4,4,4,4,4,4
dw 1500
dw 0
yh3 db 8,8,8,8,6,6,6,6
db 5,5,5,5,5,5
db 6,6,6,6,6,6
dw 2500
dw 0
zong db 0,0
zc db 0ah
hh db 8 dup(?)
tm: jmp tm
cseg ends
end start
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -