Little Man Computer (LMC) adalah mikroprosesor dan sistem komputer sederhana yang dirancang untuk mengajarkan pemrograman perakitan pemula. Untuk mempermudahnya, ini tidak disajikan sebagai komputer biner tetapi komputer desimal. Ini berisi 100 sel memori, diberi nomor 0-99. Anda dapat menempatkan instruksi program dan data di sini.
Setiap sel dapat menampung angka desimal 3 digit. Di sini kita dapat menyimpan instruksi untuk dijalankan komputer atau data untuk dioperasikan. CPU memiliki akumulator tunggal yang digunakan saat melakukan aritmatika. Ada juga input dan ouput di mana Anda dapat membaca input pengguna dan menulis output kepada pengguna.
Berikut ini ikhtisar sederhana dari set instruksi. Setiap instruksi sebenarnya hanyalah angka 3 digit. Namun biasanya ketika memprogram seseorang berurusan dengan singkatan huruf yang lebih mudah diingat. Berikut ini tip cara membaca uraian di bawah ini. Misalnya instruksi Add
digambarkan memiliki nomor 1xx
. Artinya, xx
adalah tempat Anda meletakkan operan (argumen). Jadi 142
adalah instruksi untuk menambahkan isi sel memori 42 ke isi akumulator.
ADD
1xx menambahkan konten di alamat xx
di memori ke akumulator.SUB
2xx kurangi isi alamat xx
dari yang tersimpan di akumulator. Simpan hasil di akumulator.STA
3xx di alamat xx
di memori.LDA
5xx dengan konten di alamat xx
di memori.BRA
6xx melompat ke lokasi xx
dalam program.BRZ
7xx melompat jika akumulator nolBRP
8xx melonjak jika akumulator nol atau lebih tinggi (positif).INP
901 isi akumulator dengan nomor yang diinput.OUT
902 mendorong nilai dalam akumulator ke dalam antrian keluaran.HLT
000 Di folder contoh Anda dapat menemukan lebih banyak contoh program. Berikut adalah contoh program yang membaca angka dari input dan kemudian menghitung mundur. Jadi jika terbaca 4 pada input, maka akan tertulis 4, 3, 2, 1 dan 0 pada output.
INP
OUT
LOOP BRZ QUIT // Jump to QUIT if accumulator is 0
SUB ONE // Subtract from accumulator what is stored in ONE
OUT
BRA LOOP // Jump (unconditionally) to the memory address labeled LOOP
QUIT HLT // Label this memory address as QUIT
ONE DAT 1 // Store 1 in this memory address.
Anda dapat mengambil program yang ditulis sebagai contoh, menyimpannya dalam sebuah file dan memberikan nama file tersebut ke fungsi assemble(file)
yang akan menghasilkan daftar bilangan bulat 3 digit yang mewakili program dan data Anda. Anda dapat memasukkan ini ke fungsi simulate!(program, inputs)
untuk menjalankan program Anda. Ini akan membuang keluaran.
Atau Anda dapat menyalin dan menempelkan kode ini ke salah satu simulator LMC berbasis web yang dijelaskan di bawah.
Anda dapat menemukan beberapa simulator berbasis browser untuk CPU LMC online. Di mana Anda dapat menelusuri program dan menyaksikan langsung cara kerja komputer virtual.
Ada beberapa permainan yang bisa Anda mainkan berdasarkan sedikit variasi dari ide LMC. Ini berpotensi menjadi cara yang bagus untuk melibatkan anak-anak dalam pembelajaran pemrograman.