Bu sayfadaki yazılar
Sayfanın metni
Sayfa 72
Merhaba arkadaşlar, yor. Ayrıca içinde, birçok
Seka Assembler dizimizin bu ayki bölümüne hoş geldiniz... Geçen sayıda söylediğim gibi bu ay, add ve sub komutlarının değişik kullanım şekil ve türlerini göstereceğiz. Daha sonra diğer matematiksel komutlara bir göz atacağız. Tabii aralarda
SEKA
BAHADIR AKCAN BURAK ÖZIŞIK okurumuzun dört gözle beklediği yeni seka assembler versiyonları bulunuyor. Bu diski dergimize gelerek alabilirsiniz. Eğer İstanbul dışında bir yerlerde oturuyorsanız, mektupla isteyebilirsiniz. Şimdi geçelim bu ayki kursumuza... ADDO komutu:
yine örnek programlar vereceğiz. Bu programların matematiksel ve test amacıyla kullanılmasını tamamıyla görebilir, mantıklarını anlayabilirsiniz. Daha sonra, yavaş yavaş edindiğiniz bilgilerle, kendi rutinlerinizi ve mantıklarınızı kurabilir, bunları dergimizden alacağınız source'ların içinde kullanarak, ilginç efektler deneyebilir ve yapabilirsiniz. Bu arada küçük bir bilgi vereyim. Sizler için bir disk hazırladım. Bu diskin içinde, Seka Assembler'la kullanabileceğiniz tüm yan programlar bulunuyor.
ANI
>.
T | | | | | | | | | | | | | |
Adda komutu, geçen sayıda komutuyla aynı işlevi görür... Fakat, bu komut Add komutları arasında en hızlı olanıdır... Bu komut sistem flaglerinden hiç birini etkilemez. Bu komutunda, diğer bir çok komut gibi, üç uzunluğu vardır. Bu komutun kullanılış şekilleri şöyledir ; ADDO.B #1,(a0) ADDO.W #8,dO ADDO.L $3,d7 Bu komutla sadece 0'dan 8'e kadar olan değerleri kullanabileceğini unutmamalısınız. ADDA komutu herhangi bir adrese veya registere, küçük değerler toplamada en ideal komutunuz ol- Malıdır... SUBA komutu : Bu komut Sub komutuyla yapı açısından aynıdır. Tek farkı işlemlerin bellek adresleriyle yapılması, bunun sonucu olarak ta longword ve word uzunluklarında kısıtlanmış olmasıdır. Herhangi bir adresi arttırırken bu komutu kullanmanız en iyi yoldur. SUBA komutunun örnekleri şunlardır ; SUBA.W d0,a0 SUBA .L d7,a6 Bu komut sistem durum flaglarını etkilemez... SUBI komutu : SUB komutundan farkı bır bytelik değerlerle işlem yapmasıdır. Buda sadece bir'den sekize kadar sayıları toplaması demektir. Bu, SUBI komutunu SUB komutundan daha hızlı kılar, fakat sekiz bytelik işlemler yapmak istiyorsanız, mutlaka, sıradaki komut olan SUBO komutunu kullanın. Bu komut için örnekler... SUBI.B #1,(a0) SUBI.W #8,dO SUBİ.L $3,d7 SUBO komutu : Bu komut, sub komut şekilleri arasında en hızlı olanıdır. Fakat bir önceki komut gibi sadece sekiz bitlik değerleri kullanabilir... SUBO komutu
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 73
—sistem flaglerini etkilemez. Bu komutun kullanım şekilleri şunlardır... SUBA.B #1,(a0) SUBA.W #8,d0 SUBA-L $3,d7 Bu komuttan sonra, add ve sub komutlarını ve kullanım türlerini öğrenmiş olduk. Sub komutlarının örnekleri için bir önceki sayıda ADD komutu çeşitleri için verdiğim örnek programlara bakabilirsiniz. Şimdi sırada kontrol komutları var. TST komutu : TST (Test) komutu adı üstünde verilen registeri 0 değeri ile karşılaştırırve varılan sonucu, yani de sayının sıfırmı yoksa sıfırdan başka bir sayımı olduğunu sistem durum registerlerinden ilgili olanına yazılır. Kullanım şekli şöyledir. TST.B (a0) TST.W dO ISTE 07 Bu komut için program1 ve program2'ye bakın... Program 1'in açıklaması ; Satır 1 :tst dO ; dO registeri O değeriyle karşılaş- Satır 2 : bne don; eğer dü registeri O'dan farklı bir sayı ise <don> labelina git... Satır 3.: ris ; Sekaya geri dön. Satır 4 : cir.! dO ; dO registerini temizle. Satır 5 : rts;sekaya geri dön... Bu programın amacı, ilk önce dO registerini kontrol edip, eğer temizse geri dönmesi, değilse silip öyle geri dönmesi, olarak açıklanabilir... Şimdi Program 2'nin açıklaması ; Satır 1 :tst d0 ; d0 registeri O değeriyle karşılaş- O tirilir — Satır 2 : ;eğer sıfıra eşitse, don labelına it. : cir.| dO ; dO registerini temizle. Satır 4: ris ;Sekaya geri dön... u programın amacı, program1 ile tıpatıp aynıdır. Fakat dikkat ettiyseniz, tek bir komut değişikliğiyle bir adet satırdan kurtulduk... Ve işlemilisenin 1 / 1 000 000 oranında hızlandı abardık ama naapalım gerçekler)... ndide sırada şimdiye kadar anlattığımız koatları içer program var... m 3'ün açıklaması ;
PROGRAMI)
tst
D0 registerinden 1 değerini çıkarır. Satır 6: tst d0 ;d0 registerini sıfır değeriyle karşılaştırıp sonucu durum flaglerine yazar. Satır 7: bne cikart ; Eğer 0'a eşit değilse çıkarta gider. Satır 8: rts ; eğer sıfırsa seka'ya geri döner. Satır 9: buffer: dc.w 0 ;buffer adında bir word'lük yani iki baytlık bir değişken hazırlar... Satır 10: end ; programın bittiği belirtilir... Evet arkadaşlar, bu aylıkta bu kadar. Bana yazmak için adres şu...
PK 205 Beşiktaş (Program 3) Mutlaka bana ya- | 10: buffer,a0 zın. Sakın unut- 2 cir.l (a0) mayın... 3 move.l (a0),d0 BURAK ÖZIŞIK İ 4 move.w #500,d0 5 subg.w #1,d0 (PROGRAM 2) 6 tst Icon: tst 7 bne cikart
2 beg don 8 Tits 3 ari dü 9buffer:de.w O 4don: 10 end iç