Skip to content

Latest commit

 

History

History

19_manajemen_memori

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

manajemen memori

sistem sys_brk() disediakan oleh kernel untuk mengalokasikan memori. panggilan ini mengalokasikan memori tepat dibelakang gambar aplikasi dalam memori. fungsi sistem ini memungkinkan untuk mengatur alamat tertinggi yang terseia di bagian data

panggilan sistem ini mengambil satu parameter yang merupakan alamat memori tertinggi yang perlu ditetapkan. nilai ini disimpan dalam register EBX.

jika terjadi kesalahan sys_brk() mengembalikan -1 atau mengembalikan kode kesalahan negatif itu sendiri.

contoh

section .text
    global _start


_start:
    mov eax, 45 ; sys_brk
    xor ebx, ebx
    int 80h

    add eax, 16384  ; jumlah dari byte yang disediakan
    mov ebx, eax
    mov eax, 45
    int 80h

    cmp eax, 0
    jl exit     ; keluar jika error
    mov edi, eax        ; EDI = address yang paling tinggi
    sub edi, 4          ; mengarah ke DWORD terakhir
    mov ecx, 4096       ; jumlah dword yang dialokasikan
    xor eax, eax        ; clear eax
    std
    rep stosd           ; ulangi untuk seluruh area yang dialokasikan
    cld

    mov eax, 4
    mov ebx, 1
    mov evx, pesan
    mov edx, len
    int 80h
    
exit:
    mov eax, 1
    xor ebx, ebx
    int 80h

sectioon .data
pesan db "alokasi 16 kb dari memori" , 10
len equ $ - pesan

ketika kode diatas dikompilasi dan dijalankan maka menghasilkan

alokasi  16 kb dari memmori