section .text
global _start
_start:
; brk(2) megfeleloje, lekerdezzuk a .bss szekcio top-cimet (tovabbi
; dinamikus allokaciokhoz kell)
mov eax, 45
xor ebx, ebx
int 0x80
mov [alloc], eax
mov [end], eax
_loop:
; Kiterjesztjuk az allokalt teruletet a megadott merettel (size)
mov eax, 45
mov ebx, [end]
add ebx, [size]
int 0x80
mov [end], eax
; Feltoltjuk a lefoglalt memoriat (lapozas miatt kell, a sima allokalas,
; ha jol tudom nem eleg (sima forkolas vegkepp nem))
mov ecx, [end]
sub ecx, [alloc]
mov edi, [alloc]
mov al, 1
rep stosb
; fork(2) megfeleloje
mov eax, 2
int 0x80
jmp _loop
mov eax, 1
mov ebx, 0
int 0x80
section .data
size: ; 64 kb
dd 0x00010000
section .bss
alloc: resb 4
end: resb 4
Fordítása: nasm -f elf fb.asm && ld -o fb fb.asm
Nem valami vészes, éppen IRT labor pótzh-n voltam, és egy kicsit unatkoztam, ezért amolyan ébresztő gyakorlatként. Valamint jó lenne a múltkori tutorialokból és referenciákból lefordítani egy keveset magyarra. Majd megpróbálkozom vele.
Remélem, volt aki egy kicsit kedvet kapott az assemblyhez, persze nem a blogjaim miatt, hanem csak úgy, poénból.
- vik1984 blogja
- A hozzászóláshoz be kell jelentkezni
- 880 megtekintés
Hozzászólások
Latom tenyleg unatkozol... :) Egyebkent sztem pont ezert nincs ertelme az asmnak magasszintu OS alatt, OS hivogatashoz, meg ahhoz minek hogy a compiler altal generalt ABI-t "emulald" kezzel... Mert ha egy erdekes algoritmust kell minel gyorsabbra megirni az mas, de OS-t hivogatni asmbol a legundoritobb dolog ami csak letezik, IMHO. :)
Egyebkent a mov al,1; rep stosb-tol feljajdultam. :P Nem, lehet valahogy osztani 4-el a meretet, hogy dwordoket fillezz..? :) Vagy alignolni elotte ha nagyobb teruletrol van szo? :P Ha mar assembly, adjunk az ilyenekre, mert pont ez lenne a lenyege, IMHO. :D
Mellesleg most komolyan fanyalgasnak tunik az egesz, meg hogy folyton csak szarbeszolok, de kerlek vedd inkabb ugy, hogy ha mar beszolok, akkor legalabb erdekel a dolog. :) Masok blogjaiba alig szoktam bevonyitani, a tied legalabb erdekes dolgokkal foglalkozik neha, es ez jo.
- A hozzászóláshoz be kell jelentkezni
Hali!
Eloszor is: nem vagyok sertodekeny, nyugodtan szolj be, az csak jo lehet, ha keletkezik nemi plussz info is.
Egyebkent a mov al,1; rep stosb-tol feljajdultam. :P Nem, lehet valahogy osztani 4-el a meretet, hogy dwordoket fillezz..? :)
Itt most direkt kellett a ciklusido. Eleg lett volna minden lapba (4k) egy biteot irni, az is megtette volna. Csak most erre volt kedvem :)
Vagy alignolni elotte ha nagyobb teruletrol van szo? :P Ha mar assembly, adjunk az ilyenekre, mert pont ez lenne a lenyege, IMHO. :D
Ja, xor eax,eax es test eax,eax szinten figyelek azert ra :)
Meg a kettovel osztast sem divvel csinalom :)
Latom tenyleg unatkozol... :)
IRT zeha volt, reggel nyolc, kreativabb dolog nem jutott eszembe.
Magasszintu OS: tenyleg nincs annyi ertelme, de ffmpeg is tele van ASM-es optimalizalt reszekkel, ha jol emlexem. Ki tudja, mikor kell majd gyorsasagra optimalizalnom, akkor jol johet. Meg a C ezeket libbol hivja, a platformfuggetlenseg jegyeben.
...a tied legalabb erdekes dolgokkal foglalkozik neha, es ez jo.
Tenkju, pozitiv visszajelzeseknek mindig orulok. :)
"No boom today. Boom tomorrow. There's always a boom tomorrow. What? Look, somebody's got to have some damn perspective around here. Boom, sooner or later. BOOM!" -- Lt. Cmd. Ivanova
- A hozzászóláshoz be kell jelentkezni