?? re5.asm
字號:
;mov al ,floor ;floor: floor which the lift is on
mov ah ,inputvalue ;Find the firstinput value.given during the ss/up.down_convert
cmp ah ,bh
jle ccd23
mov bl ,1 ;down
jmp ccd25
ccd23:
je ccd24
mov bl ,0
jmp ccd25
ccd24:
mov bl ,2
ccd25:
call scanstore
call disp2
dec cx
cmp cx,1
jnz ccd25
ccd2exit:
ret
CCD2 endp
;******************************
disp1 proc near
mov al,speed
xiezi1 3,36,al,6
mov al,distance
xiezi1 5,36,al,6
ret
disp1 endp
;*******************************
disp2 proc near
pusha
;*******************************清屏
huaxian2 0,190,136,160
huaxian2 0,170,136,160
huaxian2 0,150,136,160
huaxian2 0,130,136,160
huaxian2 0,110,136,160
huaxian2 0,90,136,160
huaxian2 0,70,136,160
huaxian2 0,50,136,160
huaxian2 0,30,136,160
huaxian2 0,10,136,160
;****************************
mov al,bh
sub al,1h
mov dl,20
mul dl
mov bx,190
sub bx,ax
mov ax,bx
huaxian2 1,ax,136,160
sub bx,20
huaxian2 1,bx,136,160
popa
ret
disp2 endp
;***********************************
music proc
pusha
push ds
push es
MOV AX,DATA
MOV DS,AX
ZYAGAIN: LEA SI,MUS_FREQ
LEA BP,MUS_TIME
ZYFREQ:
MOV DI,[SI]
CMP DI,-1
JE ZYOVER
MOV BX,DS:[BP]
CMP DX, BX
JNZ ZY_NEXT
MOV ECX, 01ffFFFFH
ZY_WAIT: LOOPD ZY_WAIT
ZY_NEXT: MOV DX, BX
;PUSH AX
;MOV AH, 0BH
;INT 21H
;CMP AL, 0
;POP AX
Jmp ZYNEXT
;JMP ZYEXIT
ZYNEXT: CALL SOUNDF
ADD SI,2
ADD BP,2
JMP ZYFREQ
ZYOVER: ;JMP ZYAGAIN
ZYEXIT: pop es
pop ds
POPA
RET
MUSIC ENDP ;?發(fā)聲結(jié)束
SOUNDF PROC NEAR ;通用發(fā)生程序
PUSH AX
PUSH BX
PUSH CX
PUSH DX
PUSH DI
MOV AL,0B6H
OUT 43H,AL
MOV DX,12H
MOV AX,348CH
DIV DI
OUT 42H,AL
MOV AL,AH
OUT 42H,AL
IN AL,61H
MOV AH,AL
OR AL,3
OUT 61H,AL
WAITF: MOV ECX,0a0FFFFh
LOOPD $
DEC BX
CMP BX,0
JNZ WAITF
MOV AL,AH
OUT 61H,AL
POP DI
POP DX
POP CX
POP BX
POP AX
RET
SOUNDF ENDP
;****************************** have some problems
music1 proc near ;input si,di,bp??????
pusha
push ds
push es
mov ax,data
mov ds,ax
push si
push di
push bp
lea si,freq ;used rigister ax
lea bp,time
music0:;mov ah,1
;int 16h
;jnz END_MUSIC
mov DI,[SI]
CMP DI,0
JE END_MUSIC
MOV BX,DS:[BP]
MOV AL,0B6H
OUT 43H,AL
MOV DX,12H
MOV AX,3280H
DIV DI
OUT 42H,AL
MOV AL,AH
OUT 42H,AL
IN AL,61H
MOV AH,AL
OR AL,3
OUT 61H,AL
LENG: MOV ECX,07FFFFFH
DL10MS:nop
LOOPD DL10MS
DEC BX
JNZ LENG
MOV AL,AH
OUT 61H,AL
ADD SI,2
ADD BP,2
JMP MUSIC0
end_music:
pop bp
pop di
pop si
pop es
pop ds
popa
ret
music1 endp
;************************************************************88
disp3 proc near ;used rigister
pusha
push ds
push es
;xor bx,bx ;人數(shù)為0
lp2:
mov ah,00h
int 16h
cmp al,'q'
jz exit1
cmp al,'<'
jz guan
cmp al,'>'
jz kai
cmp al,'+'
jz lp110
cmp al,'-'
jz lp111
jmp lp2
;關門
exit1:jmp exit
guan:
mov ax,0021
mov bx,0069
lp3:push ax
huaxian1 3,51,bx,150
dec bx
pop ax
push ax
huaxian1 3,51,ax,150
pop ax
inc ax
cmp ax,46
jnz lp3
jmp lp2
;開門
kai:
mov ax,0045
mov bx,0045
lp4:push ax
huaxian1 0,51,bx,150
inc bx
pop ax
push ax
huaxian1 0,51,ax,150
pop ax
dec ax
cmp ax,21
jnz lp4
cmp renshu,1
jl lp2
jmp lp500
;加人
lp110:
mov ah,00h
int 16h
;pop bx
cmp al,39h
jg lp110
cmp al,31h
jl lp110
sub al,30h
mov ah,renshu
add ah,al
mov renshu,ah
;mov al,ah
;push bx
jmp lp500
;減人
lp111:mov ah,00h
int 16h
;pop bx
cmp al,39h
jg lp111
cmp al,31h
jl lp111
sub al,30h
mov ah,renshu
sub ah,al
mov renshu,ah
;mov al,renshu
;push bx
push ax
push cx
xiezi 13,3,5,8
xiezi 14,3,5,8
xiezi 15,3,5,8
pop cx
pop ax
lp500:mov al,renshu
cmp al,15
jle lp50
pusha
xiezi 15,3,5,2
xiezi 14,3,5,2
xiezi 13,3,5,2
popa
call music1 ;change music1
jmp lp2
lp50:
cmp al,10
jle lp51
sub al,10
xor ah,ah
mov cx,ax
xiezi 15,3,cx,2
xiezi 14,3,5,2
xiezi 13,3,5,2
jmp lp2
lp51:
cmp al,5
jle lp52
sub al,5
xor ah,ah
mov cx,ax
xiezi 14,3,cx,2
xiezi 13,3,5,2
jmp lp2
lp52: xor ah,ah
mov cx,ax
xiezi 13,3,cx,2
jmp lp2
exit:pop es
pop ds
popa
ret
disp3 endp
;***********************************************
disp4 proc near ;used rigister is ax
push ax ;We can't change al in this procedure.!
cmp al,'q'
jz exit2
cmp al,'9'
jz lp211
cmp al,'8'
jz lp221
cmp al,'7'
jz lp231
cmp al,'6'
jz lp241
cmp al,'5'
jz lp251
cmp al,'4'
jz lp261
cmp al,'3'
jz lp271
cmp al,'2'
jz lp281
cmp al,'1'
jz lp291
cmp al,'<'
jz lp301
cmp al,'>'
jz lp311
jmp input
exit2:jmp exit3
lp211:jmp lp21
lp221:jmp lp22
lp231:jmp lp23
lp241:jmp lp24
lp251:jmp lp25
lp261:jmp lp26
lp271:jmp lp27
lp281:jmp lp28
lp291:jmp lp29
lp301:jmp lp30
lp311:jmp lp31
lp21:xiezi1 17,32,'9',2
jmp input
lp22:xiezi1 17,34,'8',2
jmp input
lp23:xiezi1 17,36,'7',2
jmp input
lp24:xiezi1 19,32,'6',2
jmp input
lp25:xiezi1 19,34,'5',2
jmp input
lp26:xiezi1 19,36,'4',2
jmp input
lp27:xiezi1 21,32,'3',2
jmp input
lp28:xiezi1 21,34,'2',2
jmp input
lp29:xiezi1 21,36,'1',2
jmp input
lp30:xiezi1 23,32,'<',2
jmp input
lp31:xiezi1 23,36,'>',2
jmp input
input:call delay
xiezi1 17,32,'9',1
xiezi1 17,34,'8',1
xiezi1 17,36,'7',1
xiezi1 19,32,'6',1
xiezi1 19,34,'5',1
xiezi1 19,36,'4',1
xiezi1 21,32,'3',1
xiezi1 21,34,'2',1
xiezi1 21,36,'1',1
xiezi1 23,32,'<',1
xiezi1 23,36,'>',1
pop ax
exit3:
ret
disp4 endp
;******************************************
disp5 proc near
pusha
push ds
push es
mov al,bh
add al,30h
cmp al,'9'
jz lp2111
cmp al,'8'
jz lp2211
cmp al,'7'
jz lp2311
cmp al,'6'
jz lp2411
cmp al,'5'
jz lp2511
cmp al,'4'
jz lp2611
cmp al,'3'
jz lp2711
cmp al,'2'
jz lp2811
cmp al,'1'
jz lp2911
jmp input
lp2111:jmp lp2110
lp2211:jmp lp2210
lp2311:jmp lp2310
lp2411:jmp lp2410
lp2511:jmp lp2510
lp2611:jmp lp2610
lp2711:jmp lp2710
lp2811:jmp lp2810
lp2911:jmp lp2910
lp2110:xiezi1 17,32,'9',2
jmp input7
lp2210:xiezi1 17,34,'8',2
jmp input7
lp2310:xiezi1 17,36,'7',2
jmp input7
lp2410:xiezi1 19,32,'6',2
jmp input7
lp2510:xiezi1 19,34,'5',2
jmp input7
lp2610:xiezi1 19,36,'4',2
jmp input7
lp2710:xiezi1 21,32,'3',2
jmp input
lp2810:xiezi1 21,34,'2',2
jmp input7
lp2910:xiezi1 21,36,'1',2
jmp input
input7:
pop es
pop ds
popa
ret
disp5 endp
;**************************************
disp6 proc near
pusha
push ds
push es
mov al ,bh
add al ,30h
xiezi1 17,32,'9',1
xiezi1 17,34,'8',1
xiezi1 17,36,'7',1
xiezi1 19,32,'6',1
xiezi1 19,34,'5',1
xiezi1 19,36,'4',1
xiezi1 21,32,'3',1
xiezi1 21,34,'2',1
xiezi1 21,36,'1',1
xiezi1 23,32,'<',1
xiezi1 23,36,'>',1
pop es
pop ds
popa
ret
disp6 endp
delay proc near
pusha
MOV ECX,0ffFFFFFH
DL1S: nop
LOOPD DL1S
popa
ret
delay endp
delay1 proc
push cx
push bx
mov cx,0fffh
lpdelayy:
mov bx,0ffffh
lpdelay:
dec bx
jnz lpdelay
loop lpdelayy
pop bx
pop cx
ret
delay1 endp
code ends
end start
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -