erh 发表于 2017-6-22 19:19:54

终于感觉到了一些病毒的味道

assume cs:code

code segment
        start:
        ;----将0号中断的程序地址设置为:0:200
        ;----将cs:d0处的长度为d0end-d0的数据拷贝到0:200处---
        mov ax,0
        mov ds,ax
        mov ds:,ax
        mov ax,200h
        mov ds:,ax
       
        mov ax,0
        mov es,ax
        mov di,200h
        mov ax,cs
        mov ds,ax
        mov ax,d0
        mov si,ax
        mov cx,offset d0end - offset d0
        cld
        rep movsb
       
        mov ax,4c00h
        int 21h
        ;----触发0号中断后,显示Welcome to masm!----
        d0:
        jmp d0start
        db "Welcome to masm!"
        d0start:
        mov ax,0b800h
        mov es,ax
        mov ax,0a0h*5
        ;mov bl,5
        ;mul bl
        add ax,48
        mov di,ax
        mov ax,cs
        mov ds,ax
        mov si,202h
       
        mov cx,10h
        s:
                mov al,ds:
                mov es:,al
                inc di
                mov al,2
                mov es:,al
                inc si
                inc di
        loop s
       
        mov ax,4c00h
        int 21h
        d0end:
        nop
       
code ends
end start

movsb 真的好用,省事啊{:10_245:}

erh 发表于 2017-6-22 19:36:08

assume cs:code

code segment
        start:
                mov ax,1000
                mov bl,0
                div bl
               
                mov ax,4c00h
                int 21h
code ends
end start

触发0号中断 的程序,先执行上面的程序,再执行这个才能看到效果。dosbox下运行



页: [1]
查看完整版本: 终于感觉到了一些病毒的味道