Oyuncak Makine

Oyuncak Makine

Kaynak kod
Çıktı
         
Bellek 0    
1    
2    
3    
4    
5    
6    
7    
Durum
Sonraki komut


Akümülatör

Sözdizimi yardımı

    get       klavyeden okunan girdiyi akümülatöre kaydet
    print     akümülatör içeriğini görüntüle
    load Val  akümülatöre Val değerini yükle
    store M   akümülatör içeriğini M bellek adresine kaydet
    add Val   akümülatör içeriğiyle Val değerini topla (sonuç akümülatörde)
    mod Val   akümülatör içeriğiyle Val değerini modülüsünü al (sonuç akümülatörde)
    sub Val   akümülatör içeriğinden Val değerini çıkar (sonuç akümülatörde)
    mul Val   akümülatör içeriğiyle Val değerini çarp (sonuç akümülatörde)
    div Val   akümülatör içeriğiyle Val değerini böler (sonuç akümülatörde)
    goto L    L etiketli satıra git
    ifpos L   eğer akümülatör içeriği >= 0 ise L etiketli satıra git
    ifzero L  eğer akümülatör içeriği 0 ise L etiketli satıra git
    ifneg L   eğe akümülatör içeriği < 0 ise L etiketli satıra git
    stop      dur
    M Num  M isimli bellek hücresini Num değeriyle ilklendir (program çalışmaya başlamadan önce)

Eğer Val değeri örneğin 17 gibi bir sayı ise bu değer doğrudan kullanılır. Öte yandan Val değeri Sum gibi bir dizgi ise, bu dizgi bir bellek hücresini temsil eder. Dolayısıyla add Sum gibi bir satır Sum olarak etiketlenen bellek hücresiyle akümülatör içeriğini toplayacak ve sonucu yine akümülatöre yazacaktır. Bu işlem sonucunda Sum etiketli bellek hücresinin içeriği değişmeyecektir. Benzer şekilde add 1 gibi bir satır akümülatörün içeriğine 1 ekleyecektir.

Örnek bir program için lütfen tıklayın. Bu program, klavyeden okunan sayıları toplamakta ve 0 değeri girildiğinde sonucu görüntülemektedir.

Benzetim programı hakkında

Bu program orijinal haliyle Princeton'da verilen Computers in Our World dersinde Merkezi İşlem Biriminin nasıl çalıştığını anlatmak amacıyla Brian Kernighan tarafından yazılmış, Recai Oktaş ve Nurettin Şenyer tarafından fazlasıyla kurcalanmıştır. Benzetim programının nasıl çalıştığını anlamak için kaynak koda bakmak isteyebilirsiniz. Bu sürümde, hatalı bir program yazdığınızda benzetim programının sonsuz döngüye girmemesi için en fazla 1000 satırdan oluşan programlar yazabilirsiniz. Adımlama sürümünde böyle bir kısıtlama yoktur.