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

📄 box.asm

📁 如何在VB下实现BP神经网络的拓扑优化算法
💻 ASM
📖 第 1 页 / 共 5 页
字号:
                    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 + -