ASM Tablica wypełniana kolejnymi licczbami

0

Witam potrzebuję przerobić poniższy kod tak by wypełniał tablicę kolejnymi liczbami. Z góry dziękuje za jakąkolwiek pomoc :)

segment .data
cyfra   db	'0'
ile     equ     20
newline db	0xa

segment .bss
licznik resb    1

segment .text
	global  _start
_start: mov     cl, ile
L1	mov     [licznik], cl
        mov     eax, 4
        mov     ebx, 1
        mov     ecx, cyfra
        mov     edx, 1
        int     0x80
        mov     cl, [licznik]
        dec     cl
        jnz     L1
        mov     eax, 4
        mov     ebx, 1
        mov     ecx, newline
        mov     edx, 1
        int     0x80
        mov     eax, 1
        mov     ebx, 0
        int     0x80
0

jak chcesz stworzyć na stosie tablice to:
wylicz adres początku tablicy instrukcją lea później tylko w pętli zwiększaj ten adres o wielkość zmiennej(dword --> 4 bytes word -->2 bytes) i pod ten zinteretowany adres wrzucaj kolejne wartości 1,2,3,4 itd. Nie wiem czy o to ci chodzi

0

Tak o to, tylko bedzie problem z zapisem. (mała wiedza ma z asm :) )

1

To będzie mniej więcej coś takiego.

 
funkcja:
push ebp
mov ebp,esp
sub esp, 4 * 10 ; 10 elementowa tablica dwordow
lea eax, [ebp - 40] ; eax--> początek tablicy
mov ecx, 10
mov ebx, 0;
petla:
mov dword [eax], ebx  
add eax, 4 ; przeuwamy o 4 bajty na następny element tablicy
inc ebx
loop petla
leave 
ret

Z wypisywaniem tych elementów nie powinno być już problemu

0

Dzięki wielkie :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1