<div dir="ltr">ez előzőekhez fűzném hozzá<div><br></div><div>pl. ezt az asm kódot akarom futtatni: (3 darab neon cső (piros, zöld, kék mozog a képernyőn, és egy szöveg jelenik meg általa)</div><div><br></div><div>.model tiny<br>.code<br>.386<br>org 100h<br>;------------------------- engine ---------------------------<br>    Stripe_Size  equ  40<br>Start:<br><br>   mov ax, 4a00h<br>   mov bx, 8192<br>   int 21h<br><br>    mov ax, 4800h<br>    mov bx, 40<br>    int 21h<br><br>    mov word ptr [pir], ax<br>    add ax, 201<br>    mov word ptr [zol], ax<br>    add ax, 201<br>    mov word ptr [kek], ax<br><br>    mov Ax, 13h<br>    int 10h<br><br>    mov Cx, 256<br>    xor Ax, Ax<br>    xor Bx, Bx<br>Null_Color:<br>Call Szinvaltas<br>inc Al<br>Loop Null_Color<br>;--------------------------------------------------------------<br>    mov dx, offset [Szoveg]<br>    mov ah, 9<br>    int 21h<br> mov ax, 0a000h<br> mov es, ax<br> mov cx, 24000<br> mov di, cx<br>novck:<br>mov ah, es:[di]<br>or ah, 0<br>jz novckug<br>add ah, 52<br>mov es:[di], ah<br>novckug:<br>inc di<br>loop novck<br><br>mov cx, 4<br>hanyatl:<br>push cx<br> mov di, 24000-640<br>;xor bh, bh<br> mov cx, di<br>Atl:<br>;xor ah, ah<br>mov al, es:[di+1]<br>mov bl, es:[di  ]<br>add ax, bx<br>mov bl, es:[di+321]<br>add ax, bx<br>mov bl, es:[di+320]<br>add ax, bx<br>shr ax, 2<br>mov es:[di], al<br>inc di<br>loop Atl<br>pop cx<br>loop hanyatl<br>;---------------------------------------<br>    mov Cx, 200<br>    xor Di, Di<br>    xor al, al<br>Stripes:<br>   push Cx<br>    mov Cx, 320<br>StripesX:<br>    mov ah, es:[di]<br>    mov bl, al<br>    cmp ah, 5<br>    jbe OverStripesX<br>    mov bl, ah<br>    add bl, 200<br>OverStripesX:<br>    mov es:[di], bl<br>    inc Di<br>loop StripesX<br>    inc al<br>    pop Cx<br>Loop Stripes<br>;-----------------------------------------------------------------<br>mov ax, 08C9h<br>xor bx, bx<br>mov cx, 55<br>ir_Szin:<br>call szinvaltas<br>inc ah<br>add bx, 0101h<br>inc al<br>loop ir_szin<br>;-----------------------------------------------------------------<br>Main:<br>    mov cx, 200<br>    xor al,al<br>Null_Blocks:<br>    mov bx, cx<br>    mov es, word ptr[pir]<br>    mov es:[bx], al<br>    mov es, word ptr[zol]<br>    mov es:[bx], al<br>    mov es, word ptr[kek]<br>    mov es:[bx], al<br>Loop Null_Blocks<br><br>    mov cx, Stripe_No<br>    xor bx, bx<br>Set_Stripe:<br>   push cx<br><br>    mov al, Stripe_Y[bx]<br>    xor ah, ah<br>    mov di, ax<br><br>    mov cx, Stripe_Size<br>    mov al, Stripe_Pir_V[bx]<br>    mov ah, Stripe_Zol_V[bx]<br>    mov dl, Stripe_Kek_V[bx]<br>Novel:<br>    mov es, word ptr[pir]<br>    add es:[di], al<br>    mov es, word ptr[zol]<br>    add es:[di], ah<br>    mov es, word ptr[kek]<br>    add es:[di], dl<br>    add al, Stripe_Pir[bx]<br>    add ah, Stripe_Zol[bx]<br>    add dl, Stripe_Kek[bx]<br>    inc di<br>Loop Novel<br>    mov cx, Stripe_Size<br>Csokkent:<br>    mov es, word ptr[pir]<br>    add es:[di], al<br>    mov es, word ptr[zol]<br>    add es:[di], ah<br>    mov es, word ptr[kek]<br>    add es:[di], dl<br>    sub al, Stripe_Pir[bx]<br>    sub ah, Stripe_Zol[bx]<br>    sub dl, Stripe_Kek[bx]<br>    inc di<br>Loop Csokkent<br>;--------<br>    mov al, Stripe_I [bx]<br>    mov ah, Stripe_Y [bx]<br>     or al, 0<br> jz Lemegy<br>    dec ah<br>    cmp ah, min_y<br>ja Kimegy<br>    dec al<br>jmp Kimegy<br>Lemegy:<br>    inc ah<br>    cmp ah, max_y<br> jb Kimegy<br>    inc al<br>Kimegy:<br>    mov Stripe_I [bx], al<br>    mov Stripe_Y [bx], ah<br>;--------<br>    inc bl<br>    pop cx<br>    dec cx<br> jz Out_Set_Stripe<br>jmp Set_Stripe<br>Out_Set_Stripe:<br>;------------<br>   call vertikalas<br>    mov cx, 200<br>Set_RBG:<br>    mov di, cx<br>    mov al, cl<br>    mov es, word ptr[pir]<br>    mov ah, es:[di]<br>    mov es, word ptr[zol]<br>    mov bl, es:[di]<br>    mov es, word ptr[kek]<br>    mov bh, es:[di]<br>call szinvaltas<br><br>Loop Set_RBG<br>;-------------------------- ESC ------------------------------<br>     in al, 60h<br>    xor al, 1h<br> jz OutMain<br>jmp Main<br>;------------------------ Good Bye ---------------------------<br>OutMain:<br>    mov ax, 3h<br>    int 10h<br><br>   mov ax, 0C00h<br>   int 21h<br><br>ret<br>;------------------------ procedure --------------------------<br>vertikalas proc<br>    mov dx,3dah<br>Vert1:<br>     in al,dx<br>   test al,8<br> jz vert1<br>Vert2:<br>     in al,dx<br>   test al,8<br>jnz vert2<br>ret<br>endp<br>;-------------------------------------------------------------<br>szinvaltas proc<br>  pusha<br>    mov dx, 3c8h<br>    out dx, al<br>    inc dx<br><br>    mov al, ah<br>    out dx, al<br><br>    mov al, bl<br>    out dx, al<br><br>    mov al, bh<br>    out dx, al<br>   popa<br>ret<br>endp<br>;--------------------------- value ---------------------------<br><br>pir dw ?<br>zol dw ?<br>kek dw ?<br><br>  Stripe_Pir db 1 dup (   0,   0,   1)<br>  Stripe_Zol db 1 dup (   0,   1,   0)<br>  Stripe_Kek db 1 dup (   1,   0,   0)<br>Stripe_Pir_V db 1 dup (   0,   0,   8)<br>Stripe_Zol_V db 1 dup (   0,   8,   0)<br>Stripe_Kek_V db 1 dup (   8,   0,   0)<br>    Stripe_Y db 1 dup (   0, 120-Stripe_Size, 120-(Stripe_Size*1))<br>    Stripe_I db 1 dup (   0,   0,   1)<br><br>   Stripe_No dw 3<br><br>       Min_Y db 0<br>       Max_Y db 200-(Stripe_Size*2)<br><br>Szoveg db 9 dup(10)<br>       db 9,' ÚÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄż', 10, 13<br>       db 9,' ÚÄij ÂÚÄÄÚÄżÚÄÄÚÄżÂ'   , 10, 13<br>       db 9,' ĂÄ łĂÄ´ĂÄ ĂÂŮĂÄ ĂÄ´ł'   , 10, 13<br>       db 9,' ŔÄÄłÁ ÁŔÄÄÁŔÄŔÄÄÁ ÁŔÄŮ' , 10, 13<br>       db 9,'    łÚÄÄÚÄżÚÂż', 10, 13<br>       db 9,'    łĂÄ ĂÄ´łłł', 10, 13<br>       db 9,'    ÁŔÄÄÁ ÁÁ Á', 36<br>;------------------------ end of stack -----------------------<br>ends<br>end Start<br></div></div>