📄 drawbuliding.asm
字号:
DATAS SEGMENT
num dw ?
num1 dw ?
num2 dw ?;此处输入数据段代码
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
main proc far
ASSUME CS:CODES,DS:DATAS,SS:STACKS
MOV AX,DATAS
MOV DS,AX
mov ah,0
mov al,12h
int 10h
call clean
;call bottomline if necessary
call building
call floor
call window
call frontdoor
MOV AH,4CH
INT 21H
main endp
clean proc near
mov ax,0600h
mov bh,07
mov cx,0
mov dx,184fh
int 10h
clean endp
bottomline proc near
mov cx,0
mov dx,399
back:
mov ah,0ch
mov al,01
mov bh,0
int 10h
inc cx
cmp cx,639
jnz back
bottomline endp ;此处输入代码段代码
building proc near
mov cx,69
mov dx,29
back1: ;top line
mov ah,0ch
mov al,01
mov bh,0
int 10h
inc cx
cmp cx,599
jnz back1
mov cx,69
inc dx
cmp dx,39
jnz back1
;left line
mov cx,69
mov dx,39
back2:
mov ah,0ch
mov al,01
mov bh,0
int 10h
inc dx
cmp dx,399
jnz back2
mov dx,39
inc cx
cmp cx,79
jnz back2
;right line
mov cx,589
mov dx,39
back3:
mov ah,0ch
mov al,01
mov bh,0
int 10h
inc dx
cmp dx,399
jnz back3
mov dx,39
inc cx
cmp cx,599
jnz back3
building endp
window proc near ;windows
mov cx,130 ;the first floor windows
mov dx,309
backfirstfloor:
mov ah,0ch
mov al,01
mov bh,0
int 10h
inc dx
cmp dx,369
jnz backfirstfloor
mov dx,309
add cx,51
cmp cx,589
jnz backfirstfloor
mov cx,130
mov dx,309
mov num,232
backfirstfloor1:
mov ah,0ch
mov al,01
mov bh,0
int 10h
inc cx
cmp cx,num
jnz backfirstfloor1
add num,153
add cx,51
cmp num,691
jnz backfirstfloor1
mov cx,130
mov dx,369
mov num,232
backfirstfloor2:
mov ah,0ch
mov al,01
mov bh,0
int 10h
inc cx
cmp cx,num
jnz backfirstfloor2
add num,153
add cx,51
cmp num,691
jnz backfirstfloor2
;the windows of the second floor
mov cx,130
mov dx,189
backfirstfloor5:
mov ah,0ch
mov al,01
mov bh,0
int 10h
inc dx
cmp dx,249
jnz backfirstfloor5
mov dx,189
add cx,51
cmp cx,589
jnz backfirstfloor5
mov cx,130
mov dx,189
mov num,232
backfirstfloor4:
mov ah,0ch
mov al,01
mov bh,0
int 10h
inc cx
cmp cx,num
jnz backfirstfloor4
add num,153
add cx,51
cmp num,691
jnz backfirstfloor4
mov cx,130 ;the third floor windows
mov dx,69
backfirstfloor6:
mov ah,0ch
mov al,01
mov bh,0
int 10h
inc dx
cmp dx,129
jnz backfirstfloor6
mov dx,69
add cx,51
cmp cx,589
jnz backfirstfloor6
mov cx,130
mov dx,69
mov num,232
backfirstfloor7:
mov ah,0ch
mov al,01
mov bh,0
int 10h
inc cx
cmp cx,num
jnz backfirstfloor7
add num,153
add cx,51
cmp num,691
jnz backfirstfloor7
;the platform
mov cx,110
mov dx,249
mov num,252
mov num1,0
backplatform:
mov ah,0ch
mov al,01
mov bh,0
int 10h
inc cx
cmp cx,num
jnz backplatform
add cx,11
add num,153
cmp num,711
jnz backplatform
mov cx,110
mov dx,129
mov num,252
inc num1
cmp num1,2
jnz backplatform
mov cx,110
mov dx,249
mov num,249
mov num1,0
mov num2,279
backplatform1:
mov ah,0ch
mov al,01
mov bh,0
int 10h
inc dx
cmp dx,num2
jnz backplatform1
add cx,153
mov dx,num
cmp cx,569
jnz backplatform1
mov cx,110
mov dx,129
mov num,129
mov num2,159
inc num1
cmp num1,2
jnz backplatform1
mov cx,252
mov dx,249
mov num,249
mov num1,0
mov num2,279
backplatform2:
mov ah,0ch
mov al,01
mov bh,0
int 10h
inc dx
cmp dx,num2
jnz backplatform2
add cx,153
mov dx,num
cmp cx,864
jnz backplatform2
mov cx,252
mov dx,129
mov num,129
mov num2,159
inc num1
cmp num1,2
jnz backplatform2
window endp
floor proc near ;floors
mov cx,79
mov dx,159
mov num,169
backfloor:
mov ah,0ch
mov al,01
mov bh,0
int 10h
inc cx
cmp cx,589
jnz backfloor
inc dx
mov cx,79
cmp dx,num
jnz backfloor
add dx,110
mov cx,79
mov num,289
cmp dx,399
jnz backfloor
floor endp
frontdoor proc near
mov cx,09
mov dx,299
backup: ;up things
mov ah,0ch
mov al,01
mov bh,0
int 10h
inc cx
cmp cx,79
jnz backup
mov cx,09
inc dx
cmp dx,309
jnz backup
;steps
mov cx,29
mov dx,369
backstep:
mov ah,0ch
mov al,01
mov bh,0
int 10h
inc cx
cmp cx,79
jnz backstep
mov cx,09
mov dx,389
mov num,399
backstep1:
mov ah,0ch
mov al,01
mov bh,0
int 10h
inc dx
cmp dx,num
jnz backstep1
sub dx,20
sub num,10
add cx,10
cmp num,369
jnz backstep1
mov cx,09
mov dx,389
mov num,19
backstep2:
mov ah,0ch
mov al,01
mov bh,0
int 10h
inc cx
cmp cx,num
jnz backstep2
mov num,29
mov dx,379
cmp cx,29
jnz backstep2
;the light
mov cx,39
mov dx,312
backlight:
mov ah,0ch
mov al,04
mov bh,0
int 10h
inc cx
cmp cx,49
jnz backlight
mov cx,39
inc dx
cmp dx,316
jnz backlight
mov cx,42
mov dx,309
mov num,45
mov num1,cx
backlight1:
mov ah,0ch
mov al,4
mov bh,0
int 10h
inc cx
cmp cx,num
jnz backlight1
inc num
mov cx,num1
dec num1
dec cx
inc dx
cmp num,47
jnz backlight1
frontdoor endp
mov ah,08h
int 21h
CODES ENDS
end main
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -