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

📄 fire.vms

📁 VmBasic是一款基于虚拟机的结构化的编程语言
💻 VMS
📖 第 1 页 / 共 4 页
字号:
LABEL31:	; End of While
;<Epression>
; Flush stack: 1  [1]
PUSH 0
POP r3
;</Epression>
LD int r0,rb
CAL int ADD r0,-4
LD int [r0],r3
LABEL35:	; While code
;<Epression>
; Flush stack: 16 1 <  [3]
LD int r0,rb
CAL int ADD r0,-4
PUSH [r0]
PUSH 80
POP r1
POP r0
CMP int r0,r1
JPC AE LABEL37
PUSH 1
JMP LABEL38
LABEL37:
PUSH 0
LABEL38:
POP r3
;</Epression>
CMP int r3,0
JPC Z LABEL36
; If code
;<Epression>
; Flush stack: 16 1 <  [3]
LD int r0,rb
CAL int ADD r0,-4
PUSH [r0]
PUSH 50
POP r1
POP r0
CMP int r0,r1
JPC AE LABEL41
PUSH 1
JMP LABEL42
LABEL41:
PUSH 0
LABEL42:
POP r3
;</Epression>
CMP int r3,0
JPC Z LABEL39
;<Epression>
; Flush stack: 16  [1]
LD int r0,rb
CAL int ADD r0,-4
PUSH [r0]
POP r3
;</Epression>
PUSH r3
;<Epression>
; Flush stack: 1  [1]
PUSH 0
POP r3
;</Epression>
PUSH r3
;<Epression>
; Flush stack: 1  [1]
PUSH 2
POP r3
;</Epression>
POP r1
POP r0
CAL int MUL r0,4
CAL int ADD r1,r0
CMP dword r1,400
JPC B LABEL43
LD int r1,399
LABEL43:
LD int r0,VINT_STAR
CAL int MUL r1,4
CAL int ADD r0,r1
LD int [r0],r3
;<Epression>
; Flush stack: 16  [1]
LD int r0,rb
CAL int ADD r0,-4
PUSH [r0]
POP r3
;</Epression>
PUSH r3
;<Epression>
; Flush stack: 1  [1]
PUSH 1
POP r3
;</Epression>
PUSH r3
;<Epression>
; Flush stack: 1 16  [2]
PUSH 400
CALL FINT_RANDOM
CAL int ADD rs,4
PUSH r3
POP r3
;</Epression>
POP r1
POP r0
CAL int MUL r0,4
CAL int ADD r1,r0
CMP dword r1,400
JPC B LABEL44
LD int r1,399
LABEL44:
LD int r0,VINT_STAR
CAL int MUL r1,4
CAL int ADD r0,r1
LD int [r0],r3
;<Epression>
; Flush stack: 16  [1]
LD int r0,rb
CAL int ADD r0,-4
PUSH [r0]
POP r3
;</Epression>
PUSH r3
;<Epression>
; Flush stack: 1  [1]
PUSH 2
POP r3
;</Epression>
PUSH r3
;<Epression>
; Flush stack: 1 16  [2]
PUSH 300
CALL FINT_RANDOM
CAL int ADD rs,4
PUSH r3
POP r3
;</Epression>
POP r1
POP r0
CAL int MUL r0,4
CAL int ADD r1,r0
CMP dword r1,400
JPC B LABEL45
LD int r1,399
LABEL45:
LD int r0,VINT_STAR
CAL int MUL r1,4
CAL int ADD r0,r1
LD int [r0],r3
JMP LABEL40
LABEL39:	; Else
;<Epression>
; Flush stack: 16  [1]
LD int r0,rb
CAL int ADD r0,-4
PUSH [r0]
POP r3
;</Epression>
PUSH r3
;<Epression>
; Flush stack: 1  [1]
PUSH 0
POP r3
;</Epression>
PUSH r3
;<Epression>
; Flush stack: 1  [1]
PUSH 3
POP r3
;</Epression>
POP r1
POP r0
CAL int MUL r0,4
CAL int ADD r1,r0
CMP dword r1,400
JPC B LABEL46
LD int r1,399
LABEL46:
LD int r0,VINT_STAR
CAL int MUL r1,4
CAL int ADD r0,r1
LD int [r0],r3
;<Epression>
; Flush stack: 16  [1]
LD int r0,rb
CAL int ADD r0,-4
PUSH [r0]
POP r3
;</Epression>
PUSH r3
;<Epression>
; Flush stack: 1  [1]
PUSH 1
POP r3
;</Epression>
PUSH r3
;<Epression>
; Flush stack: 1 16  [2]
PUSH 400
CALL FINT_RANDOM
CAL int ADD rs,4
PUSH r3
POP r3
;</Epression>
POP r1
POP r0
CAL int MUL r0,4
CAL int ADD r1,r0
CMP dword r1,400
JPC B LABEL47
LD int r1,399
LABEL47:
LD int r0,VINT_STAR
CAL int MUL r1,4
CAL int ADD r0,r1
LD int [r0],r3
;<Epression>
; Flush stack: 16  [1]
LD int r0,rb
CAL int ADD r0,-4
PUSH [r0]
POP r3
;</Epression>
PUSH r3
;<Epression>
; Flush stack: 1  [1]
PUSH 2
POP r3
;</Epression>
PUSH r3
;<Epression>
; Flush stack: 1 16  [2]
PUSH 300
CALL FINT_RANDOM
CAL int ADD rs,4
PUSH r3
POP r3
;</Epression>
POP r1
POP r0
CAL int MUL r0,4
CAL int ADD r1,r0
CMP dword r1,400
JPC B LABEL48
LD int r1,399
LABEL48:
LD int r0,VINT_STAR
CAL int MUL r1,4
CAL int ADD r0,r1
LD int [r0],r3
LABEL40:	; End of If
;<Epression>
; Flush stack: 16 1 +  [3]
LD int r0,rb
CAL int ADD r0,-4
PUSH [r0]
PUSH 1
POP r1
POP r0
CAL int ADD r0,r1
PUSH r0
POP r3
;</Epression>
LD int r0,rb
CAL int ADD r0,-4
LD int [r0],r3
JMP LABEL35
LABEL36:	; End of While
;<Epression>
; Flush stack: 1  [1]
PUSH 200
POP r3
;</Epression>
LD int r0,VINT_FLYX
LD int [r0],r3
;<Epression>
; Flush stack: 1  [1]
PUSH 180
POP r3
;</Epression>
LD int r0,VINT_FLYY
LD int [r0],r3
FINT_CLEARDATA_EXIT:
LD int r3,[rb]
LD int rs,rb
POP rb
RET
; END FUN FINT_CLEARDATA

;(FINT_ALLOC) Function
;parcount=0
FINT_ALLOC:
PUSH rb
LD int rb,rs
CAL int ADD rs,-8
; This is a comment line
;<Epression>
; Flush stack: 1  [1]
PUSH 0
POP r3
;</Epression>
LD int r0,rb
CAL int ADD r0,-4
LD int [r0],r3
LABEL49:	; While code
;<Epression>
; Flush stack: 16 1 < 16 1 16 1 ] &  [9]
LD int r0,rb
CAL int ADD r0,-4
PUSH [r0]
PUSH 31
POP r1
POP r0
CMP int r0,r1
JPC AE LABEL51
PUSH 1
JMP LABEL52
LABEL51:
PUSH 0
LABEL52:
LD int r0,rb
CAL int ADD r0,-4
PUSH [r0]
PUSH 0
POP r3
POP r0
CAL int MUL r0,6
CAL int ADD r3,r0
CMP dword r3,1200
JPC B LABEL53
LD int r3,1199
LABEL53:
LD int r0,VINT_P
CAL int MUL r3,4
CAL int ADD r0,r3
PUSH [r0]
PUSH 0
POP r1
POP r0
CMP int r0,r1
JPC B LABEL54
PUSH 1
JMP LABEL55
LABEL54:
PUSH 0
LABEL55:
POP r1
POP r0
CAL int MUL r0,r1
PUSH r0
POP r3
;</Epression>
CMP int r3,0
JPC Z LABEL50
;<Epression>
; Flush stack: 16 1 +  [3]
LD int r0,rb
CAL int ADD r0,-4
PUSH [r0]
PUSH 1
POP r1
POP r0
CAL int ADD r0,r1
PUSH r0
POP r3
;</Epression>
LD int r0,rb
CAL int ADD r0,-4
LD int [r0],r3
JMP LABEL49
LABEL50:	; End of While
;<Epression>
; Flush stack: 16  [1]
LD int r0,rb
CAL int ADD r0,-4
PUSH [r0]
POP r3
;</Epression>
LD int r0,rb
CAL int ADD r0,0
LD int [r0],r3
FINT_ALLOC_EXIT:
LD int r3,[rb]
LD int rs,rb
POP rb
RET
; END FUN FINT_ALLOC

;(FINT_DRAWFLY) Function
;parcount=3
FINT_DRAWFLY:
PUSH rb
LD int rb,rs
CAL int ADD rs,-8
; This is a comment line
; If code
;<Epression>
; Flush stack: 16 1 <  [3]
LD int r0,rb
CAL int ADD r0,12
PUSH [r0]
PUSH 2
POP r1
POP r0
CMP int r0,r1
JPC AE LABEL58
PUSH 1
JMP LABEL59
LABEL58:
PUSH 0
LABEL59:
POP r3
;</Epression>
CMP int r3,0
JPC Z LABEL56
;<Epression>
; Flush stack: 16  [1]
PUSH [VINT_PICFLY]
POP r3
;</Epression>
LD int r0,rb
CAL int ADD r0,-4
LD int [r0],r3
; If code
;<Epression>
; Flush stack: 16 1 =  [3]
LD int r0,rb
CAL int ADD r0,12
PUSH [r0]
PUSH 1
POP r1
POP r0
CMP int r0,r1
JPC NZ LABEL62
PUSH 1
JMP LABEL63
LABEL62:
PUSH 0
LABEL63:
POP r3
;</Epression>
CMP int r3,0
JPC Z LABEL60
;<Epression>
; Flush stack: 16  [1]
PUSH [VINT_PICENEMY]
POP r3
;</Epression>
LD int r0,rb
CAL int ADD r0,-4
LD int [r0],r3
JMP LABEL61
LABEL60:	; Else
LABEL61:	; End of If
;<Epression>
; Flush stack: 16  [1]
PUSH [VINT_LAYER]
POP r3
;</Epression>
PUSH r3
;<Epression>
; Flush stack: 16  [1]
LD int r0,rb
CAL int ADD r0,-4
PUSH [r0]
POP r3
;</Epression>
PUSH r3
;<Epression>
; Flush stack: 16 1 -  [3]
LD int r0,rb
CAL int ADD r0,20
PUSH [r0]
PUSH 16
POP r1
POP r0
CAL int SUB r0,r1
PUSH r0
POP r3
;</Epression>
PUSH r3
;<Epression>
; Flush stack: 16 1 -  [3]
LD int r0,rb
CAL int ADD r0,16
PUSH [r0]
PUSH 16
POP r1
POP r0
CAL int SUB r0,r1
PUSH r0
POP r3
;</Epression>
PUSH r3
;<Epression>
; Flush stack: 1  [1]
PUSH 32
POP r3
;</Epression>
PUSH r3
;<Epression>
; Flush stack: 1  [1]
PUSH 32
POP r3
;</Epression>
PUSH r3
;<Epression>
; Flush stack: 1  [1]
PUSH 0
POP r3
;</Epression>
PUSH r3
;<Epression>
; Flush stack: 1  [1]
PUSH 0
POP r3
;</Epression>
PUSH r3
;<Epression>
; Flush stack: 1  [1]
PUSH 63519
POP r3
;</Epression>
PUSH r3
CALL FINT_BLITCANVAS
CAL int ADD rs,36
JMP LABEL57
LABEL56:	; Else
;<Epression>
; Flush stack: 16  [1]
PUSH [VINT_LAYER]
POP r3
;</Epression>
PUSH r3
;<Epression>
; Flush stack: 16  [1]
PUSH [VINT_PICFIRE]
POP r3
;</Epression>
PUSH r3
;<Epression>
; Flush stack: 16 1 - 1 -  [5]
LD int r0,rb
CAL int ADD r0,20
PUSH [r0]
PUSH 7
POP r1
POP r0
CAL int SUB r0,r1
PUSH r0
PUSH 4
POP r1
POP r0
CAL int SUB r0,r1
PUSH r0
POP r3
;</Epression>
PUSH r3
;<Epression>
; Flush stack: 16  [1]
LD int r0,rb
CAL int ADD r0,16
PUSH [r0]
POP r3
;</Epression>
PUSH r3
;<Epression>
; Flush stack: 1  [1]
PUSH 8
POP r3
;</Epression>
PUSH r3
;<Epression>
; Flush stack: 1  [1]
PUSH 8
POP r3
;</Epression>
PUSH r3
;<Epression>
; Flush stack: 1  [1]
PUSH 0
POP r3
;</Epression>
PUSH r3
;<Epression>
; Flush stack: 1  [1]
PUSH 0
POP r3
;</Epression>
PUSH r3
;<Epression>
; Flush stack: 1  [1]
PUSH 63519
POP r3
;</Epression>
PUSH r3
CALL FINT_BLITCANVAS
CAL int ADD rs,36
;<Epression>
; Flush stack: 16  [1]
PUSH [VINT_LAYER]
POP r3
;</Epression>
PUSH r3
;<Epression>
; Flush stack: 16  [1]
PUSH [VINT_PICFIRE]
POP r3
;</Epression>
PUSH r3
;<Epression>
; Flush stack: 16 1 + 1 -  [5]
LD int r0,rb
CAL int ADD r0,20
PUSH [r0]
PUSH 7
POP r1
POP r0
CAL int ADD r0,r1
PUSH r0
PUSH 4
POP r1
POP r0
CAL int SUB r0,r1
PUSH r0
POP r3
;</Epression>
PUSH r3
;<Epression>
; Flush stack: 16  [1]
LD int r0,rb
CAL int ADD r0,16
PUSH [r0]
POP r3
;</Epression>
PUSH r3
;<Epression>
; Flush stack: 1  [1]
PUSH 8
POP r3
;</Epression>
PUSH r3
;<Epression>
; Flush stack: 1  [1]
PUSH 8
POP r3
;</Epression>
PUSH r3
;<Epression>
; Flush stack: 1  [1]
PUSH 0
POP r3
;</Epression>
PUSH r3
;<Epression>
; Flush stack: 1  [1]
PUSH 0
POP r3
;</Epression>
PUSH r3
;<Epression>
; Flush stack: 1  [1]
PUSH 63519
POP r3
;</Epression>
PUSH r3
CALL FINT_BLITCANVAS
CAL int ADD rs,36
LABEL57:	; End of If
FINT_DRAWFLY_EXIT:
LD int r3,[rb]
LD int rs,rb
POP rb
RET
; END FUN FINT_DRAWFLY

;(FINT_PLANE) Function
;parcount=0
FINT_PLANE:
PUSH rb
LD int rb,rs
CAL int ADD rs,-8
; This is a comment line
; If code
;<Epression>
; Flush stack: 16 16  [2]
PUSH [VINT_KEY_UP]
CALL FINT_KEYPRESS
CAL int ADD rs,4
PUSH r3
POP r3
;</Epression>
CMP int r3,0
JPC Z LABEL64
;<Epression>
; Flush stack: 16 1 -  [3]
PUSH [VINT_FLYY]
PUSH 6
POP r1
POP r0
CAL int SUB r0,r1
PUSH r0
POP r3
;</Epression>
LD int r0,VINT_FLYY
LD int [r0],r3
; If code
;<Epression>
; Flush stack: 16 1 ^ <  [4]
PUSH [VINT_FLYY]
PUSH 10
POP r1
LD int r0,0
CAL int SUB r0,r1
PUSH r0
POP r1
POP r0
CMP int r0,r1
JPC AE LABEL68
PUSH 1
JMP LABEL69
LABEL68:
PUSH 0
LABEL69:
POP r3
;</Epression>
CMP int r3,0
JPC Z LABEL66
;<Epression>
; Flush stack: 1 ^  [2]
PUSH 10
POP r1
LD int r0,0
CAL int SUB r0,r1
PUSH r0
POP r3
;</Epression>
LD int r0,VINT_FLYY
LD int [r0],r3
JMP LABEL67
LABEL66:	; Else
LABEL67:	; End of If
JMP LABEL65
LABEL64:	; Else
LABEL65:	; End of If
; If code
;<Epression>
; Flush stack: 16 16  [2]
PUSH [VINT_KEY_DOWN]
CALL FINT_KEYPRESS
CAL int ADD rs,4
PUSH r3
POP r3
;</Epression>
CMP int r3,0
JPC Z LABEL70
;<Epression>
; Flush stack: 16 1 +  [3]
PUSH [VINT_FLYY]
PUSH 4
POP r1
POP r0
CAL int ADD r0,r1
PUSH r0
POP r3
;</Epression>
LD int r0,VINT_FLYY
LD int [r0],r3
; If code
;<Epression>
; Flush stack: 16 1 >  [3]
PUSH [VINT_FLYY]
PUSH 300
POP r1
POP r0
CMP int r0,r1
JPC BE LABEL74
PUSH 1
JMP LABEL75
LABEL74:
PUSH 0
LABEL75:
POP r3
;</Epression>
CMP int r3,0
JPC Z LABEL72
;<Epression>
; Flush stack: 1  [1]
PUSH 300
POP r3
;</Epression>
LD int r0,VINT_FLYY
LD int [r0],r3
JMP LABEL73
LABEL72:	; Else
LABEL73:	; End of If
JMP LABEL71
LABEL70:	; Else
LABEL71:	; End of If
; If code
;<Epression>
; Flush stack: 16 16  [2]
PUSH [VINT_KEY_LEFT]
CALL FINT_KEYPRESS
CAL int ADD rs,4
PUSH r3
POP r3
;</Epression>
CMP int r3,0
JPC Z LABEL76
;<Epression>
; Flush stack: 16 1 -  [3]
PUSH [VINT_FLYX]
PUSH 5
POP r1
POP r0
CAL int SUB r0,r1
PUSH r0
POP r3
;</Epression>
LD int r0,VINT_FLYX
LD int [r0],r3
; If code
;<Epression>
; Flush stack: 16 1 ^ <  [4]
PUSH [VINT_FLYX]
PUSH 10
POP r1
LD int r0,0
CAL int SUB r0,r1
PUSH r0
POP r1
POP r0
CMP int r0,r1
JPC AE LABEL80
PUSH 1
JMP LABEL81
LABEL80:
PUSH 0
LABEL81:
POP r3
;</Epression>
CMP int r3,0
JPC Z LABEL78
;<Epression>
; Flush stack: 1 ^  [2]
PUSH 10
POP r1
LD int r0,0
CAL int SUB r0,r1
PUSH r0
POP r3
;</Epression>
LD int r0,VINT_FLYX
LD int [r0],r3
JMP LABEL79
LABEL78:	; Else
LABEL79:	; End of If
JMP LABEL77
LABEL76:	; Else
LABEL77:	; End of If
; If code
;<Epression>
; Flush stack: 16 16  [2]
PUSH [VINT_KEY_RIGHT]
CALL FINT_KEYPRESS
CAL int ADD rs,4
PUSH r3
POP r3
;</Epression>
CMP int r3,0
JPC Z LABEL82
;<Epression>
; Flush stack: 16 1 +  [3]
PUSH [VINT_FLYX]
PUSH 5
POP r1
POP r0
CAL int ADD r0,r1
PUSH r0
POP r3
;</Epression>
LD int r0,VINT_FLYX
LD int [r0],r3
; If code
;<Epression>
; Flush stack: 16 1 >  [3]
PUSH [VINT_FLYX]
PUSH 410
POP r1
POP r0
CMP int r0,r1
JPC BE LABEL86
PUSH 1
JMP LABEL87
LABEL86:
PUSH 0
LABEL87:
POP r3
;</Epression>
CMP int r3,0
JPC Z LABEL84
;<Epression>
; Flush stack: 1  [1]
PUSH 410
POP r3
;</Epression>
LD int r0,VINT_FLYX
LD int [r0],r3
JMP LABEL85
LABEL84:	; Else
LABEL85:	; End of If
JMP LABEL83
LABEL82:	; Else
LABEL83:	; End of If
;<Epression>
; Flush stack: 16  [1]
PUSH [VINT_FLYX]
POP r3
;</Epression>
PUSH r3
;<Epression>
; Flush stack: 16  [1]
PUSH [VINT_FLYY]
POP r3
;</Epression>
PUSH r3
;<Epression>
; Flush stack: 1  [1]
PUSH 0
POP r3
;</Epression>
PUSH r3
CALL FINT_DRAWFLY
CAL int ADD rs,12
; If code
;<Epression>
; Flush stack: 16 16 1 =  [4]
PUSH [VINT_KEY_SPACE]
CALL FINT_KEYPRESS
CAL int ADD rs,4
PUSH r3
PUSH 0
POP r1
POP r0
CMP int r0,r1
JPC NZ LABEL90
PUSH 1
JMP LABEL91
LABEL90:
PUSH 0
LABEL91:
POP r3
;</Epression>
CMP int r3,0
JPC Z LABEL88
;<Epression>
; Flush stack: 1  [1]
PUSH 0
POP r3
;</Epression>
LD int r0,VINT_SPACESTATUS
LD int [r0],r3
JMP LABEL89
LABEL88:	; Else
LABEL89:	; End of If
; If code
;<Epression>
; Flush stack: 16 1 = 16 16 &  [6]
PUSH [VINT_SPACESTATUS]
PUSH 0
POP r1
POP r0
CMP int r0,r1
JPC NZ LABEL94
PUSH 1
JMP LABEL95
LABEL94:
PUSH 0
LABEL95:
PUSH [VINT_KEY_SPACE]
CALL FINT_KEYPRESS
CAL int ADD rs,4
PUSH r3
POP r1
POP r0
CAL int MUL r0,r1
PUSH r0
POP r3
;</Epression>
CMP int r3,0
JPC Z LABEL92
;<Epression>
; Flush stack: 1  [1]
PUSH 1
POP r3
;</Epression>
LD int r0,VINT_SPACESTATUS
LD int [r0],r3
; If code
;<Epression>
; Flush stack: 16 1 <  [3]
PUSH [VINT_FIRECOUNT]
PUSH 2
POP r1
POP r0
CMP int r0,r1
JPC AE LABEL98
PUSH 1
JMP LABEL99
LABEL98:
PUSH 0
LABEL99:
POP r3
;</Epression>
CMP int r3,0
JPC Z LABEL96
;<Epression>
; Flush stack: 16 1 +  [3]
PUSH [VINT_FIRECOUNT]
PUSH 1
POP r1
POP r0
CAL int ADD r0,r1
PUSH r0
POP r3
;</Epression>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -