language

ustmenu

searchbar

Commodore 1986-03-01 Sayfa 53

Commodore Dergisi, 1 Mart 1986, Sayfa 53

 



Özet

Commodore Kulüp üyeleri, Baytan Bitirmez'i Commodore Haberler Bütenti'ndeki Makine Dili yazılardan tanıcaklar. Başladiği makaleleri pehlevan tefrikası gibi uzatı hijçir zaman bitir memekele meşhur olan Baytan Bitirmez, aylardı sürdürgülü ve bir sonuca varacakmiş gibi gözüken yazılarını baştan almakla alnında yeni bir rekor kırmış oluyor.



Diğer Dergiler



Tam metin içeriği

dilinin komut kodlarına biraz daha an-
laşılır birer isim vermekten ibaret, Ör-
neğin AO, LDY demek-yani Load Y.B9,
LDA, yani Load A demenin bir çeşidi.
20, JSR, yani Jump to SubRoutine de-
mek. C8=INY (Increment); CO=CPY
(ComPare Y); DO=BNE (Branch if Not
Equal); 60=RIS (Return from Subrou-
tine). Yani program, Assemibiyde şöyle
yazılabilir: ,

Candie Kulüp üyeleri, Baytan Bitirmez'i Commodore
Haberler Bülteni'ndeki Makine Dili yazılarından tanıyacaklar. Bas-
ladığı makaleleri pehlivan tefrikası gibi uzatıp hiçbi,

sonuca varacakmış gibi gözüken yazılarını baştan almakla ala-
nında yeni bir rekor kırmış oluyor.

Dergi için yazı istemeye gittigmizde, Baytan Bitirmez'in bilgisa-
yar alanında inceleme ve denetlemelerde bulunmak üzere bir-
kaç aylığına Isparta'ya gittiğini söylediler. Bizim tahminimiz, eski
bülten okurlarından gelebilecek tepkileri düşünüp her ihtimale kar-

şı bir süre ortadan kaybolmak istediği

Hexadecimal (onaitil) sayı sistemi-
ni birkaç sefer anlattım. Aslında çok
basit. Decimal (onlu) sistemi biliyoruz.
Bir sayı görünce otomatikman, sağ-
dan sola ilk haneyi ‘le, ikinciyi 10'la,
üçüncüyü 100'le, dördüncüyü 1000”
le çarpıyoruz. Onaltılıda ilk hane *1,
ikinci hane.* 16, üçüncü hane *46*16
filan. Tabii O'dan 9'a on rakam yeri-
ne, O'dan 15'e 16 rakama ihtiyacımız

var. 0,42... Sab.c.de!,10,14 diye
gidiyor.
hex 01 -dec 4
0 10
15
16 (1*4640)
21 (194645)
26
49:
428

255 015 16-45)
100-286 (16°16+0°46+0)
Peki ya FFFF ne ediyor?

Bir de ikili (binary) sistem var. Bunun
da numarası, yine sağdan sola, ilk
hane*1, o ikinci"2, üçüncü"4,
dördüncü*8, beşinci* 16, vb. Yalnız
iki rakam var: 4 ve 0

Mesela: 00000100 4
01000100 68
40101040 = 170
14444444 = 255

Bunların hex karşılığı ise, sırasıyla;
04, 44, AA, FF. Dikkat edilsin; ikiliyi
hex'e çevirmek, onluya çevirmekten
daha kolay. Örneğin 8 haneli bir bi-
nary sayının sol yarısı, iki haneli hex sa-
yinin ilk (sol) hanesine, sağ yarısı ise
ikinci (sağ) haneye karşılık düşüyor.
0100 = hex4, 01000100 = hex44.8
haneli binary ile ifade edebilecek en
büyük rakam 14444414 = 2 haneli
hex ile ifade edilebilecek en büyük ra-
kam FF. Commodore'un kafası, bir de-
fasinda sadece 8 tane on-off (1-0) iga-
retini anlamaya yetenekli oldugun-
dan, hex sisteminin neden kullanildi-
ğını anlamak kolay. BASIC'in PEEK-
POKE komutlarında niye hep O ile 255
arası sayıların kullanıldığı da böylece
anlaşılıyor.

Makina dili.denilen gayriinsanı dil,
PRINT, GET filan gibi yarr-ingilizce te-
rimlerden değil, sıra sıra hex rakam-
lardan oluşuyor. Buyurun bir örnek:
C000: AO 00 B9 OE CO 20 D2 FF
COO8: C8 CO 07 DO F5 60 4D 45
C010: 52 48 41 42 41 ~~ -

Bunun BASIC'teki karşılığı: PRINT
“MERHABA"lI Denemesi bedava.
Programcılığımızı C000, yani 49152
adresinden başlatıp C014 (49172) ad-
resinde bitecek şekilde düşündük
Şimdi yukardaki 21 tane rakamın de-
simal | karşılığını o hesaplayıp,
49152'den başlayarak sırayla POKE
edin. (POKE 49152, 160: POKE 49153,0:
POKE 49454...)

Sonra SYS 49152 deyin. Ve seyredin.

Birinci ilkemizi tahmin ettiniz herhal-
de: Makine dili programlar, birer
byfelik rakamlardan oluşuyor ve bel-
lekte, bizim seçeceğimiz belli bir ad-
resten başlayarak, her adrese bir byte
olarak duruyor. BASIC’ten makine dili
bir programı işletmek için, programın
başladığı adrese SYS komutu veriliyor.

Bu rakamlar ne demek oluyor? Ra-
malların bazısı makine dilindeki ko-
mutlarin rakamsal kodları, bazısı ise
komutu izleyen değerler. Her komu-
tun, arkasında kaç sayı değer alaca-
ğı, komuta göre değişiyor ve sabit.
Programcığımızın ilk rakamı olan A0,
bir komut kodu. Makine buradan ig-
lemeye başlıyor. A0 kodu, ardından
bir rakam değer (parametre) alan bir
kod. O halde 00 bir değer. Dolayısıy-
la, onu İzleyen B9'un da kod olması
şart (yoksa makine saptı). B9, 2 byte
Parametre alan bir komut. Programı-
mızda bu değerler OE, CO. Sonra ge-
len 20 gene bir komut. 2 byte para-
metre (D2, FF) alıyor. C8 gene komut.
Parametre yok. CO komut, 07 para-
metre, DO komut, F5 parametre. 60 ko-
mut: “İş bitti, geri dön” demek. 4D 45
52 48 41 42 44 ise merhaba demek
İnanmazsanız, üşenmeden bunları
desimale çevirip, ASCI-CHRS tablo-
sundaki karşılıklarına bakın.

Bu rakamlarla program yazmaya
sadece deliler kalkışacağından, ma-
kine dilinin yarı insani bir dille tercü-
mesi olan Assembly diye birdil daha
icat edilmiştir. Assembly dili, makine

zi
wy#s00, 42. Bea”

LDA SCODEy 3%

JSR SEFD2 Ye

INY _ 32 255

CPY#SO7 Se DA TAL SE, 1

BNE $C002 96 PAF .

RIS bo DATA 82 9229 65 166568

S‘lar ‘lar ve başka hususların ne ol-
duğunu sırayla anlatacağız. Yalnız $
işaretinin hex demek olduğunu söyle-
mek şimdilik yetsin. Yani bir yerde $40
gibi bir ifade görürsek, bunun, bizim
bildiğimiz on’ değil, hex 10 (yani...) ol
“duğunu anlıyoruz. Bu dolar İşaretinin
BASIC'teki dizi anlamına gelen $ ile il
gisi yok

Makina diliyle iştigal etmenin bir nu-
maralı koşulu, bir adet Makine Dili Mo-
nitorüne sahip olmak. Televizyona
benzeyen monitörlerle bir ilgisi olma-
yan bu monitör, kaset veya diskette
bulunan bir program. Makine dili
programları ve basit assembly çevi-
rileri yazmayı, okumayı, değiştirmeyi,
işletmeyi vb. sağlıyor. Yazının devamı:
ni beklerken, yoksa, eşten dosttan bir
tane monitör sağlamaya bakın; veya
4500 liraya kıyıp Teleteknik'ten istetin.
Gelecek sayıda bir monitör programı
“dökümü vereceğim ama, ikibinbes-
yüz küsür DATA'yı hatasız girmeye ça-
listiktan sonra hâlâ bu diziyi izlemeye
“devam edeceğinize pek ihtimal ver-
miyorum

Bir de küçük yarışma: Elinize kâğıt
kalem alın ve,

4) $49A64F7CO'nun desimal karşıli-
ini,

2) “Merhaba” diyen makina dili
programeigimizi bilgisayar belleğine
POKE edecek BASIC programı yazıve-
rin

(ipucu: 10 FOR X= 0 TO 20
20 READ A
BO ncecerseeent)

Elimize ilk geçecek doğru çözümün
sahibine bir adet monitör kasedi ace-
le postayla gönderilecektir. DI



Bu sayıdaki diğer sayfalar: