== asm de if komutunun kullanımı sorusu ==

Başlatan erhanzeynel, 23 Kasım 2008, 17:49:22

erhanzeynel

asm ile yazdığım bir programda if komutu kullanmam gerekiyor.

bu komut mpasm derleyicisi tarafından destekleniyor. Bu komutta = <> gibi işleteçleri kullanabiliyormuyuz? Bu konuda pek bir dökümana ulaşamadım.

Tagli

Öncelikle "komut" kelimesi yanlış anlaşılmasın. Hangi PIC'i kullandığını bilmiyorum ama normalde PIC assembly dilinde bildiğimiz anlamda if...else... ifadeleri olmaz. MPLAB'da bulunan if ingilizcesi "directive" olan (bunun Türkçe karşılığı nedir acaba?) başka birşey. Açıkçası hiç kullanmadığım için bilgim yok ama daha çok derleyiciyle ilgili ayarları yapmak için kullanılıyor sanırım. Yani PIC'e yazdığın programda yüksek seviye dillerde kullandığın gibi if... else... yapısı kullanabileceğini düşünme. MPLAB'ın if...else... yapısında bahsettiğin karşılaştırma işaretleri desteklenir ama sonuçta bunlar PIC'teki programın bir parçası olmazlar.

Ekleme: MPLAB ifadeleri ile ilgili ulaşabileceğin birincil kaynak budur.
Gökçe Tağlıoğlu

XX_CİHAN_XX

Alıntı yapılan: "Tagli"ingilizcesi "directive" olan (bunun Türkçe karşılığı nedir acaba?) başka birşey.

TDK
Yirmi yaşındaki bir insan, dünyayı değiştirmek ister . Yetmiş yaşına gelince , yine dünyayı değiştirmek ister, ama yapamayacağını bilir.

Logan

Yanlış hatırlamıyorsam, Assembly'de "if...then" komutu mevcut. Kullanımı normal BASIC ve C  dillerindeki ile aynı. Fakat 16  serisi picler, bu komutu desteklemiyor...
İmza.

elmaalma

Alıntı yapılan: "erhanzeynel"asm ile yazdığım bir programda if komutu kullanmam gerekiyor.

Programı yazarken değişik durumlar ve istekler için hazırlık yapmak isteyebilirsiniz. Bu durumda if kullanarak programda istediğiniz koşullarla ilgili bölümün derlenmesini sağlayabilirsiniz. ASM ile değil mplab editörle ilgili bir  özellik.

Tagli

@XX_CİHAN_XX, "direktif" kelimesini biliyorum elbette ama bu kelimeye Türkçe demeye dilim varmıyor, o yüzden sormuştum Türkçe karşılığını. Ben "ifade" kelimesini tercih ederim, her ne kadar tam karşılamasa da.

Alıntı yapılan: "Logan"Yanlış hatırlamıyorsam, Assembly'de "if...then" komutu mevcut. Kullanımı normal BASIC ve C dillerindeki ile aynı. Fakat 16 serisi picler, bu komutu desteklemiyor...
Mevcut olan "if...then" ifadeleri PIC'in işleyişini doğrudan etkilemez. Yapılabilecekler PIC'in datasheet'inde geçen komutlarla sınırlıdır. 16 serisinde karşılaştırma yapmak için öncelikle iki değişkeni birbirinden çıkarmak sonra da Cary Bit (C)'e bakmak gerekir. Bunun başka bir yolu yoktur. Bazı durumlarda tablo da kullanılabilir. 18 serisinde karşılaştırma yapmak için doğrudan komutlar vardır ama bildiğimiz anlamda if...then... gibi çalışmazlar, zaten isimleri de farklıdır.

Alıntı yapılan: "elmaalma"Programı yazarken değişik durumlar ve istekler için hazırlık yapmak isteyebilirsiniz. Bu durumda if kullanarak programda istediğiniz koşullarla ilgili bölümün derlenmesini sağlayabilirsiniz. ASM ile değil mplab editörle ilgili bir  özellik.
@elmaalma, çok güzel açıklamışsın. Olay tam olarak bu. Dediğin gibi MPLAB'deki bu ifadeler daha çok koşula bağlı derlemeler için kullanılıyor. Aynı kodun farklı cihazlara daha kolay geçirilebilmesini veya kodun başında tek bir değişkeni değiştirerek kodda bazı bölümlerin çıkartılıp bazı bölümlerin de eklenebilmesine yardımcı oluyor.
Gökçe Tağlıoğlu

XX_CİHAN_XX

@Tagli haklısınız bazı kelimeler başka dillerden kendi dilimize geçmiştir. Birçok dilde olabilen bir durum bu aslında.
Direktifin, yönerge ve talimat gibi eş anlamlarıda dilimizde mevcuttur.
Bunları kullanabilirsiniz  :)
Yirmi yaşındaki bir insan, dünyayı değiştirmek ister . Yetmiş yaşına gelince , yine dünyayı değiştirmek ister, ama yapamayacağını bilir.