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

📄 101_a.asm

📁 多种汇编语言程序设计案例
💻 ASM
📖 第 1 页 / 共 2 页
字号:
             db 3dh,0ch,1,0
             db 3dh,0ch,0,1
             db '_',0ch,-1,0
             db 3dh,0ch,-8,0
             db '_',0ch,-1,0
             db '_',0ch,0,1
             db 3dh,0ch,1,0
             db '_',0ch,8,0
             db 3dh,0ch,1,0
             db 3dh,0ch,0,1
             db '_',0ch,-1,0
             db 3dh,0ch,-8,0
             db '_',0ch,-1,0
             db '_',0ch,0,1
             db 3dh,0ch,1,0
             db '_',0ch,8,0
             db 3dh,0ch,1,0
             db 3dh,0ch,0,1
             db '_',0ch,-1,0
             db 5ch,0ch,-7,0
             db 5ch,0ch,-1,0
             db 5ch,0ch,1,1
             db 5ch,0ch,1,0
             db 2fh,0ch,6,0
             db 2ah,0ch,1,0
             db 2fh,0ch,-1,1
             db 28h,0ch,-1,0
             db 7ch,0ch,-1,0
             db 7ch,0ch,-1,0
             db 7ch,0ch,-1,0
             db 7ch,0ch,-1,0
             db 5ch,0ch,-1,0
             db 7ch,0ch,1,1
             db 7ch,0ch,1,0
             db 7ch,0ch,1,0
             db 7ch,0ch,1,0
             db 29h,0ch,1,0

  UUU        db 77
             db '_',0ch,0,0
             db 7ch,0ch,1,0
             db '_',0ch,-1,1
             db 3dh,0ch,1,0
             db 7ch,0ch,1,0
             db 7ch,0ch,1,0
             db 7ch,0ch,1,0
             db 7ch,0ch,1,0
             db 7ch,0ch,1,0
             db 7ch,0ch,1,0
             db 7ch,0ch,1,0
             db 5ch,0ch,1,1
             db 7ch,0ch,-1,0
             db 7ch,0ch,-1,0
             db 7ch,0ch,-1,0
             db 7ch,0ch,-1,0
             db 7ch,0ch,-1,0
             db 7ch,0ch,-1,0
             db 7ch,0ch,-1,0
             db 3dh,0ch,-1,0
             db '_',0ch,-1,0
             db '_',0ch,0,1
             db 7ch,0ch,1,0
             db 5ch,0ch,8,0
             db 5ch,0ch,1,0
             db 5ch,0ch,0,1
             db '_',0ch,-1,0
             db '_',0ch,0,1
             db '_',0ch,1,0
             db '_',0ch,0,1
             db '_',0ch,-1,0
             db '_',0ch,0,1
             db '_',0ch,1,0
             db '_',0ch,0,1
             db '_',0ch,-1,0
             db '_',0ch,0,1
             db '_',0ch,1,0
             db '_',0ch,0,1
             db '_',0ch,-1,0
             db '_',0ch,0,1
             db 2fh,0ch,1,0
             db 2bh,0ch,0,1
             db 2fh,0ch,-1,0
             db 7ch,0ch,-8,0
             db '_',0ch,-1,0
             db '_',0ch,0,1
             db 3dh,0ch,1,0
             db 7ch,0ch,1,0
             db 7ch,0ch,1,0
             db 7ch,0ch,1,0
             db 7ch,0ch,1,0
             db 7ch,0ch,1,0
             db 7ch,0ch,1,0
             db 7ch,0ch,1,0
             db 2ah,0ch,1,0
             db 2fh,0ch,1,0
             db 2fh,0ch,-1,1
             db 2bh,0ch,-1,0
             db 2bh,0ch,-1,0
             db 2bh,0ch,-1,0
             db 2bh,0ch,-1,0
             db 2bh,0ch,-1,0
             db 2bh,0ch,-1,0
             db 2bh,0ch,-1,0
             db 3dh,0ch,-1,0
             db '_',0ch,-1,0
             db '_',0ch,0,1
             db 3dh,0ch,1,0
             db 7ch,0ch,1,0
             db 7ch,0ch,1,0
             db 7ch,0ch,1,0
             db 7ch,0ch,1,0
             db 7ch,0ch,1,0
             db 7ch,0ch,1,0
             db 7ch,0ch,1,0
             db 7ch,0ch,-7,1
             db '_',0ch,-1,0
             db '_',0ch,0,1

  car        db 6
             db 3dh,0eh,0,0
             db 40h,0bh,1,0
             db 3dh,0eh,1,0
             db 3ch,0eh,0,1
             db 02ah,0bh,-1,0
             db 3ch,0eh,-1,0

  jeep       db 6
             db 3dh,0eh,0,0
             db 40h,0bh,1,0
             db 3dh,0eh,1,0
             db 3ch,0eh,0,-1
             db 02ah,0bh,-1,0
             db 3ch,0eh,-1,0

 char_cnt1   dw ?
 pointer1    dw ?             
 line_on1    db ?
 col_on1     db ?
 char        dw ?
 Acount       db ?
 Acount0      db ?
 Acount1      db ?
 data_seg    ends
 ;---------------------------------------
 code_seg    segment
             assume cs:code_seg,ds:data_seg
 main        proc  far
             push  ds
             sub   ax,ax
             sub   cx,cx
             push  ax
             push  cx
             mov   ax,data_seg
             mov   ds,ax
             mov   Acount1,2
             mov   Acount0,11
 Aagain:
             lea   di,QQQ
             mov   dh,8
             mov   dl,4
             call  move_shape1
             call  Amust_2

 Aagain0:    lea   di,III
             mov   dh,15
             mov   dl,23
             call  move_shape1
             call  Amust_2

             lea   di,AAAA
             mov   dh,13
             mov   dl,38
             call  move_shape1
             call  Amust_2

             lea   di,NNN
             mov   dh,15
             mov   dl,58
             call  move_shape1
             call  Amust_2

             lea   di,jeep
             mov   dh,4
             mov   dl,75
             call  move_shape1
             call  Amust_21
             cmp   Acount1,1
             jne   Aagain1
             pop   cx
             ret
  ;---------------------------------
 Aagain1:
             lea   di,JJJ
             mov   dh,6
             mov   dl,3
             call  move_shape1
             call  Amust_2

             lea   di,III
             mov   dh,15
             mov   dl,14
             call  move_shape1
             call  Amust_2

             lea   di,AAAA
             mov   dh,12
             mov   dl,24
             call  move_shape1
             call  Amust_2

             lea   di,NNN
             mov   dh,15
             mov   dl,42
             call  move_shape1
             call  Amust_2

             lea   di,GGG
             mov   dh,8
             mov   dl,58
             call  move_shape1
             call  Amust_2

             lea   di,jeep
             mov   dh,4
             mov   dl,75
             call  move_shape1
             call  Amust_21
  ;-----------------------------
  Aagain2:
             lea   di,DDD
             mov   dh,5
             mov   dl,3
             call  move_shape1
             call  Amust_2

             lea   di,AAAA
             mov   dh,13
             mov   dl,18
             call  move_shape1
             call  Amust_2

             lea   di,JJJ
             mov   dh,6
             mov   dl,36
             call  move_shape1
             call  Amust_2

             lea   di,III
             mov   dh,15
             mov   dl,47
             call  move_shape1
             call  Amust_2

             lea   di,UUU
             mov   dh,5
             mov   dl,59
             call  move_shape1
             call  Amust_2

             lea   di,jeep
             mov   dh,4
             mov   dl,75
             call  move_shape1
             call  Amust_21
  ;----------------------------
  Aagain3:
             lea   di,DDD
             mov   dh,5
             mov   dl,5
             call  move_shape1
             call  Amust_2
             dec   Acount1
             jmp   Aagain0
 main        endp
 ;----------------------------
 clear_screen proc near
             push   ax
             push   bx
             push   cx          
             push   dx
             mov    ah,6
             mov    al,0
             mov    ch,4
             mov    cl,3
             mov    dh,16
             mov    dl,63
             mov    bh,7
             int    10h
             pop     dx
             pop     cx
             pop     bx
             pop     ax
             ret
 clear_screen  endp
 ;-------------------------------------
 ;-------------------------------------
 move_shape1    proc near
                push ax
                push bx
                push cx
                push dx
                push di
                mov  ah,0fh
                int  10h
                sub  ch,ch
                mov  cl,[di]
                inc  di
                mov  char_cnt1,cx
                mov  pointer1,di
                mov  line_on1,dh
                mov  col_on1,dl
                mov  char,cx
                pop  di
                pop  dx
                pop  cx
                pop  bx                  
                pop  ax
                ret
 move_shape1    endp
 ;----------------------------
 Amust_2       proc       near
                push ax
                push bx
                push cx
                push dx
                push di
                mov  ah,0fh
                int  10h
               sub  cx,cx
             mov        cx,char_cnt1
             mov        di,pointer1
             mov        dh,line_on1
             mov        dl,col_on1
Aplot_next0:
             add  dh,[di+2]
             add  dl,[di+3]
             mov  ah,2
             int  10h
             mov  al,[di]
             mov  bl,[di+1]
             push cx
             mov  cx,1
             mov  ah,09
             int  10h
             pop  cx
             add  di,4
             call dly_qrtr
             loop Aplot_next0
  Aexit6:     
             pop  di
             pop  dx
             pop  cx
             pop  bx
             pop  ax
             ret
  Amust_2    endp
;---------------------------------------------
;*********************************************** 
 Amust_21      proc       near
                push ax
                push bx
                push cx
                push dx
                push di
                mov  ah,0fh
                int  10h
                mov  Acount,20
 Aexit1:         call dly_qrtr
                dec  Acount
                je   Aexit5
                jmp  Aexit1
 Aexit5:         sub  cx,cx         
             mov        cx,char_cnt1
             mov        di,pointer1
             mov        dh,line_on1
             mov        dl,col_on1
Aplot_next:
             add  dh,[di+2]
             add  dl,[di+3]             
             cmp  dl,2
             je   Aexit4
             mov  ah,2
             int  10h
             mov  al,[di]
             mov  bl,[di+1]
             push cx
             mov  cx,1
             mov  ah,09
             int  10h
             pop  cx
             cmp  al,40h
             je   Aexitx0
             cmp  al,02ah
             je   Aexitx0
             jmp  Aexitx1
 Aexitx0:    dec  Acount0
             jne  Aplot_next 
             mov  Acount0,11
 Aexitx1:    add  di,4
             loop Aplot_next
             call dly_qrtr
             call dly_qrtr
             call dly_qrtr
             call Aerase
             jmp  Aexit5
  Aexit4:    call Aerase
             pop  di
             pop  dx
             pop  cx
             pop  bx
             pop  ax
             ret
  Amust_21    endp
;********************************************
;-----------------------------------------
 Aerase        proc       near
            mov        cx,char_cnt1
            mov        di,pointer1
            mov        dh,line_on1
            mov        dl,col_on1
 Aerase_next:
             add        dh,[di+2]
             add        dl,[di+3]
             cmp        dl,2
             je         Aleft
             mov        ah,2
             int        10h
             mov        ah,8
             int        10h
             cmp        al,40h
             je         Aexitx2
             cmp        al,02ah
             je         Aexitx2
             jmp        Aexitx3
 Aexitx2:    dec        Acount0
             jne        Aexitx3 
             mov        Acount0,11
 Aexitx3:    cmp        Acount1,1
             je         Aexit0
             mov        al,'*'
             mov        bl,03h
             jmp        Aexit7
 Aexit0:     mov        al,'*'
             mov        bl,0
 Aexit7:     push       cx
             mov        cx,1
             mov        ah,9
             int        10h
             pop        cx
             cmp        Acount0,11
             jne        Aerase_next
             add        di,4
             loop       Aerase_next
             dec        col_on1
             mov        cx,char_cnt1
             mov        di,pointer1
             mov        dh,line_on1
             mov        dl,col_on1
 Aleft:       ret
 Aerase        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 + -