📄 box.asm
字号:
inc bl
cmp byte ptr[edi+ebx],0
jnz @f
mov bl,byte ptr[esi+2]
inc bl
cmp byte ptr[edi+ebx],0
jnz @f
invoke _setbuff,0,0
invoke _shift,R
invoke _setbuff,1,0
@@:
.endif
.else
.if dialeft == 1
mov bl,byte ptr[esi+2]
dec bl
cmp byte ptr[edi+ebx],0
jnz @f
mov bl,byte ptr[esi+3]
dec bl
cmp byte ptr[edi+ebx],0
jnz @f
invoke _setbuff,0,0
invoke _shift,L
invoke _setbuff,1,0
@@:
.elseif diaright == 1
mov bl,byte ptr[esi]
inc bl
cmp byte ptr[edi+ebx],0
jnz @f
mov bl,byte ptr[esi+1]
inc bl
cmp byte ptr[edi+ebx],0
jnz @f
invoke _setbuff,0,0
invoke _shift,R
invoke _setbuff,1,0
@@:
.endif
.endif
.endif
jmp exit2
cir:
cmp cirjh,0
jz @f
cmp cirjh,5
jb exit2
@@:
lea esi,rdcoord
.if random2 == 1
.if rdtop == 1
mov al,byte ptr[esi]
mov ah,0
mov bl,10
div bl
cmp ah,2
jb @f
cmp ah,8
ja @f
mov al,byte ptr[esi]
sub al,2
movzx eax,al
invoke _testzero,eax,3,10
or eax,eax
jnz @f
mov al,byte ptr[esi+1]
dec al
invoke _testzero,eax,3,10
or eax,eax
jnz @f
mov al,byte ptr[esi+2]
inc al
invoke _testzero,eax,2,10
or eax,eax
jnz @f
invoke _ratate,18,9,0,-9
mov rdtop,2
@@:
.elseif rdtop == 2
mov al,byte ptr[esi]
sub al,20
movzx eax,al
invoke _testzero,eax,3,1
or eax,eax
jnz @f
mov al,byte ptr[esi]
sub al,10
movzx eax,al
invoke _testzero,eax,3,1
or eax,eax
jnz @f
mov al,byte ptr[esi+2]
add al,10
invoke _testzero,eax,2,1
or eax,eax
jnz @f
invoke _ratate,-18,-9,0,9
mov rdtop,1
@@:
.endif
.elseif random2 == 3
.if rdtop == 1
mov al,byte ptr[esi]
mov ah,0
mov bl,10
div bl
cmp ah,1
jb @f
mov al,byte ptr[esi]
dec al
movzx eax,al
invoke _testzero,eax,2,10
or eax,eax
jnz @f
mov al,byte ptr[esi]
inc al
invoke _testzero,eax,2,10
or eax,eax
jnz @f
invoke _ratate,9,0,-9,-20
mov rdtop,2
@@:
.elseif rdtop == 2
mov al,byte ptr[esi+3]
sub al,2
movzx eax,al
invoke _testzero,eax,2,1
or eax,eax
jnz @f
mov al,byte ptr[esi]
add al,10
invoke _testzero,eax,2,1
or eax,eax
jnz @f
invoke _ratate,11,0,-11,-2
mov rdtop,3
@@:
.elseif rdtop == 3
mov al,byte ptr[esi]
mov ah,0
mov bl,10
div bl
cmp ah,8
ja @f
mov al,byte ptr[esi+3]
add al,10
movzx eax,al
invoke _testzero,eax,2,10
or eax,eax
jnz @f
mov al,byte ptr[esi]
inc al
invoke _testzero,eax,2,-10
or eax,eax
jnz @f
invoke _ratate,-9,0,9,20
mov rdtop,4
@@:
.else
mov al,byte ptr[esi+3]
inc al
movzx eax,al
invoke _testzero,eax,2,1
or eax,eax
jnz @f
mov al,byte ptr[esi+1]
sub al,10
invoke _testzero,eax,2,1
or eax,eax
jnz @f
invoke _ratate,-11,0,11,2
mov rdtop,1
@@:
.endif
.elseif random2 == 4
.if rdtop == 1
mov al,byte ptr[esi]
mov ah,0
mov bl,10
div bl
cmp ah,8
ja @f
mov al,byte ptr[esi]
dec al
movzx eax,al
invoke _testzero,eax,2,10
or eax,eax
jnz @f
mov al,byte ptr[esi+1]
inc al
invoke _testzero,eax,2,10
or eax,eax
jnz @f
invoke _ratate,9,0,-9,2
mov rdtop,2
@@:
.elseif rdtop == 2
mov al,byte ptr[esi+2]
sub al,10
movzx eax,al
invoke _testzero,eax,2,-1
or eax,eax
jnz @f
mov al,byte ptr[esi]
add al,10
invoke _testzero,eax,2,1
or eax,eax
jnz @f
invoke _ratate,11,0,-11,-20
mov rdtop,3
@@:
.elseif rdtop == 3
mov al,byte ptr[esi]
mov ah,0
mov bl,10
div bl
cmp ah,1
jb @f
mov al,byte ptr[esi+2]
dec al
movzx eax,al
invoke _testzero,eax,2,10
or eax,eax
jnz @f
mov al,byte ptr[esi]
inc al
invoke _testzero,eax,2,-10
or eax,eax
jnz @f
invoke _ratate,-9,0,9,-2
mov rdtop,4
@@:
.else
mov al,byte ptr[esi]
sub al,10
movzx eax,al
invoke _testzero,eax,2,-1
or eax,eax
jnz @f
mov al,byte ptr[esi+2]
add al,10
invoke _testzero,eax,2,1
or eax,eax
jnz @f
invoke _ratate,-11,0,11,20
mov rdtop,1
@@:
.endif
.elseif random2 == 5
.if rdtop == 1
mov al,byte ptr[esi]
inc al
movzx eax,al
invoke _testzero,eax,1,0
or eax,eax
jnz @f
mov al,byte ptr[esi]
dec al
invoke _testzero,eax,1,0
or eax,eax
jnz @f
mov al,byte ptr[esi+1]
add al,10
invoke _testzero,eax,2,1
or eax,eax
jnz @f
invoke _ratate,9,11,0,-11
mov rdtop,2
@@:
.elseif rdtop == 2
mov al,byte ptr[esi+1]
mov ah,0
mov bl,10
div bl
cmp ah,8
ja @f
mov al,byte ptr[esi]
sub al,10
movzx eax,al
invoke _testzero,eax,1,0
or eax,eax
jnz @f
mov al,byte ptr[esi]
add al,10
invoke _testzero,eax,1,0
or eax,eax
jnz @f
mov al,byte ptr[esi+2]
inc al
invoke _testzero,eax,2,10
or eax,eax
jnz @f
invoke _ratate,11,-9,0,9
mov rdtop,3
@@:
.elseif rdtop == 3
mov al,byte ptr[esi]
inc al
movzx eax,al
invoke _testzero,eax,1,0
or eax,eax
jnz @f
mov al,byte ptr[esi]
dec al
invoke _testzero,eax,1,0
or eax,eax
jnz @f
mov al,byte ptr[esi+1]
sub al,10
invoke _testzero,eax,2,-10
or eax,eax
jnz @f
invoke _ratate,-9,-11,0,11
mov rdtop,4
@@:
.else
mov al,byte ptr[esi+1]
mov ah,0
mov bl,10
div bl
cmp ah,1
jb @f
mov al,byte ptr[esi]
sub al,10
movzx eax,al
invoke _testzero,eax,1,0
or eax,eax
jnz @f
mov al,byte ptr[esi+3]
inc al
invoke _testzero,eax,1,0
or eax,eax
jnz @f
mov al,byte ptr[esi+1]
dec al
invoke _testzero,eax,2,10
or eax,eax
jnz @f
invoke _ratate,-11,9,0,-9
mov rdtop,1
@@:
.endif
.elseif random2 == 6
.if rdtop == 1
mov al,byte ptr[esi]
add al,10
movzx eax,al
invoke _testzero,eax,1,0
or eax,eax
jnz @f
mov al,byte ptr[esi+1]
inc al
invoke _testzero,eax,1,0
or eax,eax
jnz @f
invoke _ratate,20,9,0,-11
mov rdtop,2
@@:
.elseif rdtop == 2
mov al,byte ptr[esi]
mov ah,0
mov bl,10
div bl
cmp ah,7
ja @f
mov al,byte ptr[esi+3]
dec al
movzx eax,al
invoke _testzero,eax,1,0
or eax,eax
jnz @f
mov al,byte ptr[esi+3]
inc al
invoke _testzero,eax,2,10
or eax,eax
jnz @f
invoke _ratate,-20,-9,0,11
mov rdtop,1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -