box.asm

来自「如何在VB下实现BP神经网络的拓扑优化算法」· 汇编 代码 · 共 1,919 行 · 第 1/5 页

ASM
1,919
字号
                    @@:
                .endif
            .elseif    rdtop == 3
                .if    dialeft == 1
                    mov    bl,byte ptr[esi]
                    dec    bl
                    cmp    byte ptr[edi+ebx],0
                    jnz    @f    
                    mov    bl,byte ptr[esi+1]
                    dec    bl
                    cmp    byte ptr[edi+ebx],0
                    jnz    @f    
                    mov    bl,byte ptr[esi+2]
                    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
                    mov    bl,byte ptr[esi+3]
                    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+3]
                    inc    bl
                    cmp    byte ptr[edi+ebx],0
                    jnz    @f
                        invoke    _setbuff,0,0
                        invoke    _shift,R
                        invoke    _setbuff,1,0
                    @@:
                .endif
            .endif
        .elseif random2 == 5
            .if    rdtop == 1
                .if    dialeft == 1
                    mov    bl,byte ptr[esi]
                    dec    bl
                    cmp    byte ptr[edi+ebx],0
                    jnz    @f
                    mov    bl,byte ptr[esi+1]
                    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+3]
                    inc    bl
                    cmp    byte ptr[edi+ebx],0
                    jnz    @f
                        invoke    _setbuff,0,0
                        invoke    _shift,R
                        invoke    _setbuff,1,0
                    @@:
                .endif
            .elseif    rdtop == 2
                .if    dialeft == 1
                    mov    bl,byte ptr[esi]
                    dec    bl
                    cmp    byte ptr[edi+ebx],0
                    jnz    @f
                    mov    bl,byte ptr[esi+1]
                    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+1]
                    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
                    mov    bl,byte ptr[esi+3]
                    inc    bl
                    cmp    byte ptr[edi+ebx],0
                    jnz    @f
                        invoke    _setbuff,0,0
                        invoke    _shift,R
                        invoke    _setbuff,1,0
                    @@:
                .endif
            .elseif    rdtop == 3
                .if    dialeft == 1
                    mov    bl,byte ptr[esi]
                    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
            .else
                .if    dialeft == 1
                    mov    bl,byte ptr[esi+1]
                    dec    bl
                    cmp    byte ptr[edi+ebx],0
                    jnz    @f
                    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
                    mov    bl,byte ptr[esi+3]
                    inc    bl
                    cmp    byte ptr[edi+ebx],0
                    jnz    @f
                        invoke    _setbuff,0,0
                        invoke    _shift,R
                        invoke    _setbuff,1,0
                    @@:
                .endif
            .endif        
        .elseif random2 == 6
            .if    rdtop == 1
                .if    dialeft == 1
                    mov    bl,byte ptr[esi]
                    dec    bl
                    cmp    byte ptr[edi+ebx],0
                    jnz    @f
                    mov    bl,byte ptr[esi+2]
                    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+1]
                    inc    bl
                    cmp    byte ptr[edi+ebx],0
                    jnz    @f
                    mov    bl,byte ptr[esi+3]
                    inc    bl
                    cmp    byte ptr[edi+ebx],0
                    jnz    @f
                        invoke    _setbuff,0,0
                        invoke    _shift,R
                        invoke    _setbuff,1,0
                    @@:
                .endif
            .elseif    rdtop == 2
                .if    dialeft == 1
                    mov    bl,byte ptr[esi]
                    dec    bl
                    cmp    byte ptr[edi+ebx],0
                    jnz    @f
                    mov    bl,byte ptr[esi+1]
                    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+2]
                    inc    bl
                    cmp    byte ptr[edi+ebx],0
                    jnz    @f
                    mov    bl,byte ptr[esi+3]
                    inc    bl
                    cmp    byte ptr[edi+ebx],0
                    jnz    @f
                        invoke    _setbuff,0,0
                        invoke    _shift,R
                        invoke    _setbuff,1,0
                    @@:
                .endif
            .elseif    rdtop == 3
                .if    dialeft == 1
                    mov    bl,byte ptr[esi+1]
                    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+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        
        .else
            .if    rdtop == 1
                .if    dialeft == 1
                    mov    bl,byte ptr[esi]
                    dec    bl
                    cmp    byte ptr[edi+ebx],0
                    jnz    @f
                    mov    bl,byte ptr[esi+2]
                    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+1]
                    inc    bl
                    cmp    byte ptr[edi+ebx],0
                    jnz    @f
                    mov    bl,byte ptr[esi+3]
                    inc    bl
                    cmp    byte ptr[edi+ebx],0
                    jnz    @f
                        invoke    _setbuff,0,0
                        invoke    _shift,R
                        invoke    _setbuff,1,0
                    @@:
                .endif
            .elseif    rdtop == 2
                .if    dialeft == 1
                    mov    bl,byte ptr[esi]
                    dec    bl
                    cmp    byte ptr[edi+ebx],0
                    jnz    @f
                    mov    bl,byte ptr[esi+1]
                    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+2]
                    inc    bl
                    cmp    byte ptr[edi+ebx],0
                    jnz    @f
                    mov    bl,byte ptr[esi+3]
                    inc    bl
                    cmp    byte ptr[edi+ebx],0
                    jnz    @f
                        invoke    _setbuff,0,0
                        invoke    _shift,R
                        invoke    _setbuff,1,0
                    @@:
                .endif
            .elseif    rdtop == 3
                .if    dialeft == 1
                    mov    bl,byte ptr[esi+1]
                    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]

⌨️ 快捷键说明

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