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

📄 02_j.asm

📁 多种汇编语言程序设计案例
💻 ASM
📖 第 1 页 / 共 2 页
字号:
             mov        dl,col1
             jmp        plot_next10
 exit721:    mov        dh,line2
             mov        di,pot2
             mov        dl,col2
             jmp        plot_next10
 exit733:      sub  cx,cx
             mov        col,4
             mov        col01,4
             mov        char01,2
             mov        char02,2
             mov        di,pointer1
             mov        dh,line_on1
             mov        dl,cool0
             dec        char02
             jmp        plot_next10
 exit734:      sub  cx,cx
             mov        di,pointer2
             mov        dh,line_on2
             mov        dl,cool1
             jmp        plot_next10
 exit031:      jmp  exit010
 plot_next10:
             add  dh,[di+2]
             add  dl,[di+3]
             mov  ah,2
             int  10h
             cmp  char0,0
             je   exit770
 exit770:    cmp  char01,1             
             je   exit790
             cmp  char01,0
             je   exit820
             cmp  char02,1
             je   exit790
             cmp  char02,0
             je   exit820
             cmp  dl,39
             jb   exit760
             jmp  exit780
 exit790:    cmp  dl,39
             ja   exit760
             jmp  exit780
 exit820:    cmp  dl,39
             jb   exit760
             jmp  exit780
 exit780:    mov  al,[di]     
             mov  bl,[di+1]
             push cx
             mov  cx,1
             mov  ah,09
             int  10h
             pop  cx
             jmp  exit760
 exit032:    jmp  exit031
 exit760:
             dec  col
             je   exit510
             add  di,4
             jmp  plot_next10
 exit510:    cmp  char01,0
             je   exit032   ;-------------
             cmp  char01,1
             je   exit120
             cmp  char02,1
             je   exit520
             cmp  char02,0
             je   exit032
             cmp  char0,0  
             je   exit032
             mov  line1,dh
             mov  col1,dl
             add  di,4
             mov  pot1,di
             mov  col,4     
             dec  char0
             jmp  exit711
  exit520:
             mov  line1,dh
             mov  col1,dl
             add  di,4
             mov  pot1,di
             mov  col,4     
             dec  char02
             jmp  exit734

 exit120:    mov  line1,dh
             mov  col1,dl             
             add  di,4
             mov  pot1,di
             dec  char01
             cmp  col01,26
             je   exit830
             mov  col,4
             jmp  exit721
 exit830:    mov  col,2
             jmp  exit721
  must_21    endp
 ;------------------------------------------
;-----------------------------------------
 erase2       proc       near
            mov  dl,cool3
            mov  col0,dl
            mov        col,4
            mov        col01,4
            mov        char0,2
            mov        char01,2
            mov        char02,2
            sub  cx,cx
            mov        cx,char_cnt1
            mov        di,pointer1
            mov        dh,line_on1
            mov        dl,col_on1
            mov        cool0,dl
            mov        count_cx,8
            jmp        erase_next2

exit62L:     sub  cx,cx
            mov        cx,char_cnt2
            mov        di,pointer2
            mov        dh,line_on2
            mov        dl,col_on2
            mov        cool1,dl
            dec        char0
            jmp        erase_next2

 exit011L:   mov  line2,dh
             mov  col2,dl
             add  di,4
             mov  pot2,di
             mov  dl,col01

             cmp  col0,dl
             je   exit021L

             cmp  col01,24
             je   exit013L
             add  col01,4
             jmp  exit014L
 exit013L:   add  col01,2  
             mov  col,2
             jmp  exit015L
 exit014L:   mov  col,4
 exit015L:   mov  char01,2 
             dec  char01 
             jmp  exit4101L

 exit021L:   dec  count_cx
             jne  leftL
             add        col_on1,2
             sub        col_on2,2
             ret
                         
 leftL:      add  cool0,6             
             sub  cool1,6
             cmp  col0,26
             je   exit733L
             mov  dl,col0
             add  dl,12
             cmp  dl,26
             jae  exit732L
             mov  col0,dl
             jmp  exit733L
 exit732L:   mov  col0,26
             jmp  exit733L

 exit4101L:  mov        dh,line1
             mov        di,pot1
             mov        dl,col1
             jmp        erase_next2
 exit3101L:  mov        dh,line2
             mov        di,pot2
             mov        dl,col2
             jmp        erase_next2
 exit733L:     sub  cx,cx
             mov        col,4
             mov        col01,4
             mov        char01,2
             mov        char02,2
             mov        di,pointer1
             mov        dh,line_on1
             mov        dl,cool0
             dec        char02
             jmp        erase_next2
 exit734L:     sub  cx,cx
             mov        di,pointer2
             mov        dh,line_on2
             mov        dl,cool1
             jmp        erase_next2
 exit012L:   jmp  exit011L
 erase_next2:
             add        dh,[di+2]
             add        dl,[di+3]
             mov        ah,2
             int        10h
             cmp  char0,0
             je   exit77L
             cmp  dl,39
             ja   exit76L
             jmp  exit78L
 exit77L:    cmp  char01,1             
             je   exit79L
             cmp  char01,0
             je   exit82L
             cmp  char02,1
             je   exit79L
             cmp  char02,0
             je   exit82L
 exit79L:    cmp  dl,39
             ja   exit76L
             jmp  exit78L
 exit82L:    cmp  dl,39
             jb   exit76L
             jmp  exit78L
 exit78L:    mov        al,'*'
             mov        bl,0
             push       cx
             mov        cx,1
             mov        ah,9
             int        10h
             pop        cx
  ;-------------------------------------
 exit76L:    dec        col
             je         exit07L
             add        di,4
             jmp        erase_next2

 exit018L:   jmp  exit012L

 exit07L:    cmp  char01,0
             je   exit018L  ;-------------
             cmp  char01,1
             je   exit121L
             cmp  char02,1
             je   exit01L
             cmp  char02,0
             je   exit018L  ;--------------------
             cmp  char0,0
             je   exit018L

             mov  line1,dh
             mov  col1,dl
             add  di,4
             mov  pot1,di
             mov  col,4     
             dec  char0
             jmp  exit62L
 exit01L:
             mov  line1,dh
             mov  col1,dl
             add  di,4
             mov  pot1,di
             mov  col,4     
             dec  char02
             jmp  exit734L

 exit121L:   mov  line1,dh
             mov  col1,dl
             add  di,4
             mov  pot1,di
             dec  char01
             cmp  col01,26
             je   exit122L
             mov  col,4
             jmp  exit3101L
 exit122L:   mov  col,2
             jmp  exit3101L
 erase2       endp
 ;------------------------------------------
 ;------------------------------------------
 dly_qrtr    proc       near
             push       cx
             push       dx
             mov        dx,25
 dll:        mov        cx,65530
 dl2:        loop       dl2
             dec        dx
             jnz        dll
             pop        dx
             pop        cx
             ret
 dly_qrtr    endp
 ;---------------------------------------
 code_seg    ends
             end    main

⌨️ 快捷键说明

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