Skip to content

Latest commit

 

History

History

11_perulangan

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

perulangan

instruksi jmp dapat digunakan untuk mengimplementasikan loop, misalnya contoh kode berikut untuk mengeksekusi looping sebanyak 10 kali

MOV     CL, 10

L1:
    ; bagian yang akan di looping

DEC     CL
JNZ     L1

set instruksi prosesor, bagaimanapun, termasuk sekelompok instruksi loop untuk mengimplementasikan iterasi. instruksi loop dasar memiliki sintkas berikut

LOOP        label

dimana, label adalah label target yang mendingidentifikasi intstruksi target seperti pada instruksi lompat. instruksi lopp mengasumsikan bahwa register ecx berisi jumlah loop. ketika instruksi loop dekseskusi, register ecx dikurangi dan kontrol melompak ke label target, sampai nilai register ecx, yaitu penghitung mencapai nilai nol

cuplikan kode diatas dapat ditulis sebagai

MOV     ECX, 10
L1:
    ; bagian yang akan di looping
loop L1

berikut adalah contoh untuk mencetak angka 1 sampai 9

section .text
    global _start

_start:
    mov     ecx, 10
    mov     eax, '1'
    
l1:
    mov [angka], eax
    mov eax, 4
    mov ebx, 1
    push ecx
    
    mov ecx, num
    mov edx, 1
    int 0x80

    mov eax, [angka]
    sub eax, '0'
    inc eax, '0'
    pop ecx
    loop l1

    mov eax, 1
    int 0x80

section .bss
num resb 1