⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 re5.asm

📁 用汇编语言编写的电梯监控系统设计 程序。
💻 ASM
📖 第 1 页 / 共 3 页
字号:
     ;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                  ;?发声结束

SOUNDF  PROC      NEAR        ;通用发生程序
              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                     ;人数为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 + -