All pastes #756523 Raw Edit

Untitled

public text v1 · immutable
#756523 ·published 2007-10-31 15:35 UTC
rendered paste body
section .text
global _start
_start:
    push ebp ;ebp elmentese
    mov ebp, esp ;esp a verem tetejere mutat

    mov ebx,[ebp+12] ;az elso argumentum cime

    ;A parameter atmasolasa a parameter cimkeju teruletre
    mov ecx,0
par_beolv:
    cmp ecx,4
    je beolv_vege
    cmp byte [ebx+ecx],0
    je beolv_vege
    mov al,[ebx+ecx]
    mov [parameter+ecx],al
    inc ecx
    jmp par_beolv
beolv_vege:
    mov [parhossz], cl ;cl a string hossza lesz

;;;;; A parameter konvertalasa ASCIIbol 2byteos egesz szamma
    xor edx,edx ;edx kinullazasa
    xor ecx,ecx ;ecx kinullazasa
    mov cl,[parhossz] ;ecx:=parameter hosszaval
konv_loop:
    mov al,[parhossz]
    sub al,cl
    push cx
    mov cl,0Ah
    mul cl
    pop cx
    mov bl,al
    mov al,[parameter+ecx]
    push cx
    mov cl,16h
    sub al,cl
    pop cx
    mul bl
    add dl,al
    loop konv_loop
    xor eax,eax
    mov al,dl
;;;;; A parameter konvertalasa kesz, az eax regiszterben van

    mov edx,len
    mov ecx,msg
    mov ebx,1
    mov eax,4
    int 80h

;;;;; Feltoltom "szamok" cimkeju memoria terulet ertekeit a parameterben kapott                                              szamig
    mov ecx,1
feltolt:
    mov byte [szamok+ecx-1],cl
    mov byte [szamok+ecx],1h ;Minden szamrol feltetelezzuk, hogy prim
    cmp ecx,eax
    je felt_veg
    inc ecx
    jmp feltolt
felt_veg:
;;;;; A "szamok" cimkeju memoria terulet feltoltese kesz

;;;;; A szamokat ugy reprezentalom, hogy 1 bajton a szamot abrazolom es a rakove                                             tkezo 1 bajton pedig azt hogy prim vagy nem
    mov ebx,2h ;incializaljuk ebx kezdeti erteket, 2-t
szita:
    mov ecx,ebx
szita2:
    add ecx,ebx
    cmp ecx,eax
    ja kereses
    mov byte [szamok+ecx],0h ;beallitjuk, hogy a szam nem prim
    jmp szita2
;megkeresi a kovetkezo primet es beallitja ebx erteket
kereses:
    inc ebx
    cmp byte [szamok+ebx],1h
    je szita
    jmp kereses
;;;;; A szita befejezodott, a primek a "szamok" cimkeju memoria teruleten vannak



    pop ebp
    mov ebx,0
    mov eax,1
    int 80h

section .data
    msg db "Anyad",0
    len equ 5

section .bss
    kimenet resd 300
    szamok resd  65535
    parameter resb 5