zoukankan      html  css  js  c++  java
  • 汇编语言 demo1,2,3

     1 assume cs:codesg
     2 
     3 data segment
     4 ;yellow
     5         db 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,1
     6 data ends
     7 
     8 stack segment
     9         dw 16 dup (0)
    10 stack ends
    11 
    12 codesg segment
    13 start:
    14         mov ax,data
    15         mov ds,ax
    16 
    17         mov ax,0b800h
    18         mov es,ax
    19 
    20         mov ax,stack
    21         mov ss,ax
    22         mov sp,20h
    23         mov di,0
    24         mov cx,16
    25    main:
    26         push cx
    27         mov al,2ah
    28         mov ah,ds:[di]
    29         inc di
    30         push di
    31 
    32         mov dx,1
    33         mov di,7d0h
    34         mov si,7d0h
    35         mov cx,0bh
    36 
    37    lmain:
    38         push cx
    39         push si
    40         push di
    41         mov bx,dx
    42         mov cx,dx
    43         
    44    ms:
    45         push cx
    46         mov bp,0
    47         mov cx,bx
    48 
    49    mA:
    50         mov es:[bp+di],ax                       
    51         mov es:[bp+si],ax
    52         add bp,4
    53         loop mA
    54 
    55         add di,09eh
    56         sub si,0a2h
    57         inc bx
    58         pop cx
    59         loop ms
    60 
    61         inc dx
    62         pop di
    63         pop si
    64         sub di,0a2h
    65         add si,09eh
    66         call delay
    67         pop cx
    68         loop lmain
    69 
    70         pop di
    71         pop cx
    72         loop main
    73 ;       jmp main
    74 
    75         mov ax,4c00h
    76         int 21h
    77 
    78 
    79 delay:
    80         mov cx,08h
    81    d1:
    82         push cx
    83         mov cx,0ffffh
    84    d2:
    85         loop d2
    86         pop cx
    87         loop d1
    88         ret
    89 
    90 codesg ends
    91 end start

    assume cs:codesg
    data segment
    ;zi
            db 'Welcome to the world assembly ! '
    ;ziti_color
            db 1,2,3,4,5,6,7,8
    ;yanhua
            db 4,52,23,8,66,38,56,64
            db 19,15,20,21,18,21,15,17
            db 8,7,6,5,4,3,2,1
    data ends
    
    stack segment
            dw 32 dup (0)
    stack ends
    
    codesg segment
    start:
            mov ax,data
            mov ds,ax
    
            mov ax,0b800h
            mov es,ax
            
            mov ax,stack
            mov ss,ax
            mov sp,40h
    
       again:
            call clear_screen
            mov bp,0
            mov cx,8
       main:
            call ziti
            call yanhua
            call delay
    
            inc bp
            loop main
    
          ;  jmp again
    
            mov ax,4c00h
            int 21h
    
    yanhua:
            push cx
            push si
            push di
            mov si,0
            mov di,0f00h
            mov al,ds:[bp+40]
            mov ah,0
            add ax,ax
            add di,ax
            mov al,2ah
            mov ah,ds:[bp+56]
            mov cl,ds:[bp+48]
            mov ch,0
    
       yh_s:
            mov es:[di],ax
            call ziti
            call delay
            mov word ptr es:[di],0
            sub di,0a0h
            loop yh_s
    
            call zhanfang
    
            pop di
            pop si
            pop cx
            ret
    
    zhanfang:
            push ax
            push di
            mov es:[di],ax
            call ziti
            call delay
            mov es:[di-2],ax
            mov es:[di+2],ax
            mov es:[di-9eh],ax
            mov es:[di+9eh],ax
            mov es:[di-0a2h],ax
            mov es:[di+0a2h],ax
            call ziti
            call delay
            mov es:[di-4],ax
            mov es:[di+4],ax
            mov es:[di-13ch],ax
            mov es:[di+13ch],ax
            mov es:[di-144h],ax
            mov es:[di+144h],ax
            call ziti
            call delay
            mov es:[di-6],ax
            mov es:[di+6],ax
            mov es:[di-1dah],ax
            mov es:[di+1dah],ax
            mov es:[di-1e6h],ax
            mov es:[di+1e6h],ax
    
            call ziti
            call delay
            push cx
            sub di,1e6h
            mov cx,7
       zs1:
            push cx
            push di
            mov cx,7
       zs2:
            mov word ptr es:[di],0
            add di,2
            loop zs2
    
            pop di
            add di,0a0h
            pop cx
            loop zs1
            call ziti
            pop cx
    
            pop di
            pop ax
            ret
    
    ziti:
            push ax
            push cx
            push si
            push di
            mov ah,ds:[bp+32]
            mov si,0
            mov di,710h
            mov cx,32
       s:
            mov al,ds:[si]
            mov es:[di],ax
            add di,2
            inc si
            loop s
    
            pop di
            pop si
            pop cx
            pop ax
            ret
    
    delay:
            push cx
            mov cx,6h
       s1:
            push cx
            mov cx,0ffffh
       s2:
            loop s2
            pop cx
            loop s1
            pop cx
            ret
    
    clear_screen:
            push cx
            push di
            mov di,0
            mov cx,7d0h
       clear:
            mov word ptr es:[di],0
            add di,2
            loop clear
    
            pop di
            pop cx
            ret
    
    codesg ends
    end start

    assume cs:codesg
    data segment
            db 'a','b','c','d','e','f','g','h'
            db 11,19,27,35,43,51,59,67
            db 5,9,13,17,21,25,29,33
            db 1,2,3,4,5,6,7,8
            db 8,7,6,5,4,3,2,1
    data ends
    
    stack segment
            dw 16 dup (0)
    stack ends
    
    codesg segment
    start:
            mov ax,0b800h
            mov es,ax
    
            mov ax,data
            mov ds,ax
    
            mov ax,stack
            mov ss,ax
            mov sp,20h
    
       agian:
            call clear_screen
            mov bp,0
    
            mov cx,8
       main:
            push cx
            call hou
            call qian
            inc bp
            pop cx
            loop main
    
    ;       jmp agian
    
            mov ax,4c00h
            int 21h
    
    hou:
            push ax
            push bx
            push cx
            push di
            push si
            mov di,50h
            mov si,0f50h
            mov al,ds:[bp+16]
            mov ah,0
            add ax,ax
            sub di,ax
            add si,ax
    
            mov bx,25
    
            mov cx,12
       s02:
            push cx
            push di
            push si
    
            mov cx,bx
       s12:
            mov al,'/'
            mov ah,ds:[bp+32]
            mov es:[si],ax
            mov al,''
            mov ah,ds:[bp+24]
            mov es:[di],ax
            add di,0a0h
            sub si,0a0h
            loop s12
    
            sub bx,2
            pop si
            pop di
            push si
            push di
    
            mov cl,ds:[bp+8]
            mov ch,0
       s22:
            mov al,ds:[bp]
            mov ah,ds:[bp+24]
            mov es:[di],ax
            add di,2
            loop s22
    
            mov cl,ds:[bp+8]
            mov ch,0
       s32:
            mov al,ds:[bp]
            mov ah,ds:[bp+32]
            mov es:[si],ax
            sub si,2
            loop s32
    
            pop di
            pop si
            add di,0a0h
            sub si,0a0h
            call delay
            call clear_screen
            pop cx
            loop s02
    
            pop si
            pop di
            pop cx
            pop bx
            pop ax
            ret
    
    qian:
            push ax
            push bx
            push cx
            push di
            push si
            mov di,07d0h
            mov si,07d0h
            mov al,ds:[bp+16]
            mov ah,0
            add ax,ax
            sub di,ax
            add si,ax
    
            mov bx,1
    
            mov cx,13
       s01:
            push cx
            push di
            push si
    
            mov cx,bx
       s11:
            mov al,'/'
            mov ah,ds:[bp+32]
            mov es:[si],ax
            mov al,''
            mov ah,ds:[bp+24]
            mov es:[di],ax
            sub di,0a0h
            add si,0a0h
            loop s11
    
            add bx,2
            pop si
            pop di
            push si
            push di
    
            mov cl,ds:[bp+8]
            mov ch,0
       s21:
            mov al,ds:[bp]
            mov ah,ds:[bp+24]
            mov es:[di],ax
            add di,2
            loop s21
    
            mov cl,ds:[bp+8]
            mov ch,0
       s31:
            mov al,ds:[bp]
            mov ah,ds:[bp+32]
            mov es:[si],ax
            sub si,2
            loop s31
    
            pop di
            pop si
            add di,0a0h
            sub si,0a0h
            call delay
            call clear_screen
            pop cx
            loop s01
    
            pop si
            pop di
            pop cx
            pop bx
            pop ax
            ret
    
    delay:
            push cx
            mov cx,6h
       ds0:
            push cx
            mov cx,0ffffh
       ds1:
            loop ds1
            pop cx
            loop ds0
            pop cx
            ret
    
    clear_screen:
            push cx
            push di
            mov di,0
            mov cx,2000
       sc0:
            mov word ptr es:[di],0
            add di,2
            loop sc0
            pop di
            pop cx
            ret
    
    codesg ends
    end start
  • 相关阅读:
    Spring使用c标签时缺失jstl uri="http://java.sun.com/jsp/jstl/core" prefix="c"
    Jsp页面报错:The superclass"javax.servlet.http.HttpServlet" was not found on the Java Build Path错误异常
    [Spring in action 笔记0]没有xml配置的spring
    Java语言和C语言的static的区别以及它们的内存分配方式
    为什么连续的scanf会被跳过或不执行
    scanf("%[^ ]", str)正则用法,strchr()用法
    newInstance参数详解
    多线程之BlockingQueue中 take、offer、put、add的一些比较
    [Struts2 in action 笔记3]坐享其成的拦截器(栈)
    ERROR StatusLogger Log4j2 could not find a logging implementation. Please add log4j-core to the classpath
  • 原文地址:https://www.cnblogs.com/regconfi/p/4187560.html
Copyright © 2011-2022 走看看