Picproje Elektronik Sitesi

PROGRAMLAMA DİLLERİ => Diğer => Konuyu başlatan: gerbay - 07 Eylül 2016, 00:33:32

Başlık: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: gerbay - 07 Eylül 2016, 00:33:32
hazır şurada kodu yazmışken bu konuya da gireyim dedim;

https://www.picproje.org/index.php/topic,65521.msg508914/topicseen.html#msg508914 (https://www.picproje.org/index.php/topic,65521.msg508914/topicseen.html#msg508914)

öncelikle üzerinde düşünmek için Cortex-M7 pipeline ı şuraya bi koyalım, elimizin altında bulunsun, derdimizi anlatmak için gerekecek;
(http://images.anandtech.com/doci/8542/pipeline2.JPG)

dual shifter, dual alu kısmına dikkat edin. load/store pipe M7 de bir tane ama daha fazla load-store pipe ı olanlar da var.

örnek kodumuz da şu;
int x;
volatile int y;

void increment()
{
x++;
y++;
}


bu kodu optimize şekilde (pipeline opt hariç) derlediğinizde şu kod alırsınız;

.text.increment:00000004                         ; void increment()
.text.increment:00000004                                     EXPORT increment
.text.increment:00000004                         increment
.text.increment:00000004 04 4A                               LDR     R2, =x              ; Load from Memory
.text.increment:00000006 13 68                               LDR     R3, [R2]            ; Load from Memory
.text.increment:00000008 01 33                               ADDS    R3, #1              ; Rd = Op1 + Op2
.text.increment:0000000A 13 60                               STR     R3, [R2]            ; Store to Memory

.text.increment:0000000C 03 4A                               LDR     R2, =y              ; Load from Memory
.text.increment:0000000E 13 68                               LDR     R3, [R2]            ; Load from Memory
.text.increment:00000010 01 33                               ADDS    R3, #1              ; Rd = Op1 + Op2
.text.increment:00000012 13 60                               STR     R3, [R2]            ; Store to Memory

.text.increment:00000014 70 47                               BX      LR                  ; Branch to/from Thumb mode
.text.increment:00000014                         ; End of function increment
.text.increment:00000014
.text.increment:00000014                         ; ---------------------------------------------------------------------------
.text.increment:00000016 00 BF                               ALIGN 4
.text.increment:00000018 20 00 00 00             off_18      DCD x                       ; DATA XREF: incrementr
.text.increment:0000001C 24 00 00 00             off_1C      DCD y                       ; DATA XREF: increment+8r
.text.increment:0000001C                         ; .text.increment ends


normalde insan da yazsa benzer mantık ile yazar. x i ve y yi memory den register a alıp, artırıp, memory de ki yerine geri yazma olayı net olarak görülüyor.

ilk bakışta çok mantıklı şekilde üretilmiş "konu bütünlüğü" olan bir kod. pipeline açısından dikkat ederseniz bir sonraki operasyon hep bir önceki operasyon ile ilgili işleme bağımlı.

böyle üretilmiş (ya da el ile yazılmış) bir kod da pipeline da bulunan bloklar paralel şekilde kullanılamaz. şimdi bu basit kodun pipeline kullanımı için optimize edilmiş compiler çıktısına da bakalım;

.text.increment:00000004                         ; void increment()
.text.increment:00000004                                     EXPORT increment
.text.increment:00000004                         increment
.text.increment:00000004 04 48                               LDR     R0, =x              ; Load from Memory
.text.increment:00000006 05 49                               LDR     R1, =y              ; Load from Memory
.text.increment:00000008 02 68                               LDR     R2, [R0]            ; Load from Memory
.text.increment:0000000A 0B 68                               LDR     R3, [R1]            ; Load from Memory
.text.increment:0000000C 01 32                               ADDS    R2, #1              ; Rd = Op1 + Op2
.text.increment:0000000E 01 33                               ADDS    R3, #1              ; Rd = Op1 + Op2
.text.increment:00000010 02 60                               STR     R2, [R0]            ; Store to Memory
.text.increment:00000012 0B 60                               STR     R3, [R1]            ; Store to Memory
.text.increment:00000014 70 47                               BX      LR                  ; Branch to/from Thumb mode
.text.increment:00000014                         ; End of function increment
.text.increment:00000014
.text.increment:00000014                         ; ---------------------------------------------------------------------------
.text.increment:00000016 00 BF                               ALIGN 4
.text.increment:00000018 20 00 00 00             off_18      DCD x                       ; DATA XREF: incrementr
.text.increment:0000001C 24 00 00 00             off_1C      DCD y                       ; DATA XREF: increment+2r
.text.increment:0000001C                         ; .text.increment ends


bu 2 fonksiyon da assembly kodu olarak aynı şekilde çalışır. 2. kodda gördüğünüz gibi x ve y üzerinde yapılan işlemler ayrılmamış, bir birinin içinde paralel şekilde yapılıyor. Dikkat ederseniz ardışık işlemler birbirinin sonucunu beklemeyecek şekilde ayarlanmış.

Böyle bir kodda load/store pipeline ı birden fazla olan işlemcilerde aynı clock cycle da üst 2 komut birden çalıştırılabilir. M7 açısında load/store tek pipe olduğu için tek tek çalıştırılır. sonraki 3. ve 4. satırlar için de aynı şey geçerli.

sonraki "adds" satırının en başına geldiğimizi düşünelim; register lar yüklenmiş durumda ve 2 tane bir biri ile ilgisi olmayan artırma işlemi var. bizim işlemci de dual ALU. işte burada bu 2 işlem aynı anda gerçekleştirilir. sonrakiler ise tek load/store pipe olduğundan dolayı yukardaki ile aynı şekilde yapılır.

bizim kod örneğimiz çok basitti ve 2 tane artırma vardı, float pipe a gidecek birşey yoktu, MAC pipe a gidecek birşey yoktu vs.

Benim yazdığım bu örnekteki gibi basit değil de normal ya da karmaşık bir kod yazdığınızı düşünün; işte bu durumda sizin hiç ASM ile uğraşamayacağınız şekilde kombinasyonları akıllı bir derleyici ayarlar ve pipeline ı sizin ASM ile yapamayacağınız kadar optimize şekilde kullanır.

iş bu sebepten dolayı kaliteli bir compiler superscalar mimari kullanan işlemcilerde sizin ASM ile yazamayacağınız şekilde hızlı çalışacak kodlar üretir. hele bir de dual/load store pipeline içeren bir işlemci için yukardaki kodun çalışmasını düşünün. bir de ilk üretilen kodun çalışmasını düşünün..

haa zevk için yazıyorsanız ya da C derleyicisinin yapamayacağı şeyleri ASM ile yapıyorsanız diyeceğim bir şey yok ama en azından artık kimse ASM ile yazılmış kodların daha hızlı çalışacağını iddia edemez. tabiki bu dediğim superscalar mimari kullanan işlemciler için geçerli ama artık işlemci dünyası tamamen superscalar mimariye kayıyor..
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: mert3162 - 07 Eylül 2016, 02:26:33
Hocam basit bir örnek vermek isterim müsaadenizle asm ile bir şeyi lcd de göstermek için yazdığımız kodların uzunluğunu düşünüyorum okuldayken birde şimdi c ile yazdığımız printf komutunu karşılaştıracak olursak zaten zamanla programlama dillerinin gelişimiyle programların kısaldığı bu sebeple programın çevrim süresine etkileri ortaya çıkıyor. Assembler da basit bir gecikme bile sağlamak için bile sayaçlar oluşturup onları döngüye sokup bişeyleri zorlamak aşırı saçma geliyordu.Ve hatta ilk öğrenirken basic bilmiyorduk basitçe pause 500 yazıp programa gecikme koyma fikri varken neden bize assembler öğretiyorlar diye baya kızmıştım.(ki bana bunu öğreten yanında staj yaptığım @nonstradam a saygılar:))

Şu saatten sonra yeni öğreneceklere şöyle ifade etmek isterim ki size bu işin temeli assembler bunu öğrenmeden hiç birşey yapamazsınız diyenlere kulaklarınızı tıkayın ve gereksiz bilgilerle kafanızı meşgul etmeyin bunu öğreneceğiniz kadar uğraşacağınız sürede kendinize zor algoritma soruları oluşturup bunları çözün(programlayın) daha iyi.Bizim okulun bilgisayar programcılığı öğrencilerine kahve nasıl pişirilir programı yazdırıyorlardı algoritma derslerinde hala bu olay devam ediyor mu bilmiyorum ama bu tarz soruları çözmenizin daha iyi olacağı kanaatindeyim.
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: z - 07 Eylül 2016, 05:47:50
@gerbay hocam

ASM yazım gerçekten gönül işidir.

Modern dokuma tezgahları varken hâla birileri elde halı dokur, elde araba kaportası yapar ve çok büyük paralara alıcı bulur.

CM7'deki ilave kuralları öğrenmek at ile deve değil. Verdiğin örnek çok hızlı çalışması gereken bir fonksiyon için yazılmışsa
asm yazan adam sadece kullanacağı komutlara odaklanmaz hız artışı için yapılabilecek herşeye kafa yorar.
Mesela bu örnekte ben verilerin ram üzerine serpiştirildiği adreslere de odaklanır ve bu kodu aşağıdaki şekilde yazarak biraz daha hızlanmasını sağladığım gibi bir register daha az kullanarak bir başka örnek için bunu bir başka amaçla kullanma yolunun önünü açardım.

int x;
volatile int y;

void increment()
{
x++;
y++;
}


C Kodlarımız maden yukarıdaki kodlar, öncelikle X ve Y yi  ramda peş peşe tanımlardım (zaten öyle tanımlanmış). Olaya biraz daha geniş çerçeveden bakıp;

Kodlamamı aşağıdaki gibi yapardım.

     
      LDR    R0, =x              ; Load from Memory
      LDR    R1, [R0]            ; Load from Memory
      LDR    R2, [R0,#4]         ; Load  from Memory
      ADDS   R1, #1              ; Rd = Op1 + Op2
      ADDS   R2, #1              ; Rd = Op1 + Op2
      STR    R1, [R0]            ; Store to Memory
      STR    R2, [R0,#4]         ; Store to Memory
      BX     LR                  ; Branch to/from Thumb mode


Eğer 9 satırlık C kodunu 8 satıra indirebiliyorsak 100lerce satırda neler yapabiliriz gerisini sen düşün.

CM7 kullanmadığım için bu işlemcilerin pipeline conflict durumlarını bilmiyorum. Yukarıdaki kodda pipeline penalty yapmış olabilirim. Gene de asm yazım için atılıp tutulmasına gönlüm razı olmuyor.

C ile kodlarımızı çok hızlı ve çok anlaşılır yazabiliriz. ASM ile, çok yavaş ve çok anlaşılmaz fakat !!! çok hızlı koşan kodlar yazarız. Bütün olay bu.

Başkasının tüfeğini görmeyen kendi tabancasını top sanırmış.

-----------------

@mert3162

Bir kaç gün içinde daha önce açtığım 3D printer başlıklarının birinin altında, en son geliştirdiğim 3D yazıcı elektroniğinin videosunu yayınlayacağım.

Bu videoyu izledikten sonra LCD ve SD kart rutinlerini asm ile yazmak gerekiyor muymuş yoksa kütüphaneden çağırıp kullanmak yeterli miymiş buna çok rahat karar verirsin artık.

Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: z - 07 Eylül 2016, 17:26:48
Hocam farketmez. İşlemciler değiştikçe biz de yazım şeklimizi geliştiriyoruz.

ASM yazım şeklim 8051 de farklıydı, PIC'de farklı oldu DSPde farklı CM3 de çok farklı.

Dual load store işin içine girince de yazım şeklimiz de değişecek. Eğer program yazım şeklimizi değiştirmeyip mesela 8051'e kod yazar gibi yazarsak elbette işlemciden yeterince yararlanamayız.

Ayrıca asm kodlama yaparken fonksiyon gibi kısa parçalara değil daha büyük pencereden olaylara bakıp neler yapabiliriz ona bakıyoruz. Çok zahmetli bunu kabul ediyorum fakat C ile yapılan kodlamanın ASM den daha hızlı olacağına kesinlikle ve kesinlikle katılmıyorum.

Double load store işin içine girdimi çipe ısınıncaya kadar derhal bir macro yazar  ve yeni komut türetirim.

Mesela  DoubleLoad  R0, R1, R2,R3 dedimmi

   LDR R0,[R1]
   LDR R2,[R3]

işlemini yapar ve bunun tek cycle'da biteceğini bilirim.

ASM programcılıkda aynen işlemci gibi düşünürüz. İşin puştluğuna kaçmaya çalışırız. Eğer işin puştluğuna kaçamıyorsak o işlemciyi yeterince tanıyamamışız demektir.

Senin önermen ancak ayda yılda bir asm kodlama yapan için geçerli olur. Ben yatıp kalkıp CM3'e asm kod yazıyorum. Hızlı çalışan kod üretmede C falan dinlemem.

Irispiya mikis öğretilmez.
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: z - 07 Eylül 2016, 18:21:43
Uğraştığım konular 10..20Mhz 16 bit MCUlarla zaten yapılabiliyor.  O yüzden işlemci seçiminde nerde duracağımı çok iyi biliyorum. Doğrudan kod atılıp çalıştırılabilecek CM3 kartını (işlemci değil PCBli kristalli vs kartı) 3$ ın altına alabiliyorsam daha neyin arayışına gireyim?

ASM konusundaki önyargıların hoşuma gitmiyor.  İmam osurursa cemaap mıçar.

Çok baba C derleyiciler kullanıyorsanız bu derleyicilerin oluşturulmasında çok iyi asm kodlamayı bilen ustaların büyük rolü var.
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: z - 07 Eylül 2016, 18:45:17
http://www.direnc.net/STM32F103C8T6-Mini-Development-Board-ARDUINO,PR-22302.html (http://www.direnc.net/STM32F103C8T6-Mini-Development-Board-ARDUINO,PR-22302.html)

Burdaki kiti aliexpressden 10'lu alırsan fiyat bahsettiğim değerin de altına iniyor.

Asm ile kodlama yapan adamın asm için yavaş vs dememesi gerekir.

Büyük projelerde ekiplerle çalışmaktan ve işlerde C dayatılmasından kafan karışmış bence.

Ben mandaya kaymam.

Linked listle falan hiç işim olmuyor. Linked listi sadece çok çok yıllar önce PC'ye renkli editör yazarken kullanmıştım. Bir daha hiç işim olmadı.

Hocam ben genelde motor döndürüyorum. Bahsettiğin konular büyük veri yığınlarıyla ilgilenenler için değil mi?

Alıntı Yaphocam bir kaç compiler ın kaynak kodundan code generator kısmına ve optimizer kısmına bakarsan ASM kodlamayı bilen ustaların mı yoksa başka bazı şeyler ile uğraşan insanların mı büyük rolü var görürsün.

ASM kodlamayı bilen adamı içlerinden çekip alırsan ne olur?

Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: ido2323 - 07 Eylül 2016, 19:00:00
Telefonun kapalı,  bu akşam müsayit isen uğrayayım diyorum.
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: z - 07 Eylül 2016, 19:13:06
(https://ae01.alicdn.com/kf/HTB1hSGSNXXXXXb4XXXXq6xXFXXXr/1pcs-STM32F103C8T6-ARM-STM32-Minimum-System-Development-Board-Module-For-arduino.jpg)

https://www.aliexpress.com/item/STM32F103C8T6-ARM-STM32-Minimum-System-Development-Board-Module-For-Arduino/32326304541.html?spm=2114.01010208.3.20.jM2iUk&ws_ab_test=searchweb201556_7,searchweb201602_1_10057_10065_10056_10055_10054_10069_10059_10058_10017_10070_10060_10061_10052_10062_10053_10050_10051,searchweb201603_7&btsid=89d45887-6ffb-4a1a-8606-ba00f49b243c (https://www.aliexpress.com/item/STM32F103C8T6-ARM-STM32-Minimum-System-Development-Board-Module-For-Arduino/32326304541.html?spm=2114.01010208.3.20.jM2iUk&ws_ab_test=searchweb201556_7,searchweb201602_1_10057_10065_10056_10055_10054_10069_10059_10058_10017_10070_10060_10061_10052_10062_10053_10050_10051,searchweb201603_7&btsid=89d45887-6ffb-4a1a-8606-ba00f49b243c)

Tanesi 1.5$
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: LukeSkywalker - 07 Eylül 2016, 19:57:49
Özlemişiz resitalleri.
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: ipek - 07 Eylül 2016, 20:15:39
konu ile ilişkilendirmeyin.     ASM bilenlerin özgüvenlerine rahat tavırlarına,umursamazlıklarına hep hayran olmuşumdur...tabiki diğer diller e tü kaka değil.....
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: muhittin_kaplan - 07 Eylül 2016, 20:17:57
Hocam Aman ASM ile yazanlara can kurban, pythoncuları görseniz, sanırsınız teee fazadalar, diğerleri boş beleş işlerle uğraşıyorlar. python a laf demeye görün :)
z candır ;)
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: DEno_12 - 08 Eylül 2016, 00:44:38
@z @gerbay sayın hocalarım,

Böyle atışacağınıza kodlarla atışsanız daha öğretici olmaz mı hepimiz için? İkinizin de ortak çalıştığı bir konuda basit bir kod öbeğini biriniz c ile biriniz asm ile yazsa da benchmark testi yapsak aynı işlemci üzerinde. Olmaz mı?
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: rck8942 - 08 Eylül 2016, 01:11:34
Bir ipte iki cambaz oynamaz  :)
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: Cemre. - 08 Eylül 2016, 01:33:45
Alıntı yapılan: DEno_12 - 08 Eylül 2016, 00:44:38
@z @gerbay sayın hocalarım,

Böyle atışacağınıza kodlarla atışsanız daha öğretici olmaz mı hepimiz için? İkinizin de ortak çalıştığı bir konuda basit bir kod öbeğini biriniz c ile biriniz asm ile yazsa da benchmark testi yapsak aynı işlemci üzerinde. Olmaz mı?
+1
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: sovalye - 08 Eylül 2016, 04:51:45
(http://rampantgames.com/blog/wp-content/uploads/2015/07/let-them-fight.jpg)
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: z - 08 Eylül 2016, 10:32:06
Pipeline mekanizmaları insanların anlayamayacağı kadar karmaşıklaşmadığı sürece asm'ye devam edeceğimden emin olabilirsin. Senin gibi 100 Gerbay daha gelse Z'nin dili asmdir bu değişmez.

Veri yapıları, algoritmalarla zaman kaybedeceğime kontrol teori ve matematik bilgimi  ilerletirim. Senin değer verdiğin konularla benim değer verdiğim konular zaten örtüşmüyor. Mühendislik dünyası sayısız problemlerle uğraşır sen benim karşılaştığım problemlerin çözümünden anlamazsın ben de seninkilerden.

O yüzden birbirimizi ikna etmemiz mümkün değil. İşin içine bir de sevda girince hiç ikna edilemem.

Eğer ki bir gün işlerin çıkmaza girer de bir algoritmanın çok optimize kodlarına ihtiyacın olursa, senin için çiğ tavuk da yerim,  ihtiyacım olmasa bile en kıllı işlemcinin komut listesini de öğrenir ve problemini elle yazılmış asm kodlama ile çözmeye çalışırım.

Bu kıyağımı da unutma.
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: DEno_12 - 08 Eylül 2016, 12:20:02
:D sonuç çok iyi bağlanmış yalnız :D sesli güldüm.
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: z - 08 Eylül 2016, 12:35:29
Nüfusu 80 milyona dayanmış bir ülkenin hiç olmazsa 80 bininin her türlü sorunu gerçekten dert edip bunların kalıcı çözümüne kafa yormasını çok isterdim.

Burda temelde aynı kafadan farklı konulara meraklı bir avuç sevdalının konusu ne olursa olsun mesleki konularda tartışması hoşuma gidiyor.





 
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: muhittin_kaplan - 08 Eylül 2016, 13:19:13
Hocam Seviye Olduktan Sonra, Bunlar Hoş Olaylardır, Tabiki tartışacak Konuşacağız, yaftalamadan, suçlamadan, niyet okumadan.
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: Burak B - 08 Eylül 2016, 14:43:12
https://developer.arm.com/products/software-development-tools/compilers/arm-compiler-6
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: muhittin_kaplan - 08 Eylül 2016, 14:54:17
bu arada python la alakalı bir yardıma ihtiyacınız olursa bana gelmeyin ;)
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: t2 - 08 Eylül 2016, 15:10:47
Tamam, visual basic 6.0,   .net  yardımı için gelinecek.
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: muhittin_kaplan - 08 Eylül 2016, 15:13:01
asıl uzmanlık SQL dir hocam. ama onlarda olur. SQL i ASM de nasıl yazacaz, yada C de onu bilemiyorum işte :D
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: kantirici - 08 Eylül 2016, 16:01:15
tüm konuyu keyifle okudum.

keşke  forumdaki bir kaç büyüğümüz kitap yazsa da istifade etsek.
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: 94220039 - 08 Eylül 2016, 16:13:41
Alıntı yapılan: kantirici - 08 Eylül 2016, 16:01:15
tüm konuyu keyifle okudum.

keşke  forumdaki bir kaç büyüğümüz kitap yazsa da istifade etsek.

Mesela, ben böyle şeyleri hiç bilmiyorum. Yazılanlara karşı kendimi çok fransız hissettim.
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: kantirici - 08 Eylül 2016, 16:36:33
@94220039 picproje de oldukça tecrübeli üyeler var. İsim önemli değil, zaman zaman farklı konularda yapılan yorumlar ve tavsiyeler  bunun kanıtı. Pek çoğunun benden büyük olduğunu bildiğim için "büyük" sıfatını kullandım.

Ayrıca bu konu özelinde yazmamıştım mesajı, genel olarak yazdım.
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: 94220039 - 08 Eylül 2016, 18:27:19
Zannedersem yanlış anlaşıldım.

Alıntı yapılan: kantirici - 08 Eylül 2016, 16:36:33
@94220039 picproje de oldukça tecrübeli üyeler var. İsim önemli değil, zaman zaman farklı konularda yapılan yorumlar ve tavsiyeler  bunun kanıtı. Pek çoğunun benden büyük olduğunu bildiğim için "büyük" sıfatını kullandım.

Ayrıca bu konu özelinde yazmamıştım mesajı, genel olarak yazdım.

Demek istediğim, büyüklerimizin kitap yazması benim kadar, buradaki herkes için çok iyi olur.
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: RaMu - 08 Eylül 2016, 20:16:50
  ARM ASM den anlamam ama
DsPic e ASM ile yazmaya başladım,
önceden 16F asm yazıyordum,
az çok C de yazıyorum ama olay ASM de.
DsPic için de @z hocamın yazdıkları bire bir uyuyor,
ASM ile kod yazıyorsak algoritmayı C ile yazdığımız gibi kurmak çok yanlış bir bakış açısı,
işlemcinin suyunu sıkacak şekilde bu algoritmayı koda nasıl dökerim diye düşünüyoruz,
fonksiyon yazayım çağırayım gibi düşünmek asm için pek gerçekçi değil,

Aslında ne C için nede ASM için x++, y++ işlemini yapmaya fonksiyon yazmak
çok yanlış yönlendirici bir örnek, burdan sonuç çıkmaz,
bu arada örnek için DsPic asm kodu şu şekilde olur:
INC x
INC y

İşin aslı şu:
C ile program yazan biri
iyi derecede ASM öğrenir ve
derleyicisinin yazdığı kodları nasıl asm ye çevirdiğini kontrol ederse
C de neyi nasıl yazdığında ASM çıktısı daha hız kod vs. optimize olacak
bunu öğrenmiş olur,
C yazacak olsa dahi yazacağı C kodlar
çok daha performanslı çalışır.

Hiçbir derleyici sizin algoritmanızı daha optimize çalışacak bir algoritmayla değiştiremez,

Balık baştan kokar.
Önce optimize algoritma.
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: RaMu - 08 Eylül 2016, 21:37:32
Tüm yazılanları okudum,
hatta bazı noktalarda ikimizin yazdıklarıda aynı @gerbay hocam.

Bilgisizlik olarak algılanan kısmı tam çözemedim,
yanlış bilgi yoksa problem yok,
yanlış anlaşıldıysa açıklayalım.
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: X-Fi - 08 Eylül 2016, 21:50:05
@z hocam ASM kullanıyorum programlarım daha hızlı çalışıyor dese kabullenebilirim ve onun neden enerjisini ürünü daha da geliştirmek yerine ASM de kod yazma ile harcadığını anlamaya çalışırım.

Ancak! Piyasada proje yapan ya da bir arge şirketinde çalışan kişi bana bunu söylerse o kişiden uzak dururdum ve birlikte çalışmak istemezdim.

ASM ile kod yazacak doğru düzgün bir platform dahi bulunamazken, bir fonksiyon pointer, bir recursive fonksiyon ya da treeNode larda preOrder/postOrder işlerini yapmak C de bile anlaşılması genelde zor şeylerdir.  ASM ile kodlamak çok zaman ve enerji kaybettirir.

Hız amaç olmamalı araç olmalı ASM ile başlanmış işin içinden çıkılamamış birçok kod gördüm lakin C ile yapılamayan hiçbir proje görmedim.

Saygılar.
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: z - 08 Eylül 2016, 22:02:58
Bu pointerlar, fonksiyon pointerlar, recursive fonksiyonlar falan var ya asm de o kadar ama o kadar çok sıradan şeyler ki anlatamam.

ASM de pointerlara takla attırmama rağmen C de yada delphide pointer kullanırken her zaman kafam karışır.
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: X-Fi - 08 Eylül 2016, 22:11:11
Alıntı yapılan: z - 08 Eylül 2016, 22:02:58
Bu pointerlar, fonksiyon pointerlar, recursive fonksiyonlar falan var ya asm de o kadar ama o kadar çok sıradan şeyler ki anlatamam.

ASM de pointerlara takla attırmama rağmen C de yada delphide pointer kullanırken her zaman kafam karışır.

Hocam o zaman siz bir dahisiniz benim algoritma ve programlama dersinde Self referential structures konusunu anlamam 3 haftamı almıştı konu C üzerinde anlatılıyordu.
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: z - 08 Eylül 2016, 22:26:15
Hayır hayır alakası yok. C de adres vererek bir hedefe ulaşmaya pointerle erişim deniyor. Asm de index/indirek adresleme şekli sürekli kullandığımız bir adresleme tipi. Register içeriğinin gösterdiği adresteki veriyi oku demek C de pointerle eriş demenin aynısı. Biz hiç bir iş yapmıyoruz sadece işlemcinin direk adresleme komutları yerine indirek adresleme komutlarını kullanıyoruz. Oluyor bunun adı pointerle erişim.

Keza aynı şekilde jmp table hazırlarız ve tablonun içine hedef adresleri doldururuz. Bir registerin aldığı değere göre jmp tablosunda buna ait hedef adrese jump edilir. Bu da fonksiyon pointer oluyor.

C aslında asm yazımı anlaşılır ve bazı hamallıkları kaldırmak içi geliştirilmiş.

C de pointeri 1 artırdınmı pointer tipi byte ise adres 1 artar, short veri için 2 artar, integer veri için 4 artar. Kaç artacağına siz hiç kafa yormazsınız.

Fakat asmde biz bu artışı kendimiz yaparız. Yok aslında birbirimizden farkımız. Siz hamallığı derleyiciye yüklüyorsunuz biz ise kendimiz sırtlanıyoruz.

Siz işaretli sayı barındıran byte tipi değişkeni integer degişkene oku dersiniz olur biter biz byte veriyi okuruz ardından da registerin boş bitlerine işaret bitini yayarız.

Biz özgür kızlarız. Siz ise aile kızları. Sizi aile ve çevre baskılar. Biz kafamıza eseni yaparız. Bu yüzden sizin kodlarınız hemen hemen hep düzgün çalışır. Biz bazen hata yapar kötü yola düşeriz.

Self referential structures nedir hiç bilgim yok ama eminim asm'de sıradan yaptığımız bir işlemdir. Google'dan bakayım şimdi neymiş ne değilmiş.

---------

Yok sırdan kullandığımız bir yapı değilmiş.
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: X-Fi - 08 Eylül 2016, 22:52:15
Alıntı yapılan: z - 08 Eylül 2016, 22:26:15

Self referential structures nedir hiç bilgim yok ama eminim asm'de sıradan yaptığımız bir işlemdir. Google'dan bakayım şimdi neymiş ne değilmiş.

---------

Yok sırdan kullandığımız bir yapı değilmiş.


Bu yapıyı ASM de kullanmanız gerektiğinde gerbay hocamın "amelelik" tabirini daha iyi anlayacağınızdan eminim hocam :)



Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: z - 08 Eylül 2016, 22:53:25
Hocam biz ameleliği kod yazarken yapıyoruz.

Amelelik sürekli pratik sürekli pratik demek. Sporcular sürekli idman yapar bu sayede formlarını korurlar. Biz de öyle ve bu tür amelelikler bizi hiç rahatsız etmiyor.


Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: X-Fi - 08 Eylül 2016, 23:00:43
@z hocam 2 önceki mesajımda da söyledim sizin ASM kullanmanız beni rahatsız etmiyor. Kişisel projeniz zamanınız bol, stres yok! istediğiniz gibi yazmakta özgürsünüz. Ancak yeni nesil yazılımcılara meslektaşlarımıza yanlış örnek olmayınız.

ASM'de yazan iyide C'de yazan tukaka derseniz olmaz. ikisinin de yeri ayrıdır. Proje yapmak isteyen adam C'de yazsın ASM ile uğraşmasın diye söyleyin olsun bitsin.

Sayılarımla.
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: z - 08 Eylül 2016, 23:07:57
Özel mesajla, mail yoluyla, sosyal medya üzerinden dil seçimi konusunda kendilerini yönlendirmemi isteyen arkadaşlar sık sık ararlar beni.

Bugüne kadar hiç birine asm öğren dememişimdir. Hepsine de C öğren demişimdir.

ASM öğrenmek bir ayrıcalıktır. Kişinin içinde varsa öğrenir.

Ben sadece ASM'ye tüh kaka dediğinizde fikrimi söylüyorum. ASM tüh kaka bir dil değidir. Lojik tasarımdan zevk alanların aynı zevki CPU'da da alması için yapılmış kutsal bir dildir.

Bir el sanatı tipidir.

Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: engerex - 08 Eylül 2016, 23:14:54
Alıntı yapılan: DEno_12 - 08 Eylül 2016, 00:44:38
@z @gerbay sayın hocalarım,

Böyle atışacağınıza kodlarla atışsanız daha öğretici olmaz mı hepimiz için? İkinizin de ortak çalıştığı bir konuda basit bir kod öbeğini biriniz c ile biriniz asm ile yazsa da benchmark testi yapsak aynı işlemci üzerinde. Olmaz mı?

Aynen uygulayın görelim. Belki pythonla daha hızlı kod yazan çıkar.
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: z - 08 Eylül 2016, 23:17:47
Bedavaya gösteri olmaz.

Mesela nasıl bir gösteri olabilir. Noktadan sonra 256 digite kadar sinüs hesaplaması olabilir.

Böyle bir fonksiyona kaç para ödersiniz?
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: RaMu - 08 Eylül 2016, 23:27:38
Yahu arkadaş bir işe bakıyorsunuz
yok yav bu neymiş, bunu insan yapamaz hayırrrrr diyorsunuz,
BEN ve benim diyebilen birkaç sıradan insan,
oturuyor sizin bu
takip edemezsiniz,
onuda hesaba katamazsınız,
derleyiciden optimize kodu yazamazsınız,
vs. vs. dediğiniz şeyleri
pratik ede ede öyle kanıksıyoruz ki
derleyicidende iyi yazıyoruz,
ve bu zor dediğiniz şeyler bize çerez geliyor,
hatta bazen bir şeyi C ile yazmaktansa ASM ile yazmak çok daha kolay geliyor.

Nispeten yeni işlemcilerin öyle güzel ASM komutları varki
C ile yazmaya gerek dahi kalmıyor,
zaten adınıda koyuyorlar hemen
C optimised instruction set.

@X-Fi herhalde uzak durman gereken kişilerden biri benim :)
Bir şirkette Argeciyim ve ASM ile projelerimizi yazıyoruz,
şu ana kadar yapamadığım proje olmadı.
Ama yok mu var tabiki, ethernet usb dersen asm ile yazamam.

Şimdi gelelim C cilere katıldığım taraflara,
tamam eskiden program memory küçücüktü,
işlemciler hızlı değildi,
belki C derleyicileride iyi kod üretmiyordu vs.
ama şimdi işlemciler uçuyor,
fiyatlarda gayet makul veya düşük,
hatta senin istediğin işi arada bir bakıp yapacak kadar hızlı olan mcu modeline geçmenin
devede kulak denecek kadar maddi etkisi olur,
zaten işlemciler C optimize komut setli,
derleyiciler gayet güzel kod üretiyor,
ne diye halen asm de asm diyorsun,
burada haklısınız bence.
Yeni nesil mcu lar için sadece asm ile yazmak avantajlı gözükmüyor.

İşinizi ASM ile yapmayacak dahi olsanız,
ben programcıyım, ben şu işlemciye kod yazıyorum, benim işim bu, diyebilmek için
o işlemcinin ASM komutlarının en azından ne işe yaradığını bilmek zorundasınız.
Yoksa çok kral şoförüm ama lastik patlasa değiştirmeyi bilmiyorum durumu oluyor.
Neyin üzerinde koştuğunu bilmek suç mu?

Birde yaptığımız ürün insan hayatı ile birebir ilgili,
bu yüzden C derleyicisine güvenmiyoruz,
ve kodu ASM ile yazıyoruz,
evet paranoyağız,
ürünü yüzünden insan hayatına mal olan ve hapis yatan firma var,
birde şahsen basic derleyicisinde bulduğum hata var, söyledim düzelttiler, ve basic de bilmiyorum,
ara arada bakarım bazı C derleyicilerinin ne kadar aptalca kod ürettiğini görüp gülerim.
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: magic_gun - 08 Eylül 2016, 23:30:09
Alıntı yapılan: z - 08 Eylül 2016, 23:17:47
Bedavaya gösteri olmaz.

Mesela nasıl bir gösteri olabilir. Noktadan sonra 256 digite kadar sinüs hesaplaması olabilir.

Böyle bir fonksiyona kaç para ödersiniz?



+1 ASM candır
    bu fonksiyonu 4 Mhz de yapalım !!! 
+1 RaMu
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: berat23 - 09 Eylül 2016, 00:45:22
@gerbay vurmuşi son darbe de benden gelsin.

asm'nin c veya daha yüksek seviyeli dillerden daha güvenli olması tamamen hikaye. safety critical programming ya da belli süreçlere(do178 vb.), bir dile/tekniğe yönelik değil aslında herşeyin kontrollü yapılmasını sağlayan süreçler. herşeyi detayıyla bilmen güvenli olur anlamına gelmiyor.

burda dünya çok ileride, değil c/c++, çok daha farklı araçlar mevcut;
http://www.esterel-technologies.com/success-stories/airbus/ (http://www.esterel-technologies.com/success-stories/airbus/)

mesela bu araç bir code generator ama sadece kod değil, test, trace vb. herşeyi yapabiliyor. linkte nerde, nasıl kullanılmış detaylı bilgi mevcut. bu abilerden daha emniyetli işler yapan yoktur sanırım?

Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: ipek - 09 Eylül 2016, 01:07:13
enteresan...forum canlandı, bu medical aletin hatası canımı sıktı,perde arkasında neler dönüyor insan bilmek ister,25 yıl Motorola'da çalıştım,denetleyeni denetleyen firmalar var,hatta onlarıda denetleyenler var..nasıl bu aletin ticari aşamaya çıkmasını sağlayan güvenlik sertifikalarını vermişler,akıl alacak gibi değil,ortada bir suçlu yok,birçok suçlu mevcut...bir şekilde gözden kaçmış,hayret...
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: muhittin_kaplan - 09 Eylül 2016, 01:31:03
Eger biri guvenlik diyorsa, ADA derim. Gerisi bos teferruattir. Ben bukadar kati bir dil gormedim. Herseyi kontrol edip herseyi tam anlamiyla yapmani istiyor. Emin olun asm bile daha esnek.
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: engerex - 09 Eylül 2016, 01:51:07
Eğitim şart.
Ülkemizde de tomografi cihazı daha net görüntü veriyor diye bebeklerde limitin 10 katı radyasyona maruz kalmış. Therac-25 programcısı da herhangi bir resmi eğitim almamış. Ülkemizde de radyoaktif çekirdek hurdacılara kadar düşmüştü. İnsanlar hayatlarından oldular. Sonrasında bu tür ürünleri ithal etmel için atom enerjisi kurumundan sertifika olayı şart koşuldu.
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: z - 09 Eylül 2016, 06:44:11
@gerbay

C deki özgürlüğün sınırlarını merak ettim.

Ramda Array olarak tanımlanmış bir alana veriler yazıp ardından bu arrayin herhangi bir adresine jmp edip kod olarak çalıştırmak mümkün mü?
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: mufitsozen - 09 Eylül 2016, 10:45:16
Alıntı yapılan: gerbay - 09 Eylül 2016, 08:10:46
Mümkün

Yaa @gerbay hocam, sende herseye mumkun diyorsun, o mumkun, bu mumkun, su mumkun.

Bende sana daha kurnazca bir soru sorsam, Bu C ile ne mumkun degil (mesela asm ile yapilan)?

Artik onada valla hersey mumkun dersen artik diyecek birseyim yok, 1974den beri assembler ile program yazarim, bir daha ASM kullanmam artik. Bir yasima daha girdim, neymis bu C yav!

Haa o arada aklima geldi, madem c ile hersey mumkun, C++ ilede mumkun olurmu? Artik onada mumkun dersen.....
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: MrDarK - 09 Eylül 2016, 10:50:19
Konu başlığından epey bir şaşmış lakin bende kısa birşey söylemek istiyorum bu konuda;

ASM ile bir proje yaptığımızda o mikro kontrolcüsüne hükmederek yazdığımızdan yazılımın içindeki her bir işlem o mikroya uygun register adreslemesi ve yapısı ile yapılıyor. Bir üst seviye bir mcu'ya veya başka bir mcu ailesine geçildiğinde kodları sıfırdan yazmak gerekmiyor mu ?

Öyle yapmak zorunda oldukları için aşağıdaki gibi bir açıklama yapmışlar.
Alıntı yapılan: gerbay - 09 Eylül 2016, 00:52:27
haa söylemeyi unuttum, adamlar benim copy/paste mühendislik hatası dediğim hatayı yapmışlar... eski cihazların kodundan kopyaladıkları kısımlar patlatmış aleti.. bu da hepimize ders olsun.. kopya yok!

Yeni nesil projelerde eskiden gelen bilgi ve deneyimi aktarmak için C kodu çok yararlı oluyor. Birçok platforma derleyiciler sayesinde kodu değiştirmeden sadece donanımsal birimlerin setup işlemlerini değiştirip taşımak yeterli oluyor. Bu sayede kusursuz şekilde (Compiler'lara güvenerek) kod taşıması bilgi tecrübe deneyim aktarımı yapılabiliyor.
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: mufitsozen - 09 Eylül 2016, 11:37:49
Tuh sevgili @gerbay, Tamda sayin @z'ye guzel bir assist yapmistim, simdi o bi cakar doksandan gol olur demistim ama, oyle goruluyorki @z gece cok calismis hemen cevap yazmadi. Firsati kullanmadi (Rahmetli Erbakanin dedigi gibi @z "eline gelen kuşu kaçırdı!"  ;D) olsun ben gol atmayi bilmiyorum onun gibi ama cok iyi assist yaparim, daha baska firsatlarda cikar ilerde netekim!  ;)
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: RaMu - 09 Eylül 2016, 13:21:07
@berat23 @gerbay sizi gidi son darbeciler :) şaka şaka.
Bu sıralar darbe deyince akla başka bir şey gelmiyor.

Bir tane ASM kullanan hatalı bir ürün bulup suçuda ASM ye yükleyip,
buradan bir istatistik çıkarmak mı istiyorsunuz.
Biraz bilimsel olun, yeterli örnek alın, sonra genelleme yapma ihtimalimiz olsun.

Önerdiğiniz ADA vs. kullanıp incelediyseniz faydası şudur diyebiliyorsanız bende öğrenmeye çalışırım ama
eşek bilmediği otu yerse karnı ağrır,
bana bildiğini unut, bunu öğren işini bununla yapabilirsin
diyebilecek kadar iddialı olabilir misiniz.

İşin döndüğü noktalardan biri biz işinizi ASM ile yapın demiyoruz,
C çok kötü işe yaramaz, boşuna öğrenmeyin demiyoruz,
ben programcıyım kod yazarım diyorsanız alfabeyi bir öğrenin diyoruz.
Ha zaten ASM birilerinin işini görmediği için C geliştirildi yada B...

FPGA programlayacak biri varsa onada kapılarla devre tasarla derim,
hatta mcu programlayan adamında logic bilgisi iyi olmalı,
bir şeyin kökünde ne nasıl oluyor bilmesi gerekir.

Adam hobici, veya eh işte program yazacak,
isterse matlab üzerinden kodlarını yazsın mcu ya yüklesin,
isterse raspi arduino kullansın,
çalışsında nasıl çalışırsa çalışsın
modundaki adamlara değil ASM öğren deyişimiz,
BENİM diyen programcı ASM bilmek zorunda bunun kurtuluşu yok.
Sizin verdiğiniz "x86 işlemciyi protected moda geçirmek" örneği yine bunu destekliyor.


  Birde darbe olayına gelelim,
asıl darbeyi ben söyleyeyim size,
C derleyicisine güvenmiyorsun ama
ASM derleyicisine niye güveniyorsun deseydinizya,
ona verilebilecek cevap dahi yok.
(Aslında yazdığım kodu derleyicinin ne  olarak
opcode ve oradanda hex e çevirdiğinide kontrol ettiğim oldu,
bu ameleliğin paranoyaklığın daniskasıdır, evet.)

Hadi bunlarıda geçtim,
yazdığın kodu işlemcine yüklerken kullandığın programlayıcı ne derece başarılı,
acaba program memoryde senin yazdığın kodlar mı var?
Hadi programlayıcı doğru düzgün yükledi,
mcu nun bulunduğu ortamda program memory bozulursa, ram bozulursa, ne olacak, önlem aldın mı?

  Aslında konu başlığından uzaklaştık evet ama
başlık yanlış değil,
güncel mimarilere ASM ile daha hızlı çalışacak kod yazmak gerçekten çok çok zor iş,
ama bunun sonucu ASM işe yaramaz boşuna öğrenmeyin, hiç ASM öğrenmeyin,
ASM görünce olabildiğince uzağa kaçın :) demek değil.
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: Burak B - 09 Eylül 2016, 13:50:03
Alıntı Yap
STOKE is a stochastic optimizer and program synthesizer for the x86-64 instruction set. STOKE uses random search to explore the extremely high-dimensional space of all possible program transformations. Although any one random transformation is unlikely to produce a code sequence that is desirable, the repeated application of millions of transformations is sufficient to produce novel and non-obvious code sequences. STOKE can be used in many different scenarios, such as optimizing code for performance or size, synthesizing an implementation from scratch or to trade accuracy of floating point computations for performance. As a superoptimizer, STOKE has been shown to outperform the code produced by general-purpose and domain-specific compilers, and in some cases expert hand-written code.
https://github.com/StanfordPL/stoke (https://github.com/StanfordPL/stoke)
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: bulut_01 - 09 Eylül 2016, 14:48:23
sayın gerbay hocam merak ettiğim bır konu var hayati bir sistemi kontrol eden 2 mcu olsun biri pic diğerinde bahsettiğiniz ti nin cortex-R D Sertifikalı mcu olsun kıyaslama yaparsak 2 mcu arasında pic hangi koşullarda yada şartlarda hayati error yaparak sistem calısmasını bozar.Bunun net cevap varsa merak ediyorum microchip sitesinde güvenlik sertifikaları var ama anlamadım.
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: MrDarK - 09 Eylül 2016, 15:05:03
gerbay hocam olmadı ama böyle; ben küstüm oynamıyorum demenize gerek yok. Siz düşüncelerinizi yazdınız, herkes kendi düşüncelerini yazdı. Kimsenin kimseye birşey kabul ettirme çabasına girmesine gerek yok bence. O yüzden herkes kendi işinin sorumluluğunu alır. Siz bu şekilde bilgiler paylaştıkça tartıştıkça insanların neler yaptığını öğrendiniz, bizde bu tarz mimarilerde dikkat edilen şeyler neler onları öğrendik. Onun dışında foruma yabancı olan arkadaşlar ise ASM ile C arasındaki tartışmayı okumuş oldu. Kimin neyi değerlendirdiği kendine kalmış. O yüzden üstadlardan tek dileğim kimsenin fikrine kızmadan yazmaya devam etmeleri. Uzun zamandır forumda bu kadar heyecanlı ve yararlı bir konu okumamıştım :) konuda emeği geçen herkese teşekkür ederim
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: z - 09 Eylül 2016, 15:50:21
Alıntı yapılan: gerbay - 09 Eylül 2016, 11:17:35
@z hocam dahil arkadaşlardan kaçı bu tip işler ile uğraşıyor..  bu tip işler ile uğraşanlara neden ASM ile yazıyorsun denmez zaten..

Hocam 94 yılından bu yana hemen hemen hiç asm kodlama yapmadığım x86 makine kodlarından bahsediyorsun.

Bu yöntemi 90 lı yıllarda öğrenmiştim. DOS işletim sistemindeki makineyi 32 moda geçirip hem dos çalışmaya devam ediyor hem de 32bit asm koda sahip programlar yazabiliyordum. O yılların HDDleri bir yerlerde mevcut yazdığım kodlar hala duruyordur.

Bu bir bugdı ve hayal meyal bu bug askeri bir tesisin şifreli kilidinde açığa çıkmıştı diye hikayesini hatırlıyorum.
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: F493 - 09 Eylül 2016, 16:17:59
Selam,

  ASM ile kod yazmak oldukça zor bir olay. Neden mi?

  1- İşlemcinin komut setini çok iyi bilmeniz gerekir.
  2- yazacağınız kodun ait olduğu projenin bütününe hakim olmalısınız ona göre düzenli yazmanız gerekir yoksa sonra çorba olur işin içinden çıkmak zorlaşır.
  3- işlemcinin özel komutlarını işlemleri hızlı yaptığı komutları çok iyi bilmek gerekir.

  Asm ile yazılan kod daha  hızlı çalışır diye bir şey olamaz, bu iş kodu yazan kişinin yukarıdaki  3 maddeye hakim olduğu kadarıyla olur  Bunlarda yetmez , yazılım hız optimize mi yoksa memory optimize mi çalışşsın buna görede yazma şekli değişir. Yani anlayacagınız bayağı bir iş. Ama bunu beceren kişi, işlemci değiştirdiğinde yeni işlemcinin komut setini iyi örenirse orada da bu işleri başarır.

Fakat sorun şu ki, günümüzde hiçbir firmanın mükemmel çalışan bir ürüne ihtiyacı yok, yazılımcı nükemmel yapmak ister ama baskılar bunu engeller. Yaşadık bütün bunları.

Asm ile kod yazmak daha sonra kod eklemeyi, işlemci değiştirmeyi çok çok zorlaştıracagından bu da tercih edilmemesinin bir nedenidir. Çalıştığın firma çıkıp sana "ya kardeşim iki özellik istedik hala bitiremedin" der. Apışıp akalırsın. Ama kendi işinse ve paran çok zamanın geniş işe bunları yapabilirsin.

Şimdiki derleyciler ve işlemciler " C Optimized " olayını vurguluyorlar, yani tasarlanan işlemciye direk C dilinin komut setine karşılık gelen komut setleri ekliyorlar yani ASM kadar mükemmel olmasa da ortaya iyi bir sonuç çıkıyor.

Artık projeler device driver şeklinde değil yani çok çok yüksek performans ancak projelerin %2 sinde gerekiyordur. ozaman aç kalmamak  :) için kalan %92 lik kısımda yer almak çok daha mantıklı, gerçekçi.
FreeRTOS, TFT, ETHERNET, GUI vs olan bir projelerde ASM ile kod yazılmaz. Hatta artık C bile karmaşık kalıyor, C++ ile yazılıyor. Son örneği TouchGFX. C++ ile yazılmış ve FreeRTOS üzerinde çalışıyor

Gönül isterki yaya yaya,zevkle mükemmel iş yapmaya çalışalım ama kapitalist düzen bunu engelliyor. Az zaman çok iş hızlı müdehale. Yukarıdaki 3 maddenin tamamını sağlıyorsanız ve paranız çok zamanınız geniş ise ASM yoksa C, C++.

Esen kalın.
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: bulut_01 - 09 Eylül 2016, 16:36:48
Alıntı yapılan: bulut_01 - 09 Eylül 2016, 14:48:23
sayın gerbay hocam merak ettiğim bır konu var hayati bir sistemi kontrol eden 2 mcu olsun biri pic diğerinde bahsettiğiniz ti nin cortex-R D Sertifikalı mcu olsun kıyaslama yaparsak 2 mcu arasında pic hangi koşullarda yada şartlarda hayati error yaparak sistem calısmasını bozar.Bunun net cevap varsa merak ediyorum microchip sitesinde güvenlik sertifikaları var ama anlamadım.

Gerbay hocam cvpınız bnm için önemli bu konuda görüşünüzü nedir.
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: kantirici - 09 Eylül 2016, 17:25:30
Konudaki ASM, C  ve programcılık hakkındaki bilgiler oldukça güzel. @z ve @gerbay tüm yorumları okuyan ve yeni bilgiler kazananlar var emin olabilirsiniz çünkü birisi benim.

Şahsi görüşüm büyük bir proje üzerinde artık ASM ile kod yazmak mümkün değil. Zaten C'nin esnekliğini, veriler üzerindeki manipülasyon kolaylığını, platform bağımsızlığının tadını alan işi düşmedikçe ASM ile yazmaz. Kaldı ki genel gömülü sistem iş ilanlarına bakarsanız ASM ile kodlama isteyen firma bulmak zor.

İnsanlar yazılan kodu başka platformda da çalıştırayım, bunun yazdığını bir sene sonra başkası da kolayca anlasın yazsın diye düşünüyor.

Proje ilerlerken dahi platform değişebiliyor. Yani pic ile başlayıp st ye geçip son olarak ürün ti mcu da piyasaya çıkabiliyor. Şirket proje başlangıcında 2$ fiyat aldığı mcu için proje sonlarında 25 cent düşük fiyat aldığı benzer maxim e geçiyor.

Olayın birde grup çalışması ayağı var. Proje 3-5 v.s kişi ile ilerliyor. Herkes kendi tarafını yazıyor ve bir gün öğleden sonra tek proje halini alabiliyor.

Diğer bir durum ise kütüphane olayı. Yani bir projeye başlayacaksınız ve carcurt protokolü / ihtiyacı / stack v.s için kütüphane almanız veya kullanmanız gerek çünkü zaman ve adam yok veya tekrar yazmak anlamsız zahmetli v.s . Bu kütüphanelerin hepsi C de yazılmış.

Artık çeşitli yerlerde C yi bırakn C++ a geçin tarzında pek çok makale görmek mümkün. Buda işin sonraki boyutu.

Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: z - 09 Eylül 2016, 17:38:47
Alıntı Yapsayın gerbay hocam merak ettiğim bır konu var hayati bir sistemi kontrol eden 2 mcu olsun biri pic diğerinde bahsettiğiniz ti nin cortex-R D Sertifikalı mcu olsun kıyaslama yaparsak 2 mcu arasında pic hangi koşullarda yada şartlarda hayati error yaparak sistem calısmasını bozar.Bunun net cevap varsa merak ediyorum microchip sitesinde güvenlik sertifikaları var ama anlamadım.

Ayrıca Gerbay'da cevap yazar.

Hayati derece kritik bir sistem kontrolünden bahsediyoruz. Bu bir kenarda dursun.

Otomatik kontrol sistemlerinde  kontrol düzeneği girdi sinyallerine cevaben çıktı sinyali üretir.

Üretilen cevap kontrol ünitesinin transfer fonksiyonu ile belirlenir. Transfer fonksiyonunu ise kullanılan malzemelerin birlikteliği ile oluşan düzeneğin matematiksel modeli belirler. Sistemimiz analog bir kontrol düzeneği ile kontrol ediliyorsa;

Örneğin basit bir RC devresininde R=1K C=1uF ise sistemin  transfer modeli bellidir. Sistem normal şartlarda asla ve asla kısa bir süreliğine bile R=10 ohm gibi davranıp yanlış sonuçlar üretmez.

Dolayısı ile kontrol düzeneğinin transfer fonksiyonu, malzemelerin yaşlanma etkileri, termal şartların değişmesi ve sistemin zorlanmasına neden olacak büyük giriş sinyalleri haricinde değişim göstermez.

-------------------

Ancak kontrol sistemleri giriş sinyalleri haricinde bir takım bozucu sinyallere de maruz kalır. Bu sinyaller doğrudan giriş sinyali üstüne binebileceği gibi vibrasyon, ısı, ışık, elektromağnetik gibi yollarla da kontrol sistemine sızabilir ve kontrol sistemin vereceği cevabı değiştirebilir.

-------------------

Ancak bu hatalar gelip geçici hatalardır kontrol düzeneği bu hataların da etkisini azaltmaya çalışır. Bozucu ortadan kalktığında sistem de zaten normal çalışmasını sürdürür.

-------------------

Eğer kontrol sistemini analog değil de Flip floplar barındıran durum makineleri ile yaparsak (CPU vs dahil) bozucular sistemi tamamen farklı bir duruma taşıyabilir.

İşte burada MCU gibi sistemlerde sadece 1 bitin yanlışlıkla değer değiştirmesi bile sistemi bir daha düzelmeyecek şekilde belirsiz durumlara sürükleyebilir.

Bu gibi durumlardan haberdar olmak için en azından sistemin kontrolden çıktığının farkına varmak için bir takım düzenekler geliştirilmiştir.
Böylelikle en kötü ihtimal sistem resetlenip tekrardan çalıştırılabilir.

Fakat bunlar sadece yavaş sistemlerde çözüm olabilir.  (Ses hızını aşmış bir savaş uçağınında işlemciler varsa be bunlar resetlenirse ne olur bilemiyorum)

---------------------------

Digital düzenekler analog düzeneklere kıyasla bozucu etkisinde tamamen kontrol dışı kalabilir.

Ramdaki veri anlık bozulabilir ve kaotik durumlar oluşabilir. İşte bu durumda tek bir işlemci ile çalışmak yerine aynı iş birden fazla işlemciye yaptırılıp bunlar bir karar mekanizması ile gözlemlenebilir ve doğru sonuç ürettiği düşünülen çıkışlar kullanılabilir.

Sonuçta hayati riskleri olan bir sistemi tek işlemcinin eline bırakmak zaten bir risktir.

Tüm bu anlatılar ışığında, bana göre bir işlemcinin güvenilir olabilmesi için;

CPU tarafından içeriği değiştirilebilen tüm veri alanlarının (Ram ve registerler) içeriği, CPU tarafından değiştirilmediği halde değiştiyse, int mekanizması vs yardımıyla derhal işlemcinin en azından güvenli bir kod parçacığını çalıştırabilecek yetenekte olması gerekir.
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: RaMu - 09 Eylül 2016, 18:28:19
@gerbay hocam ben sizi çok net anlıyorum,
yazdıklarımı yanlış anlamaya çalışmayın,
sonuçta ASM ile hayatını kazanan biri olarak tecrübelerimi paylaşıyorum,
gelişime değişime açığım,
daha iyi alternatif arayışımda var,
yüksek seviyeli dilleri derinden öğrenmeyede çabalıyorum,
daha fazla açıklama yapasınız ve benim gibi ciddi işler yapmak isteyenlere
örnek olsun diye sorular soruyorum.

Bende gayet objektif yazdığım için
ASM nin zararlarındanda bahsediyorum,
neden rahatsız oluyorsunuz anlamıyorum.

Boşuna yazdığınızı düşünmenize hiç gerek yok,
bizim millet o kitapta yazandan değil,
biz takip eden sessiz çoğunluk milletiyiz.

Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: bulut_01 - 09 Eylül 2016, 19:56:29
Vallahi gerbay hocam sayenizde baya birseyler ögrendik 1140 yılda 1 hata inanılmaz degerler bu sertifikarın hepsini içer mcu varmıdır.hayati bir sistem yapıyosanız hersey kusursuza yakın olması gerekli radyasyon dayanımı ilgili standartlar sertifikalar baya gzl kısacası ögrenecek çok sey var bitmez ögrenmeyle konu ve tartısma gzl gidiyor.
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: tekosis - 09 Eylül 2016, 20:06:20
Bu başlığı takip ediyorum. Gayet güzel gidiyor. Hocalarım yazdığınız hiçbir şey boşa gitmiyor. Elinize emeğinize sağlık.
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: z - 09 Eylül 2016, 21:12:09
Alıntı yapılan: gerbay - 09 Eylül 2016, 16:11:43
hadi şu an kullandığın işlemciden "örnek" vereyim;

bildiğiniz üzere Cortex-M3 de 2 adet stack pointer var. birisi  MSP (Main Stack Pointer), diğeri de PSP (Process Stack Pointer) ..

C compiler ı ile direk bunlara erişemezsiniz. istediğiniz anda MSP ve PSP değerlerini okumak isterseniz ya ASM ile kod yazmanız gerekir ya da compiler üreticisinin (ya da ARM ın) sizin için yazdığı kütüphanedeki "intrinsic" fonksiyonları kullanmanız gerekir.

ya da STREX/LDREX opcode larını ele alalım, hangi compiler hangi durumda bu opcode u koyacak şekilde kod üretir?


ASM hakkında hiç fikri olmayanlara hitaben;

ASM ile çalışırken işte bunlar çok sıradan şeyler haline geliyor.  Kimseden kod üretmesini beklemiyoruz. Canımız istediğinde  PSP' yi canımız istediğinde STREX, LDREX komutlarını da kullanıyoruz.

İşin içine girip biraz derinlere dalıp basit bir task switching ardından tasklar arası veri değiş tokuşu vs işlere ihtiyaç duyarsanız işin içine 2. stack pointer, korumalı yazma/okuma, kullanıcı modu, korumalı mod, handler modu, task modu vs herşeyle ilgilenmeniz gerekir.

Sadece C kodlama yaparak CPU'yu hiç tanıyamazsınız.  İşlemcinin ve derleyicinin yaptığından bana ne C satırıma ait kodları işletsin de içeride ne yaparsa yapsın derseniz zaten bu konulara merak yok demektir. Bu tip adamlarla da asm muhabbeti de yapmanın mantığı olmaz.

Forumda pek çok kereler LCD ye interrupt içinde veri yazarken sorunlarla karşılaştıklarını ve buna çözüm aradıklarını yazmışladı. Ya da int rutininden çıkışta ana programa değil de bir başka rutine gitmek istedikleri artık o rutini ana program gibi kulanmak istediklerini daha sonra ilk programa gitmek istediklerini falan isteyenler çıkıyordu.

Şimdi bu adama çözümü anlatsak kodlamayı yapabilecekler mi?

Elbette yapamayacak. Yapacak kapasitedeki adam zaten bu tip soruları sormaz.

Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: Okan AKÇA - 09 Eylül 2016, 21:48:28
Arm'a asm ile kod yazmadim ancak pic ile çok yazdim ve suan c ile yazıyorum asm tartismasizdir. Islemci mimarisini bilen tabiri caizse kodlari takla attirir. Microchip ile örnek veriyorum asm en az 1/3 oraninda ve  daha az kod buda c kodundan hızlı oldugu anlamina geliyor  işi bilmeyen birisinin yazdigi kod ile isi bilen c de yazan kisi kiyaslanamaz. Suan asm ile yazmasamda asm tartismasizdir.
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: RaMu - 10 Eylül 2016, 00:37:57
@gerbay hocam emin olun kullanmak isteyenin her bilgi işine yarıyor,
yıllar önce pic32 ye asm ile yazmak istiyorum demiştim,
C ile yazsan daha avantajlı olur dedi forum ve ikna oldum,
C öğrenmeye başladım.
Şimdide anlattıklarınız çekici geldiği için tartışmayı alevlendirmek istedim biraz.
Yoksa verdiğiniz linkleri inceledim ve
bulduğum tezatları dahi yazmadım.
Konuyu dahada derinlemesine anlamak için somut örnekler bekliyorum aslında.

Yani en son mesajınızdaki gibi şurada çalışan arkadaşım var,
veya ben şu nitelikte bir iş ile uğraşıyorum,
böyle böyle işler yapmak istiyorsanız,
şu niteliklere sahip olmalısınız,
bu işlere girmek size nasip olur veya ağzınızla kuş tutsanız amca dayı lazım bunu göz önünde bulundurun,
sonuçta dediğiniz gibi insan emek verdimi karşılığını bekliyor,
ve şu şu işlerde çalışırsanız bakın şu sertifikaları şu uygunlukları şu kurumlar istiyor,
bizde şu şekillerde sağlıyoruz...
Gibi yeri geldikçe somut örnekler verebilirsiniz diye konu devam etsin istiyorum,
verdiğiniz linkleri okuyunca pekte gerçek hayatla bağdaştıramıyorum,
kendimi bir kokpit için program geliştiren biri olarak hayal etmek zor geliyor,
bu kabiliyetim var ama biliyorsunuz liyakatla yürümeyen işler ülkesi var,
kod satırlarının arasından çıkınca bizi hangi başka gerçekler bekliyor,
bu bile öğrendiğim ve öğrenmeye niyetlendiğim şeyleri etkiliyor doğal olarak,
yoksa C de ASM de ucundan yazan zaten hangisinin nerede ne kadar kendine yarayacağını anlıyor,
bu işlerin iyice içine girince programcıları neler bekliyor,
tecrübelerinizi aktarmaya devam edebilirseniz sevinirim.

Bir hikaye benden olsun:
Ben üniversitede C dersini geçebilmek  için
10 sayfa kadar programcıkları ezberlemiştim,
o zaman C derslerinde hayatımda ilk defa şunu demiştim kendime,
yapamayacağım bir şey varsa oda programlamayı öğrenmekmiş,
zor olanı yapmışım ezberleyip sınavları verdim,
ama birkaç yıl sonra ASM ile tanıştım çok kolay gelmişti,
programcılığı bu sayede çok basit ve zevkli şekilde öğrenmeye başladım.
Sonra C ye tekrar bakınca vay be nasıl öğrenememişim eskiden dedim.

Yani hocam herkes neyi istiyorsa onu kullanacak ama
zamanla istediklerin değişebiliyor, değiştirilebiliyor.
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: mert3162 - 10 Eylül 2016, 05:24:41

ASM nin @z hocamın yumuşak karnı olduğunu sadece profiline tıklayıp avatarına baksanız bile görebilirsiniz.Ben sırf kendisini bu konunun içine çekmek (teşvik etme amacı ile) ters görüşlerde bulundum yoksa pic öğrenirken BTFSC,BTFSS yi ilk duyduğumda yemişim lojik kapılarla saçma entegrelerle devre tasarlamasını ben pic öğrenicem diyip dalmıştım foruma 12 Aralık 2003 tarihinde sonrasında pic staj yaptığım şirkette ticari ürünlerin içinde kullanılsada benim için (malesef) hobi ürünü olmaktan öteye geçemedi.(Kullanma fırsatım yada profesyonel işimin olmaması sebebi ile işlemciye zaman harcamama yüzünden)PLC ye yönelince makineler programlar arızalar derken biraz pnömatik biraz hidrolik.
[/size]
[/size]Pic konusunda ise ben EML Elektrik bölümü okuyordum ve bizde mikroişlemcili dersler yoktu sadece dijital elektronik hocamız iyi bir adamdı karnaugh haritalarını ve dijital devre tasarımını öğrettiğinde picleri ilk ozaman duyup soluğu forumda almıştım.Neyse konudan çok uzaklaştım.Tek amacım @z hocamı konuya dahil etmekti biraz kışkırtınca bizim için çok faydalı bir münazara gerçekleşti c ve asm nin birbirine olan farklarını artılarını eksilerini böylece öğrenmiş olduk.Hatta forumda bir daha soran olursa burayı referans verebiliriz.Güzel bir konu olduğunu düşünüyorum.Emeği geçen sıkılmadan usanmadan bizlere fikirlerini beyan eden hocalarımıza teşekkür ediyorum.

Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: z - 10 Eylül 2016, 07:31:56
Alıntı yapılan: gerbay - 09 Eylül 2016, 23:36:23
hocam zaten söyledik, işletim sistemi yazmaya çalışacak adam ilgili işlemciyi öğrenmeli.. sadece işlemciyi de değil, kullandığı derleyiciyi de iyi öğrenmeli.

ama yine söylüyorum, işletim sistemi ASM ile yazılmaz, C++ ile de yazılmaz, C ile yazılır. Bunu mümkün olup olmaması açısından söylemiyorum. Doğru olan o olduğu için söylüyorum.

hocam işletim sistemi yazsanız bile yazacağınız ASM kodu bir kaç rutinden ibaret kalır.....

Hocam işletim sistemi yazmak diye neden şartlanıyorsun. Klasik düz yazım şekli ile kodunu yazıyorsun yazıyorsun sonra ana döngüde iki fonksiyonu peş peşe çalıştırırsan ana döngü süresinin uzayacağını ve bazı olumsuzluklar olacağını öngörüyorsun. Hemen bunları ayırıyorsun ve her timer int üretildiğinde bir birinin bir birinin çalışmasını sağlıyorsun. Oluyor sana task anahtarlaması.
Tüm bu işleri kısacık bir kodlama ile yapıyorsun.

Bu kodlamada bazen o garip 4..5 komuttan yararlanmak gerekiyor.

Gördüğün gibi hiç kimseye muhtaç değilsin. Öbür türlü basit bir iş için bile RTOS yükle, RTOS'u öğren incelikleri öğren ohooooo.

Kafamı neden abuk sabuk şeylerle doldurayım.

Dünyaya tekrar gelsem konuşmayı öğrenmeden önce asm'yi öğrenirdim.

Yapılacak projenin adı sanı önemli.

ASM ile programcılık diyince benim aklıma asla büyük verilerle işlemler gelmiyor.

Elektronik, motor, opamplı devre eşdeğeri vs geliyor.

Biz elektoniği yeni yeni öğrenmeye başladığımızda elektroniği hiç bilmeyen amcalar motorla döndürülen tamburlu düzenekler yaparlardı. Yürüyen ışıklı reklam panoları vs bunlarla yapılırdı. (Eskiden çamaşır makinelerinde kullanılan mekanik beyinlerle aynı mantık)

Sonra basit lojik devreleri öğrendik sonra filip floplarla ardışıl işlemler yapmayı. Durum makinesi yapmayı öğrendik.  Senkron tasarım asenkron tasarım derken  MCU ile tanıştık tüm o eski bilgilerin üstüne bu büyük kolaylık oldu.

Sonra kontrol teori falan öğrendik. Matematik öğrendik. Tamburlu düzeneğin benzeri sisteme bunları da ilave ettik.

C biliyormuyum? İşimi görecek kadar biliyorum.
ASM biliyormuyum Allah'a şükür.
Hangisi daha elemanter?
Hangisinde ıvır zıvır bilgi öğrenmem lazım? Bana ne x adamın yazdığı kütüphanede hangi fonksiyonlar var bunların parametreleri ne?

Olay tamamen ne tip projeler yapmak istemenizde.

Alıntı Yaphocam bu bahsettiğin arkadaşların problemi dil seçimi değil. problem bilgisizlik..

Ben de bunu diyorum bilgi olduktan sonra C diye diretmenin anlamı yok. ASM ile de olur.

---------------

Bana göre C ile kodlama yapanların süper zengin yatlı katlı, Ferrarili, 4..5 sevgilisi olan acaip sosyal adamlar olması lazım.

Neden mi?

Düşünsenize kodlamayı çok hızlı yapıyorsun işi şipşak bitiriyorsun.  Kısa sürede çok iş yaptığın için de acaip te para kazanıyorsun.

Hep para hep para değil biraz da sosyal olmak lazım. Madem iş çabuk bitiyor öğle yemeğine bile kalmadan saat 11'ye doğru alır çantamı geçirir kafama şapkamı ve dönerim asm ile kod yazmaya çalışan sefil arkadaşlarıma gıcıklık için çakarım bir asker selamı,  siz asm ile boğuşun Abbas kaçar yarın sabah  görüşürüz der fitness salonlarına at yarışlarına yada hatunlarla takılmaya, vals, tango falan yapmaya giderim.

Ama malesef öyle olmuyor.

Dediğim gibi bu minik kartlarla yapılan ne projelerinden bahsediyoruz. Ben OS yazmıyorum. C ile kodlayan arkadaşlarım da OS yazmıyor. Otomasyon vs vs işi yapıyoruz.
Sen de muhtemelen işyerinde C ile led yakıp söndürmüyorsundur. Senin işlerin için C lazımdır.

Bizim projelerde bazen bir opamplı devrenin eşdeğeri yazılım yeterli olur.
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: Yuunus - 10 Eylül 2016, 09:25:27
@z hocam gülmekten karnım ağrıdı nerden aklına geldı bu mısal Biz özgür kızlarız. Siz ise aile kızları. Sizi aile ve çevre baskılar. Biz kafamıza eseni yaparız. Bu yüzden sizin kodlarınız hemen hemen hep düzgün çalışır. Biz bazen hata yapar kötü yola düşeriz.
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: z - 10 Eylül 2016, 09:51:23
Örnek güzel hocam.

Disiplin artarsa kontrol artarsa hatalı iş yapma durumu azalır. Başına buyruk olursan hatalı iş yapma ihtimalin artar.

ASM de başına buyruksun. Hele hele de protected modda çalışan bir işlemcide protected mod yetkilerini ele geçirirsen bir Allah'ın kulu sana heyt hüyt diyemez. Kral sensin. Artık sen hey hüyt etmeye başlarsın.

ASM'den uzaklaştıkça emir kulu olmaya başlarsın. Yok şöyle yapmayacan yok başını öne eğecen, yok şunla konuşmayacan.

Biz özgürüz abi gelemeyiz öyle baskılara.
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: sovalye - 10 Eylül 2016, 10:51:16
@gerbay hocam agzinda tuy bitti, hala tam olarak doğru anlasilamadin ya uzuluyorum. Bakiyorum Bakiyorum buna sebep olacak bi cumle de bulamiyorum. Emeginiz sabriniz için çok teşekkür ediyorum benim adima oldukca ogreticiydi.
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: z - 10 Eylül 2016, 11:19:16
Başlık saçma.

Başlığı "Ebenizden kalma işlemcilere yazdığınız tekniklerle güncel mimarilere asm kod yazarsanız daha yavaş çalışır" şeklinde yazsaydı dilinde tüy bitmezdi.


Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: z - 10 Eylül 2016, 11:47:35
Hocam müslüman mahallesinde salyangoz satmak istiyorsun.

Bilgisayar mühendisliği büyük yazılımlar yapar. Elektronikçiler küçük yazılımlar yapar. Elektronikçilerimiz gerçek mesleklerini unutup yazılım ağırlıklı görece elektroniği az işlere kaydığı için asm'den falan uzaklaşıyorlar. Lojik devrelerden, analog devrelerden falan da uzaklaşıyorlar.

Öyle bir gün gelecek ki kütüphanesiz kod yazamaz hale gelecekler özel amaca yönelik çipler olmadan devre bile tasarlayamayacaklar.

İşin özü bu. Motor döndürmek vs dediğin basit küçük işler bu elektroniğin gerçekleri.

Daha önce yazmıştım gözünden kaçmıştır. Kimseye asm pompalamıyorum. C öğrenin diyorum. Fakat asm'ye atan tutanlara da kafa kaldırıyorum.

Haa yazdıklarımdan sonra asm'ye gönlü kayanlar varsa kaysın. Doğru yoldalar yada yanlış yoldalar demiyorum.

C ve asm gerçekleri ortada isteyen istediğini kullanır.

Konu başlığına hâla itirazım olduğu gibi  basit işler için RTOS kullananlara da saçmalıyorlar diyorum.

Tickless OS kavramından bana ne. Bana böyle sizin camiadaki kavramlarla gelme. Ne yapmak istiyorsun işin özünü söyle. Low power mı? Ona göre kod yazarız.
Amac tempest mi? Ona göre de yazarız. Gerekirse aldatmacalar da yaparız.

Taskları ister timer ile değiştiririm istersem ADC ile istersem Usart ile. İşte özgürlük bu.

OS yazan biriniin osunu bulacan da öğrenecen de he babam hee.

Yazıverecen işte. "Mutexini", "Semaphore"unu uyduracan lazımsa.
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: z - 10 Eylül 2016, 12:10:47
Böyle yapma, böyle deme işte.

Sanıyorsun ki bütün projeler os istiyor acaip büyük verilerle cebelleşiliyor.

Sen olayları bilgisayar mühendisi gözüyle değerlendiriyorsun. Yazmıştım daha önce. Herkes farklı problemlerle uğraşıyor.

Bu forumda bilgisayar mühendislerinin yapması gereken projeleri elektronikçiler yapıyor. Yapmamalılar aslında. Elektronikçilerin yapması gereken işleri de yazılım işlerinin kıyısından köşesinden bulaşmışlar yapıyor.

Ondan sonra biri ötekine öğüt veriyor.

Bunun adı "boklu çamurluyu kınıyor".

Yahu os vs yazan bir adamın ne haddine motor yazılımı yapmak.

Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: tmcone - 10 Eylül 2016, 13:05:38
Programlamaya yeni başlayan birisi için işlemci mimarisini tanımak adına bir miktar assembly öğrenmek faydalı olacaktır. Bir
değişkenin (pozitif veya negatif) hafızada nasıl saklandığını, işlemcinin kapasitesini ve komutları ne şekilde çalıştırdığını bilmek
programlamayı sağlam temeller üzerine oturtmak açısından oldukça önemli. Bu sayede  hem karşılaşılan sorunlar daha kolayca çözebilir
hem de C/C++ da daha bilinçli kod yazabiliriz. Böylece seri porttan bir şekilde 1 byte data gönderebilirken "float" değişken nasıl
gönderilir ya da 8 bitlik işlemcide 16 bitlik değişkenin kesmeler aktiften veri bütünlüğü korunarak nasıl güncellenmesi gerekir?
şeklinde çok temel sorularla karşılaşmayacağız. Bunun dışında @gerbay ın belirttiği gibi birkaç istisnai durum dışında assembly
kullanmanın, zamanın verimsiz değerlendirilmesinden başka kayda değer bir sonucu olacağını zannetmiyorum. C de oluşturduğumuz bir
proje bile binlerce satır kod içermekteyken bunu assembly ile yazmaya çalışmak yalnızca satır sayısını artırmakla kalmayacak daha da
önemlisi muhtemel hata oranını da ciddi miktarda artıracaktır. Bunun yanında okunabilirlik ve taşınabilirlik de azalacak.

C ve assembly seçimi konusunda çok fazla konuşmaya gerek olmadığını düşünüyorum. Herkes istediğini kullanır. Dünyada ne kullanılıyor derseniz:
Perhaps a few critical code fragments will be written in assembly language. But according to a recent study by the Barr Group,
over 95 percent of embedded-system code today is written in C or C++.

http://systemdesign.altera.com/tomorrows-embedded-systems-programming-language-still-c/#figure01 (http://systemdesign.altera.com/tomorrows-embedded-systems-programming-language-still-c/#figure01)

------------------

"Functional Safety" için sadece işlemci seçimi yeterli değil. Normal bir işlemci ile bile gereksinimlerin karşılanması halinde
sertifika alınabilir. Adresleme, okuma, yazma, kaydetme, hesaplama vb. esnasında çeşitli nedenlerle birtakım hatalar oluşabilmekte.
Eğer devrede kalıcı hasar oluşturmadıysa bunlar "soft errors" olarak adlandırılmakta; yazılım ve/veya donanım tarafından sürekli
kontrol edilerek tespit edilebilirler ve hata giderilebilir. Bu hataların görülme oranı kalıcı (hard) hatalara nispeten çok
yüksektir. Daha fazla bilgi edinmek isteyenler IEC 61508 part 7 yi okuyabilirler. Ayrıca aşağıdaki dökümandan da (ST AN4750)
yararlanabilirler.
http://www.st.com/content/ccc/resource/technical/document/application_note/15/54/c4/5d/90/ed/4f/ce/DM00220769.pdf/files/DM00220769.pdf/jcr:content/translations/en.DM00220769.pdf (http://www.st.com/content/ccc/resource/technical/document/application_note/15/54/c4/5d/90/ed/4f/ce/DM00220769.pdf/files/DM00220769.pdf/jcr:content/translations/en.DM00220769.pdf)

"Soft" hataları tespit etmek için başlangıçta ve çalışma esnasında periyodik olarak birtakım testler yapılmalıdır. Cpu birimlerinin
doğru çalışıp çalışmadığı, çevresel birimlere ait registerların uygulama tarafından atanmış değerlerden farklı bir değer alıp
almadığı, tüm hafıza birimlerinde (flash ve SRAM vb.) herhangi bir ya da birden fazla bitin değişip değişmediği, işlemcinin
belirlenenden çok sık ya da daha az kesmeye girip girmediği, yazılımın olağan akışı içinde olup olmadığı, çalışma frekansının belirli
toleranslar dahilinde olup olmadığı gibi.Ayrıca hesaplama yapılırken aynı sonucu üretecek farklı yollar kullanılarak sonuçlar
kıyaslanabilir. Değişkenler hafızanın birbirinden uzak alanlarında biri normal şekilde diğeri terslenip saklanabilir(buradaki yöntem
hatanın bir bölgeyi etkileyeceği hipotezine dayandırılmaktadır). İşlemci dışında ise çift sensör ve çıkışların kullanılması gerekir.
Örneğin dijital giriş okunurken MCU nun fiziksel olarak ardışıl olmayan farklı portlardaki iki pini tercih edilmelidir. Benzer
şekilde dual çıkışlı sensör kullanıp bunlar farklı ADC modüllerine girilmelidir. Birde fazla işlemcili (örneğin: 32 bitlik ana işlemci ile
8 bitlik monitor işlemci kullanımı ya da özdeş donanımlar) yapılar da sıklıkla tercih edilmektedir. Bunları daha da detaylandırmak mümkün...
İlgilenenler standartları (IEC 61508-tüm gömülü sistemler, ISO 13849-makina, ISO 26262-otomotiv vb) okuyabilirler.
Bu şekilde yazılım ve donanım kontrolleri yapılarak sertifikasyon elde edilebilir. Örnek olarak:
http://www.st.com/content/st_com/en/products/embedded-software/mcus-embedded-software/stm32-embedded-software/stm32-3rd-party-embedded-software/stm32-safesil.html (http://www.st.com/content/st_com/en/products/embedded-software/mcus-embedded-software/stm32-embedded-software/stm32-3rd-party-embedded-software/stm32-safesil.html)

Bu yöntemin yani işlemcinin donanımsal desteğe sahip olmamasının dezavantajı ise geçici hataları tespit etmek mümkün olmayabilir.
İşlemci bir yandan uygulamanızı çalıştırırken diğer yandan da sürekli kontrol kodlarını çalıştırmak durumunda. Bu kodların ne kadar
sıklıkla çalışacağı PST (Process Safety Time) göz önüne alınarak hesaplanmalıdır. Bu süre milisaniye mertebesinde olabilir. Eğer
uygulamanızda kritik zamanlama gereken kısımlar varsa ya da tepki süreniz kısa olması gerekiyorsa güvenlik kodlarını çalıştırmak için
yeterli vaktiniz olmayabilir veya yapsanız dahi hata tespit mekanizmanız kapsamlı (diagnostic coverage) olmayabilir. Bu nedenle
donanımsal destek olmadan bazı uygulamaları yapmak mümkün olmayabilir. Bu bağlamda yarıiletken üreticileri birçok ürün çıkarmakta.
Örneğin TI in Hercules serileri dışında Infineon AURIX, NXP ve ST nin PowerPC tabanlı MPC 5XXX, SPC 5XXX serileri, Toshiba, Renesas
vb. safety işlemcileri mevcut. Sertifikasyon risk analizi (örn. EN 12100), planlama, "reliability" hesaplamaları, implementasyon,
validasyon, testler, dökümantasyon gibi birçok konuyu içerdiğinden sadece safety işlemci kullanmak yeterli olmayacaktır.

Avrupada yalnızca otomotiv ya da medikal ürünler için değil endüstriyel uygulamalar için de SIL sertifikalı ürünlere ciddi bir talep
var. PLC ve kontrol üniteleri (ECU) dışında sensörler, röleler vb ürünler için de sertifikalı ürünler tercih ediliyor. Umarım
ülkemizde de bu konuda güzel çalışmalar ortaya çıkar.
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: engerex - 10 Eylül 2016, 15:40:33
 Aslında bir galip aramaya yok. Çünkü her iki tarafta haklı görülüyor. Eğer yanlışsam düzeltin.
@gerbay ASM kullanmanın genel anlamda gereksiz olduğunu belirtmiş. Günümüzde donanım hızları da ve hafıza miktarları da gayet yeterli. Yeni donanım teknolojileri ve derleyiciler ile işlemciler çok daha verimli kullanılıyor. ASM ile kod yazmak yeni teknolojilerle artık çokta gerekli bir konu değil.

@z ise ASM ile donanıma her türlü hükmederim. Siz sadece ne yapmak istediğinizi söyleyin. Bu zamana kadar kullanmadığım komutlar/vs. ne var ise kısa sürede mantığı kavrayarak uygularım. Nabza göre şerbet. Başkasının yazdığı sayfalar dolusu kütüphaneyi öğrenmeye çabalayacağıma kendi ihtiyacım olan kadarını kendim kodlarım ve yine olaya hükmederim. Bu ilkemdende vazgeçmem. Eğer ben bunları yapabiliyorsam yapılabilinir demektir.

Ama sanırım ortak nokta ASM bilsinler C kullansınlar.

Eğer Intel bizim derleyicimiz GCC ve Microsoft ile kıyaslandığında şu konularda 1.2x, 1.3x, 1.5x kat daha performanslıdır diyorsa derleyiciler arasında ciddi fark var demektir.
@gerbay 'ın belirttiği gibi güvenlik için Ti 'ın safety MCU'larını tercih edip "GNU dan vazgeçmem/ARM Compiler 6 en yenisi, kullanmalıyım." derseniz topal safety oluyor. Çünkü güvenlik sertifikasına sahip olan ARM Compiler 5 (kaynak ARM website).
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: RaMu - 10 Eylül 2016, 21:16:31
@gerbay hocamın yazdığı mesajları benden başka okuyan yok anlaşılan,
hatta kendi dahi okumuyor,
daha önce söylemek istemedim ama aynı hatalı mesaj tekrarlandığı için belirteyim:

Alıntı yapılan: gerbay - 10 Eylül 2016, 11:33:26
...

Senin kafadaki insanlar öyle başına buyruk iş yaptığı için radyoterapi cihazı basmış insanlara radyasyonu, kimini yakmış, kimini öldürmüş..  Therac-25 i yazdık konuya.. 
...
şuna bir göz at istersen ( An investigation of the Therac-25 Accidents );

http://www.cs.umd.edu/class/spring2003/cmsc838p/Misc/therac.pdf (http://www.cs.umd.edu/class/spring2003/cmsc838p/Misc/therac.pdf)

özellikle 3. sayfada "Therac-25 software development and design" kısmını mutlaka okuyun.. 

(https://s9.postimg.cc/tprsjdk8v/Untitled4.png)

Verdiğiniz bu fotoda ve daha önceki linkdede
daha önceki modelin yanlışlıkla verilebilecek yüksek dozu önlemek için
DONANIMSAL bir geri besleme ve interlok sisteminin olduğu,
yeni modelde daha ucuza gelsin diye bu sistemin çıkarıldığı,
nede olsa bu işi yazılım halleder kafasıyla düşünüldüğü
yazmışlar.
Yani ASM ile bir ilgisi yok delikli kartlada yazsaydı,
kabloya ferit nüve dizerekte (Whirlwind, magnetic core memory) yapsaydı,
C ilede yazsaydı değişen bir şey olmayacaktı.

Şuan benim çalıştığım iştede aynı durum geçerli,
bizde donanımsal interlok kullanıyoruz,
ve bu interloğa harici müdahale edilip edilmediğinede kontrol ediyoruz,
sistemden verdiğimiz çıkışların geri beslemesi var, verdiğimiz sinyalin ne yaptığını gözlemliyoruz,
yazılımda aldığımız önlemler kadar donanımdada önlem var,
sistemin bir kartından diğerine giden çıkışlarda
kritik noktalarda sinyalin kendi ve terside gidiyor,
dahada önlemler var ...
Şirkette 80 civarı çalışan, 2 tanede biri ben,
yazılım ve elektronik kısmı tasarlayan, prototipini üreten test eden, seri üretimi yöneten var.
Belki 800 tane işletmecide bizim ürünlerimizi alıp,
5-20 civarı çalışanı ile işlerini yürütüyorlar.

Şimdi size yazmak zor geliyor,
bana asm ile şuan hatasız yapabildiğim işi,
ASM yi kenara bırak,
şunla yap derken ne kadar ciddi olduğunuzu görmek,
benim ne kadar işime yarayacağını gösterebilmenizi istiyorum.
Yanlış bir şey mi istiyorum,
sizin görüşünüzün tersi bir şey söylendiğinde,
yazdıklarınız kabullenilmediğinde hemen küstüm küstüm diyorsunuz,
hatalıda bilgisizde biz oluyoruz,
biz anlamıyorsak, siz anlatamıyorsanız, bir şeyde biliyorsanız yazın faydalanalım,
gereksiz naz yapmayın hocam, yazın lütfen,
biz sizi zorluyoruz, sizde bizi zorlayın, dahada değerli bilgiler çıksın ortaya, herkes faydalansın, feyz alsın.

Alıntı yapılan: gerbay - 10 Eylül 2016, 14:25:32
Tüm bu standartlar, kurallar vs. bizim motor döndürmemizden haz etmeyen, bizi istemeyen batılıların uydurmaları.

Şaka bi yana, @tmcone hocam klavyene sağlık



Sizden de @tmcone tadında mesajlar bekliyorum aslında hocam,
daha önce sordum,
bu anlattığınız standartlar nerelerde zorunlu,
ben bunu bilirsem kimlerin önüne geçerim,
nerelere yükselir ne gibi işler yapabilirim,
ben ve benden dahada genç olan,
veya halen üniversitelerde okumakta olan arkadaşlar için
anlatın, sizin deyiminizle bilginizin zekatını verin.



Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: engerex - 10 Eylül 2016, 22:04:57
@RaMu

Alıntı yapılan: gerbay - 09 Eylül 2016, 00:52:27
...........
haa söylemeyi unuttum, adamlar benim copy/paste mühendislik hatası dediğim hatayı yapmışlar... eski cihazların kodundan kopyaladıkları kısımlar patlatmış aleti.. bu da hepimize ders olsun.. kopya yok!
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: RaMu - 10 Eylül 2016, 22:15:32
Dahada önceki mesajımda,
gördüğüm tezatları dahi yazmadım dedim,
şimdi bu tezat değilde ne,
hatanın kodun yazıldığı dil ile bir alakası yok,
zaten kopyaya daha müsait olan C dir,
bunları söylemeyeyim ortalık boş yere karışmasın diyordum.
Sidik yarıştırmanın alemi yok,
şu, şu işe yarar, buda örneği, ben kullanıyorum, şu kullanıyor, şöyle isteniyor bu oluyor... diyebiliyorsanız yazın öğrenelim.
Bizim işte CE belgesi isteniyor, EMI/EMC testi yapılıyor, bizde yazılım donanım olarak bunlardan geçebiliyoruz,
ASM mi yazdınız diye sormuyorlar,
nerede ne işimize yarayacak, bize ne katacak, size ne kattı onu soruyorum.
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: z - 10 Eylül 2016, 23:46:07
?
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: yamak - 10 Eylül 2016, 23:48:27
Asm nin C ye karsi ustunlugunu savunan arkadaslari anlamiyorum gercekten. Hic mi ihale usulu bi proje yapmadiniz. Hic mi zaman probleminiz yoktu.  Tum library leri falan ASM de yazacak kadar zamaniniz oluyor mu?

Ethernet, Usb ya da bilimum IOT protokollerini ASM ile nasil implement ediyosunuz.

Yani ASM ogrenmeye karai degilim ama ASM ile proje gelistirmek amelelik gibi geliyor.(Eger hobi amacli bi proje degilse).
ASM ile proje gelistirmek bi cok nimettem mahrum kalmak demektir(Rtos, iot stackleri, gui libraryleri ...)
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: RaMu - 11 Eylül 2016, 01:13:02
Alıntı yapılan: gerbay - 10 Eylül 2016, 22:27:03
evet hocam bir sen okumuşsun sen de yanlış okumuşsun..

"
The software was written in assembly language that might require more attention for testing and good design. However the choice of language by itself is not listed as a primary cause in the report. The machine also used its own operating system.
"
hocam bak görüyorsun assembly ile yazıldığını. Tamam vatandaş seçilen dilin hatada birincil sebep olmadığını söylüyor ama ilk cümlede tam sana söylediği bir tavsiye var..

ASM dilinde "software" yazmak çok dikkatli dizaynı ve çok dikkatli test etmeyi gerektirir diyor.


Hocam çeviriniz hatalı demek istemediğim için yazmadım,
Kod ASM dili ile yazılmış ki (bu dilde yazılmış olan kod)  test ve iyi bir dizayn için dahada dikkat gerektirebilir.
that might require more
kısmını
that requires more
şeklinde yazsaydı, dediğinizi söylemek istemiş olabilirdi,
hatta deseydi bile,
ben demiyorum dadaloğlu derki.. gibi yani bana inanmıyorsunuz, şunu yazanlara inanın, diyormuşsunuz gibi oluyor.

Neyse bunlar dert değil,
zaten aynı şeyleri söylüyoruz,
kimse demese dahi
asm de yazmak C deki gibi sadece işe odaklanmanın yanı sıra
birde misal en basit a>b mi diye sormak için dahi kullanılacak komutu doğru anlayıp kullanmayı gerektirdiğinden
sırf bu nedenle bile, elbette hatalı program yazmaya daha müsait.

Benim anlatmaya çalıştığım,
ASM nin kullanım alanları ve avantajları,
belki olmazsa olmaz olduğu noktalar,
kullanmayacak olsan dahi ASM öğrenmenin faydaları.
Yani C yi çok çok iyi bilen ve kullanan birine ASM öğrenmesinin katkılarını vurguluyorum.
Hatta zararlarındanda açıkca bahsediyorum.
Benide yanlış anlıyorlar bir şey demiyorum,
işinizi ASM ile yapmayacak, ASM ile 1 satır kod yazmayacak olsanız dahi ASM öğrenmelisiniz diyorum,
sorun bana sağladığı faydalarından bahsedeyim.

Sizdende C ve bahsettiğiniz standartları, RTOS ile yazmayı vs. öğrenmenin
bana ne kazandıracağını
bunları Türkiyede kullanıp kullanamayacağımı,
switch(text) al sana .hex,
bana içinde ne ile yazılmış kodlar var sorulmayacak
C ile yazdım D ile yazdım çalışıyor,
yapıyorum satıyorum alıyorlar
diyemi düşünsem daha iyi olacağını,
tecrübe ettiklerinizle anlatıp
beni veya herkesi aydınlatmanızı istiyorum.

10 sene kadar önce Armerkom u gezdiğimizde
başımızda yönetici kademesindeki kişi değişiyor,
yeni gelen kişi 3 senedir emek verdiğimiz projeyi rafa kaldırıyor,
bu kadar emek kenara itiliyor, diyenleri hatırlıyorum,
sizde işi yaparken sırf bunu bunu istiyorlar diyemi öğrenip o standartları uygulamak zorunda kalıyorsunuz
bunun şüphesini duymuyorda değilim.

Türkiyede uygulanan öyle standartlar varki,
bu arada a dan z ye asansör üretiyoruz,
asansör kabin kapısı yanmaz testi var, testten geçmiş malzeme olmak zorunda,
diğer tarafta asansörün içi sunta dekorasyon dolu ve bu hiç problem değil,
her kattaki kapı plastik türevi ve buda hiç problem değil,
standart dediğinizde standartın geçerliliği söz konusu.

ASM ile hatasız yapabildiğim dediğim,
işin geneli için, yani daha sonra bahsettiğim donanımsal önlemlerle beraber,
şu ana kadar kimseye zarar vermeden işimizi yapmış bulunuyoruz,
diğer tarafta adam öldürmüş olanlarda var,
yazılım kısmında aslında Therac-25 de belirtilen, hataya sebebiyet verebilir denen kısımlardan birine benzer olarak
aşırı derecede özgüven var, yazarım ve hatasız çalışır diyorum, çalıştırıyorum,
Yani bir şeyi kullanacaksam en iyi derecede öğrenmeden kullanamıyorum,
vicdanıma sığmıyor, standartlar vs. olmasada herkesin standardı kendi vicdanıdır.


Sorduklarımın cevabı eğer
yazmakla anlatılacak şeyler değil uzun iş vakit yok diyorsan hocam,
bir gün denkleştirir gelirim yanına,
anlatırsan bana bende güzel bir döküman haline getiririm yayınlarız.
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: z - 11 Eylül 2016, 11:25:07
@RaMu

Alıntı Yapbirde misal en basit a>b mi diye sormak için dahi kullanılacak komutu doğru anlayıp kullanmayı gerektirdiğinden
sırf bu nedenle bile, elbette hatalı program yazmaya daha müsait.

Kod yaza yaza artık a>b için hangi asm komutları kullansak diye düşünmüyoruz ki. Daha beyin devreye girmeden parmaklar bunu yazıyor zaten. Fakat tabiki bazen hata yapıyoruz. Konuşurken baba demek istediğimizde şimdi b harfini seslendireceğim sonra a sonra b sonra a söyleyeceğim diye düşünüyormuyuz düşünmüyoruz. Kod yaza yaza kendimiz CPU gibi oluyoruz. O CPUnun diline aşina oluyoruz.

Hani C çok güzel kod üretiyor falan deniyor ya. Alakası yok. İş gören ve kısa kodlar üretiyor bunda hemfikirim. Fakat C ile yazılmış ve optimize ayarları yapılmış 10..20 satırlık bir C kodunun asm çıktısını al kesinlikle üzerinde elle optimize yapılarak daha etkin hale getirilebiliyor. Kalıbımı basarım. Hadi len diyenin alnını karışlarım.

C ile yazılan büyük projelerde kimse bunları dert etmiyor etmesine de gerek yok. 20 satır kod arasında bir iki fazla kodun kime zararı olur.

Fakat çok kısa kod parçalarında özellikle de hızlı çalışmasını arzuladığım kod parçalarında C'nin ürettiği bu kötü pis kokan kodlar beni çok rahatsız ediyor. Olay bu.

Millet zamana, hatasız kod yazmaya odaklanmış. Bizlerin öyle sıkıntıları yokki. Biz bulmaca çözüyoruz.

Başlıktaki "Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır" ibaresi haklı olarak da bizleri uyuz ediyor.

Yok abi olurmu? Güzel ASM kodlama, peşpeşe yazılacak iki makine komutunun ahengini yakalama üzerine kurulur. ASM kodlama zaten sürekli efektif algoritma yazmak demektir.

Mesajlarımızda pipeline conflict durumlarından bahsettik bunlarla karşılaşmamaya dikkat eyttiğimizi söyledik. 9 satırlık kodu 8 satıra indirip daha hızlı çalışmasını sağladık. Demekki işlemci ile iyi anlaşma yoluna gidiyoruz.

Ama olay dönüp dolaşıp asm ile yazılan kodda hata yapma riski fazladır, kodlar anlaşılmazdır, hata ayıklamak zordur gibi bilindik durumlara geliniyor ve bunlar ısıtılıp ısıtılıp önümüze sürülüyor.

Gülü seven dikenine katlanacak tabiki.

Biz asmnin dikeni yok demiyoruz ki. Dedik mi?

--------------

Senin yerinde olsam asansör projesinde asla asm kullanmazdım.

C asmden çok daha kolaydır.  Sen asm kodlamayı zevk için yap. Koduğumun kodlarını C ile yaz.

ASM'yi ana işlemciye yardımcı işlemcilerde kullanabilirsin. Glue lojik işlerinde asm kodlama çok yakışır.

Masela ana işlemciye bağlı ve görevi sadece motorun hızını denetlemek olan ikinci bir işlemci için asm güzel bir seçimdir. Fakat istiyorsan onu da C ile yaz. Milletin gönlü razı olsun.
Ya da yardımcı için hiç işlemci kullanma bırak lojik devre yapsın işi.

mesaj birleştirme:: 11 Eylül 2016, 12:23:37

Bu arada böyle demiştim.

Alıntı yapılan: z - 11 Eylül 2016, 11:25:07
C ile yazılan büyük projelerde kimse bunları dert etmiyor etmesine de gerek yok. 20 satır kod arasında bir iki fazla kodun kime zararı olur.

Sanmayın ki asm kodlamada sürekli kısa kod ya da sürekli hız peşinde koşuyor hep optimize kodlar yazıyoruz.

Projenin durumuna göre komuşum koduna diyip paldır küldür asm kod yazmıyor da değiliz. Tabiki böyle yazdığımız kodlar C ile üretilmiş kodların yanında çok daha kötü görünebilir.
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: berat23 - 11 Eylül 2016, 13:14:57
@z

hocam bir örnek verebilir misiniz bu kısa ve hızlı çalışması gereken kodlara?
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: z - 11 Eylül 2016, 14:26:34
Servo loop süresini ne kadar düşürürsen o kadar artan band genişliği ugulamaları.

Ana dönü içindeki servo loopların sayısını artırarak tek çiple birden fazla sistemin kontrolu.

Bir lojik devrenin eşdeğerinin yazılımla yapılmasına yarayan uygulamalar.

Çip emülasyonları.

Gördüğün gibi hep elektronik uygulamaları.
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: berat23 - 11 Eylül 2016, 14:59:34
bir uçağın uçuş kontrol bilgisayarı da o işleri yapıyor, hatta mach hızlarda giden füze de de o döngülerin babası var. bu uygulamalarda da c/c++ hatta model tabanlı kod üreten tool'lar kullanılıyor.
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: z - 11 Eylül 2016, 15:04:35
Acaba STM32F103 gibi işlemcilerlemi yapıyorlar yoksa PC işlemcileri gibi güçlü işlemcilerle mi?

Acaba 20K ram ve 64K romla mı yapıyor?

Ayrıca, süper sonik hızda hareket eden bir sistemin servo döngü süreleri kaç mikrosaniye olabilir ki?

-------------------------------------------------------

http://www.cpushack.com/space-craft-cpu.html (http://www.cpushack.com/space-craft-cpu.html)

https://en.wikipedia.org/wiki/Instructions_per_second (https://en.wikipedia.org/wiki/Instructions_per_second)
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: berat23 - 11 Eylül 2016, 15:28:54
öyle dandik işlemcilerle uçan uçaklar da var, geneli elbette güçlü işlemciler, powerpc mesela.

32f103 olmasa da ti c2000 dsp'leri kullanan "yerli" mühimmatlar var, biliyorum. gerçi bu mühimmatlar süpersonik değil.

süpersonik bir sistemle muhatap olmuş değilim, bilmiyorum ama transonic bir sistemde 1ms olabiliyor.
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: z - 11 Eylül 2016, 15:39:54
Tamam işte 1ms bir döngü süresine sahip servo işlemler yanında anormal kontroller bile yapılabilir C de kulanılır C++ da başkası da.

Tartışmayı bu yöne kaydırırsak gene asıl konudan uzaklaşırız.

Uçuş kontrol sistemlerini, kontrol teoriyi ve en baba işlemcilerin komutlarını inciğini boncuğunu ve C/C++ yi de çok iyi biliyor olsaydım ben de bu uygulamarı C/C++ ile yazardım. ASM'nin yanına bile yaklaşmazdım.

Ama asm yavaştır carttır curttur demezdim.


mesaj birleştirme:: 11 Eylül 2016, 15:45:08

Ayrıca,

Sanmıyorum ki bir uçakta kontrol edilebilen tüm servo düzeneklerin döngüleri merkezde dönderilsin. Her birinin kendi denetleyicisi olması lazım. Hani bir çipin içine servo loopları dolduralım hepsini kontrol etsin olayı da yoktur.

Dolayısı ile uçuş kontrol sistemleri aşağıda verdiğim örneklere bence pek dahil edilemez.

İllede bir örnek vermek gerekirse bir zamanlar SID çipinin STM32F103C8 ile simülasyonunu asm kodlayarak yapmıştım.

Aynı projeyi başka işlemcilerle C ile kodlayarak yapanlar da var. Youtube'da videolarını görebilirsiniz.

Bir C ile yapılanı bir de asm ile yapılanı masaya koyup üretilen tondaki jittere bakmak iki dili mukayese etme açısından kriter olabilir.
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: berat23 - 11 Eylül 2016, 15:57:38
Alıntı yapılan: z - 11 Eylül 2016, 15:39:54
Tamam işte 1ms bir döngü süresine sahip servo işlemler yanında anormal kontroller bile yapılabilir C de kulanılır C++ da başkası da.

Tartışmayı bu yöne kaydırırsak gene asıl konudan uzaklaşırız.

Uçuş kontrol sistemlerini, kontrol teoriyi ve en baba işlemcilerin komutlarını inciğini boncuğunu ve C/C++ yi de çok iyi biliyor olsaydım ben de bu uygulamarı C/C++ ile yazardım. ASM'nin yanına bile yaklaşmazdım.

Ama asm yavaştır carttır curttur demezdim.


mesaj birleştirme:: 11 Eylül 2016, 15:45:08

Ayrıca,

Sanmıyorum ki bir uçakta kontrol edilebilen tüm servo düzeneklerin döngüleri merkezde dönderilsin. Her birinin kendi denetleyicisi olması lazım. Hani bir çipin içine servo loopları dolduralım hepsini kontrol etsin olayı da yoktur.

Dolayısı ile uçuş kontrol sistemleri aşağıda verdiğim örneklere bence pek dahil edilemez.

İllede bir örnek vermek gerekirse bir zamanlar SID çipinin STM32F103C8 ile simülasyonunu asm kodlayarak yapmıştım.

Aynı projeyi başka işlemcilerle C ile kodlayarak yapanlar da var. Youtube'da videolarını görebilirsiniz.

Bir C ile yapılanı bir de asm ile yapılanı masaya koyup üretilen tondaki jittere bakmak iki dili mukayese etme açısından kriter olabilir.

asm yavaştır carttır curttur diyen yok zaten, ben demiyorum en azından. diyorum ki elde edeceğiniz hız avantajına karşılık verdikleriniz çok çok fazla. bu sebeple dar bir alan haricinde kullanımına gerek yok. yani 100 instr. yerine 110 harcarım kafam rahat olur.

uçakta kontrol derken servo-yüzey değil, o yüzeylere giden sinyallerden bahsediyorum ki o döngüler tek bir yerde koşar. hatta ne uçaklar var ki neleri tek bir kartta yapıyor! o bahsettiğim mühimmatta servo vs. tüm kontroller gariban c2000de yapılıyor, asm ile yazılmamış.
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: z - 11 Eylül 2016, 16:05:31
Tamam sende haklısın ama benim şu jitter meselesi de kafanda bir köşede kalsın.

İşlemcinin interrupt latency değeri düşük olsun isteriz. Bu değeri, C yazanlar da düşük olsun ister biz asm yazanlarda. Halbuki topu topu 10 clk civarında. Yani 10 komut civarında.

Demekki C yazanlar için de 10 komut önemli olabiliyor. İşte demek istediğim de bu.  Biz kafaya taktıkmı  10 komutu kaldırıp atabiliyoruz. Siz de fazlalıkları inline asm ile tıraşlayabiliyorsunuz.

Jitter mitter işte bunlarla alakalı.

Proje yapacakların bunlarla işi olmaz.

Zaten çoğu meraksız adam. Salla gitsin.
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: z - 11 Eylül 2016, 20:58:12
Haklısın hocam.

Çok karmaşık cpularda kafam karışır.  Senin öngördüğün şekilde, işlemcinin karmaşık kodlarını görmezden gelip basit şekilde basit kodlar yazarım.

Yazılımla üretilen sinyallerde de jitter den bahsetmem de çok abes olmuş.

Loop unrollingden bahsetmişsin.

ARM öğreniyoruz başlığında yazılımla CRTC uygulaması yapmıştık. Orda pixelleri üreten koda da bir bak. Bir satırın pixellerini nasıl bir döngüde üretmişiz?

Pixel üretiminde jitter belasından nasıl kaçmışız?

Aynı kodu bir de sen C ile yazmayı dene.
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: tekosis - 11 Eylül 2016, 21:33:04
yazılanların %9x lik kısmını anlamıyorum ama olsun elinize sağlık. verdiğiniz bilgiler bu yolda ilerlemek isteyenler için çok önemli.
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: z - 11 Eylül 2016, 21:50:41
Yok hocam ben basit işlerin adamıyım boyumu aşan işlere girmem. Eğer beni anlamak istiyorsan sana önerim profesyonel iş hayatındaki yazılımlardan biraz uzaklaş ve
aşağıdakine benzer, hız gerektiren, bir takım şeylere senkronlamalar isteyen basit bir projeyi hoby olarak C diliyle evde yapmayı dene.

Neden asm diye tutturduğumu, neden bilgisayar mühendisleri ile elektronikçileri farklı kafalarda olduklarını için ayrıştırdığımı daha iyi anlayacaksın.

Bu projeyi Atmel, PIC vs 8 bit mikrolarla değil de  ARM CM3 ile yapmayı dene. Dene ki, Pipeline mekanizması ve bus switch işleri karmaşıklaştırsın. Veri yolu, CPU ve DMA kullanılırken paylaşılmak zorunda kalsın senin senkronlamalar da biraz sarpa sarsın.

! No longer available (http://www.youtube.com/watch?v=1KKDq4mx1EE#)

Bak bu da bir yazılım işi. C ile bir yaz sonra beni daha iyi anlayacaksın.

Yok video frekansında C sorun çıkartır dersen bunu dene. Ama CM3 ile olsun.

https://www.youtube.com/watch?v=C2e8UYhcia8 (https://www.youtube.com/watch?v=C2e8UYhcia8)


mesaj birleştirme:: 11 Eylül 2016, 21:58:56

Alıntı yapılan: gerbay - 11 Eylül 2016, 21:35:28
hocam gerçek bir projede kim bu şeklde bir iş yapıyor?

Tamam işte  C ile daha iyisini yap.
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: z - 11 Eylül 2016, 22:34:58
Her iki proje de CM7 ile daha kolay yapılır. ASM ile yapılacaksa tek cycleda birden fazla komut vs işleteceksek ilave komutlar üzerine birazcık pratik yapmak gerekecek.

Neden CM3 de neden Atmel değil?  (Parallax başka bir şey o ayrı bir sınıf tam bu işlerin adamı)

Atmelde xtal clk ile (yada timer sayımı ile) porttan çıkan sinyaller her zaman uyumlu. CM3 de aynı uyumdan bahsedemiyoruz. Pipeline giren komutlara göre, DMA/CPU bus kullanma oranına göre portlardan üreteceğimiz sinyallerin referans bir sinyale göre zamanlaması kayıyor (Mesela timerlara göre). Sen C++ vs kulanırken bunlara kafa yormak zorunda kalıyormusun? Hiç sanmıyorum. Bunlar tamamen elektronik sorunlar. Ama bu sorunlar etkisini, ekranda  uçuşan noktalar yada titreyen harfler olarak gösteriyor.

Ayrıca neden mi Atmel değil?   C güçlüdür işlemci ayırt etmez. Optimizasyon çentiklerini tıkla ve başla kodlamaya.

İstersen CM3 le değil de CM7 ile yap farketmez.  En süper C derleyicisini de kullanabilirsin. CM7 ile video çalışması yap mesela.

Eğer bu projeyi yaparsan herşeyin C yada C++ olmadığına belki ikna olursun.

Bir çipi bir başka çiple emüle etmenin nesi kötü. Sapına kadar elektronik + yazılım işi.

Keza işlemcisi tarih olmuş ve arızalanmış bir cihazın source kodu yoksa fakat firmware çipleri varsa bu cihazdaki işlemciyi emüle eden tüm bus timingleri bire bir uyumlu bir CM3 projesi de yapılabilir. İşte bu işlere girersen belki beni anlarsın.

Bu arada yazılarımla asm empoze ediyormuyum? Gerbay öyle iddia ediyor.

Dikkat edersen bu projelerde os yada derleyici yapmıyoruz. Hepsi zamanlaması kritik elektronik tipi işler. Bu işlerde asm bana göre çok çok avantajlı. Öyle böyle değil çok avantajlı.

Haa 2..3 katı hızda işlemci kullanıp C ile de yapabilirsin.

-----------

Bu gibi örneklerden dolayı herkesin karşılaştığı problemler farklı ben bu problemlerin çözümü için asm tercih ediyorum. Bu tip projelerin de dışına pek çıkmıyorum.

Kısaca motor döndürme projeleri diyorsun. (Elektronik ağırlıklı proje)
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: Yuunus - 11 Eylül 2016, 23:42:22
Gerbay hocam bence tam tersi bir durum soz konusu Sırf: ASM kullanıcılarını C'ye alıştırma turları yada BASIC kullanıcılarını C'ye alıştırma turları diye baslıklar var. Hatta bir ara Z hocaya keske Arm-asm konusunda bir baslik yapsa demistim ama yapmadi, bence konuyu kirici bir noktaya getirmeyin zira ikinizde degerli insanlarsiniz. Z hoca Asm ye gonul vermis hicbir seyin bunu degistirecegini sanmiyorum, ayrica birisi onerdi diye de kimse bir dili kullanmiyor. 98 li yillarda asm olmazsa olmaz olarak gorulurken simdi kimse asm nin adini bile anmiyor...Z hoca; birakin onermeyi ustune para verse adam oturup Asm de kod yazmaz gonulluler baska, nereye baksam hep goruyorum aurdino uno, adamlar bunun icin birkac sensor de hazirlamislar kutuphaneler de hazir yaz diyorsun yaziyor oku diyorsun okuyor; Gerbay hocam bence zaten gelisim sizin istediginiz dogrultuda ilerliyor, ama sunuda belirteyim 10 senedir C ile  kod yazdigini iddia eden adam pinden neden sinyali yavas okuyorum diye acip read fonksiyonunun arkada ne halt yedigine bakmaya dahi tenezzul etmiyor. Zaten yaptigi isten para kazanacak seviyeye gelen adam da neyi kullanacagina kendisi karar verebilir. Buradan da C kotudur anlami cikmasin, ama ne C ne Asm nede .Net yuzeysel gecistirildikten sonra hepsi ayni kapiya cikar sadece asm sizi daha cok zorlar.
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: muhittin_kaplan - 12 Eylül 2016, 01:01:58
Z nin  asm konusunda yonlendirici oldugunu dusunmuyorum. Hatta yukarda bahsedilen basic den c ye gecislerin olmasi icin bile cabasi yadsinamaz. Ayni sey pic den arm a gecis icinde soylenebilir. Ve eminim ki bunlari yazmamiza da ihtiyaci yoktur.
Keske birileride c bilenlere c++ turlari dese
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: z - 12 Eylül 2016, 09:23:22
Hocam elbetteki örneklerini verdiğim tipteki zamanlaması kritik projeleri FPGA ya da CPLD ile doğrudan hard olarak çözmek en makbulü.

Fakat işlemciler çok çok ucuz hem yakında bizim sıradan mcular bile superscale mimari ile üretilecekmiş.
Zamanda kritik işlerin üstesinden çok daha kolay gelebileceğiz.

İlerleyen teknoloji sayesinde kitleler tembelliğe yöneliyor fakat buna rağmen tembel insanların işleri daha çabuk ve daha düzgün yapması sağlanıyor.
Fakat bunun için birileri inanılmaz çalışıyor inanılmaz detaylarla uğraşıyor. Sonuçta asıl ilerleyenler teknolojiyi kullananlar değil üretenler oluyor.

Bana göre çok çok anlamsız önerilerden bazıları:

ASM ile derinlere dalma asıl işine odaklan C kullan.
Lojik devre tasarlayacağım diye saçını başını yolma VHDL kullan tüm herşey zaten hazır sen sadece birleştir amaca yönel.
Integralle falan uğraşma Matlab var.
Resim işleme rutinlerini adamlardan daha mi iyi yazacaksın al kütüphaneyi kullan.
Bu zamanda sıfırdan motor niye üretesin bak xx firması ucuz motor üretiyor şu şu firmalar motoru doğrudan satın alıp araba üretiyor.

Kardeşim ben damar işleri seviyorum. İncik boncuk benim hoşuma gidiyor. Zaman benim, kafası yorulan benim sana ne?

OS yazalım demiyorsun ama ASM artık sadece os yazarken yada kritik işlerin sadece çok küçük bir yüzdesinde kullanılıyor diyorsun. Ben de işte baştan aşağı zamanlaması kritik işler için kod yazıyorum. Örnekler veriyorum fakat örneklerimi beğenmiyorsun.  İlla bu örnekleri referans alman şart değil. Zamanlaması kritik işler işte.

Dikkat edersen öyle bir asm antipatin var ki problemlere yaklaşımda hız açısından yavaştan hızlıya doğru sıralanan C, asm, lojik üçlüsünde asm hiç yokmuş gibi davranılıp C'den derhal VHDL, CPLD gibi lojik çözümlerine atlıyorsun. ASM çözümü kasaplık olarak niteliyorsun.

Siz bir an önce C, C++ derleyicilerle güzel işler yapmaya bakın.  ASMyi bırakın edebiyatlarıyla uğraşmayın, dünyaya ürün satmaya bakın. C derleyici icad edileli çook zaman oldu ama hala Türkiye'den tık yok.
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: z - 12 Eylül 2016, 14:20:27
Son olarak kısmen Gerbay'ı desteklemek adına şunları ekleyip bu başlıktan çıkacağım.

İşlemciler güçlendikçe ASM yazım kolaylaşır.

Örneğin çok alt seviyedeki bir işlemcide işaretsiz sayılarla ilgilenirken A>B mi diye bakmak istersek  bir komutla A-B işlemini yapar ardından Cary flağına bakarız.  Daha sonra da Carynin set olup olmama bu durumuna göre bir başka adrese jump ederiz. Sadece A>B testi 3 asm kodunu peşpeşe yazmayı gerektirir.

Biraz daha iyi işlemcide CMP A,B komutu ardından  JGT/BGT (Branch/Jump Greater Than) şartlı dallanma komutu ile bir adrese zıplarız. Şimdi ise 2 asm komutu yeterli olmakta.

Daha daha gelişmiş bir işlemcide ise CMP A,B komutu ardından doğrudan yapmak istediğimiz işlemi şarta bağlı olarak yerine getiren bir komuttan seçeriz. Bu durumda ise sadece 1 asm komutu yeterli olmakta.

Örneğin if (A>B) A=0; gibi bir C komutunu  R0,R1 registerleri ile yaparken

CMP     R0,R1
MOVGT R0,#0

Dememiz yeterli olur. Gördüğünüz gibi işlemci yetenekleştikçe asm yazım gitgide kolaylaşıyor. Hele hele işlemcilerin artan bit uzunluklarından dolayı ilkel işlemcilerde upuzun kod satırlarıyla yapılan matematik işlemler şimdilerde tek bir komutla bitiyor.

Fakat optimize kod yazma işin içine girince işler biraz çetrefilleşiyor.

Zira şu anda yazdığımız komut, biraz sonra yazacağımız bir kaç komutun ne kadar zamanda işletileceği üzerinde belirleyici oluyor.
Hatta sistemi iyice yavaşlatacak "Pipeline buffer"a girmiş komutların iptaline neden olacak durumlardan da sakınmak gerekiyor.

Yani kafanda 40 tilki dolaştıracaksın ve 40nın kuyruğu birbirine dokunmayacak durumları oluyor.

Eğer satranç oyununda sadece o anki hamleyi düşünürseniz yenilirsiniz. Fakat usta oyuncular gibi bir kaç hamle ilerisini düşünürseniz kazanabilirsiniz.

Evet mimariler geliştikçe asm yazım kolaylaşırken optimize kod yazmak zorlaşıyor.

Fakat bu durumdan dolayı pes etmiyoruz. Eğer bu işi gerçekten seviyorsak o işlemci üzerine uzmanlaşmaya çalışıyoruz.

Raspberry gibi kartların tartışıldığı forum sitelerinde işlemciye asm kod yazma ile ilgili ana bölümler açıldığını ve bu başlıkların altında açılmış konulara  ilgi olduğunu görebiliyoruz.

Demekki asm yazım işleri gelecekte de daha devam edecek. En azından birileri ilgilenmeye devam edecek.

Ancak ne bugün ne de gelecekte kritik zamanlı işlemler yoksa ticari projelere asm ile yazmak üzere girişecek deli çıkacağını düşünmüyorum.

Ticaretle uğraşmadığım için çok karmaşık zahmetli kodları hobby olarak yazarım. Haa yaptığım hobby çalışmaları müşteri bulursa da satarım. (Umarım aradaki farkı görebilirsiniz)
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: DEno_12 - 16 Eylül 2016, 12:53:08
@z hocam hiç birileriyle beraber kod yazdınız mı?
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: z - 16 Eylül 2016, 13:21:57
Ortak proje yapmadım fakat kullanmaları için kapalı kütüphaneler yazdım.
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: tunayk - 16 Eylül 2016, 17:01:03

(https://s14.postimg.cc/3kkkj9pgt/sketch_1473929694511.png) (https://postimg.cc/image/3kkkj9pgt/)
"Real programmers code in binary"

Saygılar
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: mufitsozen - 16 Eylül 2016, 17:33:33
Alıntı yapılan: gerbay - 16 Eylül 2016, 17:06:46
şu da eski bir sınav sorusu;

koddaki hatayı bulup düzeltiniz;

(http://punchcardreader.com/images/punch_card.75dpi.rgb.gif)

Hocam ben bunun cevabini biliyorum, kopya cekebilirmiyim?

(http://www.columbia.edu/cu/computinghistory/029-card.jpg)

Yanliz benim evde PDP-8 var, ben cevabi orda yapsam olurmu?

(http://q7.neurotica.com/Oldtech/Media/PaperTape-3L.jpg)

Hey gidi gunler hey, ODTUde IBM-29 Punch kard makinalari ile IBM 360/40 bilgisayari icin FORTRAN IV dersinde ilk odevimi 1974 yili subat ayinda vermistim, (4 saat sonrada gelip, ciktisini almistim :) )

PDP-8 Elektrik/Elektronik bolumunde vardi,onunla da 1976 senesinde Computer organization dersinde hasir nesir olmustum. 1977 yilinda da Digital Control Systems dersini almak yerine proje alip  IBM 370/145 OS/VS2 isletim sisteminde PL/I ile PDP-8, Motorola 6502(8 bit) , TI TMS9900(16-bit) vede Intel 8088(16-Bit) icin cross-assembler, linker ve locator yazmistim, hey gidi gunler hey.

Cok yasa @gerbay, eski, guzel gunleri hatirladim netekim :)
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: MC_Skywalker - 16 Eylül 2016, 17:40:09
PDP-8 program kartı :) staj yaptığım yerdeki makinalarda vardı. Yanlız bizim makinalarda ki şerit siyahtı
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: z - 16 Eylül 2016, 18:01:49
@mufitsozen

Hocam sen üniversitede delikli kartlarla haşır neşir olmuşsun biz bu kartlarla daha ilk okuldayken oynardık.

Çocukluğumuzda mukavva kutuları taşımak için bir aparat olurdu.  Bu aparat bir kartonun rulo şeklinde sarılması ile oluşturulan boru ve borunun içinden geçen telin borudan taşan iki ucunun kanca gibi bükülmesiyle oluşturulurdu.

Ağır mukavva kutular iple bağlandıktan sonra bu bahsettiğim aparatın kancaları kutunun iplerine geçirilir ve karton boru avuç içi ile tutulurdu. Böylece ipler elinizi kesmez kutu da rahatça taşınırdı.

Bu aparatı söküp karton boruyu açtığımızda üstünde bir sürü dörtken delikleri olan küçük kartonlardan 4..5 tane çıkardı. Üzerinde rakamlar vs yazardı.

O zamanlar bu kartonların üstündeki deliklerin sırrını çok merak ederdim fakat kime sorsam bilmezdi.

Hatırlayan varmı bu koli tutacağını?

Googleda aradım bulamadım ben de çizdim. Hemen hemen aşağıdaki gibiydi.

(http://i.hizliresim.com/LQDNZz.png) (http://hizliresim.com/LQDNZz)

Belkide müfitsözen hocamın fortran ödevleri bize oyuncak olmuştu.
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: mufitsozen - 16 Eylül 2016, 18:34:44
Punch Card ile yazdigimiz (deldigimiz) kaynak programlar, object programlar, JCL kartlari, Datalar mukavva kutularda tasinirdi.

Resimde Configuration management altindaki kutuphane ve programlar ve datalar goruluyor.

(https://upload.wikimedia.org/wikipedia/commons/thumb/8/86/PunchCardDecks.agr.jpg/540px-PunchCardDecks.agr.jpg)


mesaj birleştirme:: 16 Eylül 2016, 18:38:40

1980 subatinda Amerikadan izinli geldigim sirada kardesime (o zamanlar zannederim lise 1de idi) NYda gorup, begenip aldigim Casip'nun Basic ile calisan bir handheld computer almistim. 15 gun tatilde basic ile programlamasini ogretmistim. Oda ondan sonra ODTU elektrik/elektronik filan Bilgisayarci oldu netekim. Adamin da hayatini kararttim maalesef  ;D

Yanlis hatirlamiyorsam basic ile programli alet suydu: (http://www.old-computers.com/museum/photos/Casio_PB100_System_s1.jpg)



mesaj birleştirme:: 16 Eylül 2016, 18:49:20

yada bu resimdeki pocket computermiydi acaba?

(http://pocket.free.fr/images/casio/pb-400.jpg)

mesaj birleştirme:: 16 Eylül 2016, 18:50:49

ikiside ayni aletmis, yas ilerleyince boyle madara olursun netekim, iki resim baska cihazlar icin diye dusunmustum. Madara olduk iyimi  ;D :P

mesaj birleştirme:: 16 Eylül 2016, 18:58:28

Alıntı yapılan: gerbay - 16 Eylül 2016, 18:22:41
aslında adamlar (ya da kadınlar) taa o zamandan lisans olayını çözmüşler. Orta büyüklükte bir yazılımın şöyle olduğunu düşünürsek;

(https://s21.postimg.cc/69azt7aiv/500003057_03_01.jpg)

şimdi bunu cracklemek ne kadar zaman alır de mi..

bir de bu yazılımı kopyalayıp kaçak kullanayım desen...

düşüncesi bile korkunç..



sevgili@gerbay seni uzmek istemem ama o zamanlar bircok program source ile beraber gelirdi ve IBM bedava verirdi.

Yani 384K RAM ve 2x 5MB diskli IBM 370/145 (turkiyenin en buyuk bilgisayari idi 1977 senesinde) 2 milyon dolar filandi (o zamanlar 1500 dolara orta halli simdiki Honda Accord gibi bir aile arabasi alinirdi) bugunun parasi ile 5-6 milyon usd oluyor. yazilimda bedava olurdu. gecmis zaman olurki...!
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: MC_Skywalker - 16 Eylül 2016, 23:22:23
@z hocam o tutacağı hatırlarım. Sirkeci, Eminönü mağazalarındaki alışverilerde paketlerin ipine takılmakta idi.
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: z - 17 Eylül 2016, 09:26:02
Tamam bazı mağazalar özellikle de kitapçılar vs kitapları vs paket yapar iple bağlar sonra da bu tutamacı ipe geçirirdi.

Büyük olasılıkla Türkiye'deki bilgisayarlardan tonlarca delikli kart hurdası çıkıyordu. Birileri de bu kartları satın alıp bu bahsettiğim aparatı yapıyordu.

Belki de Türk icadı bir aparattır.  Haa bu arada bazen bu aparat normal kartondan da olurdu. Bazıları ise delikli kart kartonunun dan. Ancak dağıtıp içini  açınca delikli mi deliksiz mi anlaşılırdı.

Sen hangi senelerden bahsediyorsun?

Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: t2 - 17 Eylül 2016, 09:40:23
89 -90 yılı olsa gerek. Arkadaş bilgisayar almıiştı. Sabit diski vardı. 2Mb   müthiş bir olay.
Sabit diskli bilgisayar olması çok önemli idi. çünkü genelde sistem disketi ile açıyorduk. 5.25"  disk.
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: MC_Skywalker - 17 Eylül 2016, 10:41:02
ben 85 sonrasından bahsediyorum. zira 90'a varmadan o karton taşıma apartları kalmamıştı. ama 91-93 yıllarında staj yaptığım fabrikada PDP-8 vardı bobin sarma makinlarında kullanıyordu. aynı makinların motor sürücülerin olduğu kabinde punch kartlı sistem yardı.
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: z - 17 Eylül 2016, 10:44:58
Yok ben 70 li yıllardan bahsediyorum. 80 lerde delikli kart sistemleri tükenmek üzeredir.
Gerçi bizim işyerinde 90ların ortalarına kadar delikli band kullanımda idi.
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: ipek - 17 Eylül 2016, 13:08:09
73 yılında tahtakeleden ucuz kitaplar alırdım,taşıyabilmem için ücretsiz bir tane bunlardan verirlerdi,evde içini açtım IBM yada NCR yazdığını hatırlıyorum,o devirde büyüklerime sorduğumda ise bunlar ya üniversite sınav sonuçları yada DDY istatistik bordrolarıydı,çöpe gitmesin değerledirilsin amacı güdülmüştü,Google'nin görsel motoronda güzel anadilimiz ile bir saate yakın arama yaptım,sonuç sıfır....
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: z - 11 Eylül 2019, 14:33:29
@ipek

Aha buldum.

(https://i.postimg.cc/5Nhc1vzT/deliklikart.jpg) (https://postimages.org/)
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: taydin - 11 Eylül 2019, 15:21:08
C/C++ programlama ile uğraşan birisinin assembly bilmesi, onun uzmanlık seviyesi açısından birkaç level atlamasını sağlar. Mesele ASM ile program yazıp yazmamak değil, mesela, her C kod satırının işlemci seviyesinde nasıl icra edildiğini bilmek.

Özellikle gömülü sistemlerde program geliştirirken, PC lerde olduğu gibi hardware'in sağlam olduğunu varsayamıyorsunuz. Hem hardware hatalı olabilir, hem sizin yazdığınız kodda bug olabilir. Yaşadığım bir olayı anlatayım:

PCI bazlı bir kartın firmware'i üzerinde çalışıyorum, yeni bir versiyon hazırladım ve test edilmeye başlandı. Yeni versiyonda bazı özellikler yanlış çalışıyor, bir öncekinde bu sorun yok. Yeni versiyonda tek farklı olan şey, birkaç istatistik hesaplıyor ve bir kenara yazıyor, o kadar. O hesabı çıkarıyorum, hakkaten problem gidiyor! Test amaçlı başka bir kod ekliyorum, firmware başka şekilde sapıtıyor.

Hatta bir tek NOP (hiçbirşey yapma!) komutunu ekliyorum, program daha değişik davranıyor! Kafayı yiyeceğim! En sonunda bu programın çalıştığı MCU'ya lojik analizörü bağladım, tüm adres ve data hatlarını kaydetmeye başladım. Programın da ASM listingini aldım. Lojik analizörün kaydettiği komut akışı ile ASM listing'deki komut akışını karşılaştırdım. Ve problem şu çıktı: RAM adres dekoderindeki bir problemden dolayı, 4000H adresinden her zaman 00h değeri okunuyor! Dolayısıyla programa yeni birşeyler eklendiğinde, artık programın neresi 4000H e denk geliyorsa orası yanlış çalışıyor.

Assembly bildiğim için bu problemi çözebildim. Bilmeseydim de belki çözebilirdim ama haftalarca deneme yanılma gitmem gerekecekti.
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: taydin - 11 Eylül 2019, 15:34:59
Bu arada ASM ile program yazmak sadece mazoşistlerin yaptığı, ticari olarak anlamsız bir uğraş olarak görmek de doğru değil. Şu örnekleri düşünün:

- Resetten itibaren 0000H adresinden komut icra etmeye başlayan bir MCU için startup kodunu yazacaksınız. Bunun assembly'de yazılması lazım, çünkü belli adreslere belli şeyler koymak istiyoruz, ayrıca MCU yapılandırması ile ilgili bazı temel assembly komutlarını çağırmamız gerekiyor.

- ARM'larda boot kodu, linux kernel'e kontrolü transfer ettiğinde, linux kernel'da ilk başta kısa bir assembly rutin çalışır. işlemci çalışma modu ve başka temel yapılandırmalar yapıldıktan sonra linux kernel'in C bölümü çalışmaya başlar.

- Dijital sinyal işleme yapam işlemcilerde (DSP), belli algoritmik yapıların çok hızlı bir şekilde yapılmasını sağlayan assembly komutlar var. Örneğin TI DSP'lerde iki değerin çarpımını alıp, sonucu akümülatöre toplayan ve bu işi TEK CLOCK DÖNGÜSÜNDE yapan assembly komutu var. Eğer çok hızlı bir şekilde FIR, IIR dijital filtre gerekiyorsa, bunu assembly'de yapmak çok mantıklı.

- Genel olarak, bir işlemciden, vereceği performansı son kırıntısına kadar almanız gerekiyorsa, maliyet de önemli değilse (askeri uygulamaları düşünün), gene bazı performans kritik kod bölümlerinin assembly ile yazılması mantıklıdır.

- Debugger yazanların ASM bilmesi lazım :) Çünkü debug edilen kodun dissambly listing'ini üretilmesi lazım.

- Derleyici yazanların ASM bilmesi lazım. Çünkü birçok derleyici, C/C++ kodunu önce assembly'ye dönüştürür, sonra da bir assembler nihai object kodunu üretir.

- Hacker'ların da ASM bilmesi lazım ki başarılı bir şekilde bir bilgisayara kötü niyetli kod koyabilsin.

- Virüs yazanların da ASM bilmesi lazım ki, var olan bir EXE'yi değiştirip kötü niyetli kod koyabilsin.

Siz şu anda bu faaliyetleri yapmıyor olabilirsiniz, ama yapanlar var ve belki birgün sizin de bunları yapmanız gerekecek! İran uranyum santrifüjlerini darmadağan eden StuxNet'i kimler yazdı? Merdivan altı hacker'lar değil, son derece yetkin bilgisayar mühendisleri yazdı!
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: MuratHp - 11 Eylül 2019, 20:12:30
@taydin yazdıklarınızı okudum ve gayet güzeller fakat size bir soru sormak isterim. ASM öğrenmek isteyen biri için nasıl bir yol önerirsiniz?
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: ipek - 11 Eylül 2019, 20:56:18
@z müthiş ta kendisi....
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: taydin - 11 Eylül 2019, 21:23:34
Alıntı yapılan: MuratHp - 11 Eylül 2019, 20:12:30@taydin yazdıklarınızı okudum ve gayet güzeller fakat size bir soru sormak isterim. ASM öğrenmek isteyen biri için nasıl bir yol önerirsiniz?

Her işlemci mimarisinin assembly dili ve makina dili farklıdır. Eğer örneğin STM8 veya STM32 kullanıyorsanız, onun debugger'ini edinip yazdığınız bir C programını assembly seviyesinde adım adım çalıştırabilirsiniz. Burada register'leri, stack'ı ve program akışının her assembly komutu ile nasıl değiştiğini takip edebilirsiniz. Ayrıca kullandığınız STM32 için, derleyici firmasının yazdığı bir startup kodu vardır. Bu kodun, işlemcinin kontrolünü aldığında neler yaptığını anlamaya çalışmak (hepsini anlayamayabilirsiniz) da öğretici olacaktır.

Ama en iyi öğrenme şekli, ASM kullanmayı gerektirecek bir problem ile karşılaşmak, ve işvereninizin de sizden en kısa zamanda sonuç beklemesi olacaktır :)
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: M.Salim GÜLLÜCE - 12 Eylül 2019, 23:08:09
Artık pek popüler olmasada oldukça fazla fan ı war genede.
80 lerde assembly yazdığım işlemci Z80 idi.
Bu günlerde artık o kadar çok kaynak warki bu konuda...
Online olarak assembly yazıp derleyip çalıştırabiliyorsunuz.
Biz bilgisayarın el kitabından 1000 e yakın kodun makine dili karşılığını basice aktarıp oradan çalıştırıyorduk.
Hem televizyon lazım hem de uygun bir ortam.
Kimse televizyonu size bırakmazdı.

(https://upload.wikimedia.org/wikipedia/commons/3/33/ZXSpectrum48k.jpg)

Şimdilerde şu kadar basit..
http://clrhome.org/asm/ (http://clrhome.org/asm/)
http://clrhome.org/table/ (http://clrhome.org/table/)

1K assebly program yazmıştım..
Bilgisayara yüklenebilen tüm programların proteklerini kırıp yeniden (Teyp kasedine) kaydediyordu.
1 hafta uğraşmıştım.
Lakin Assembly derleyici edindikten sonraydı.
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: devrecii - 13 Eylül 2019, 00:22:01
90'lı yıllarda Asm de usta olmak çok değerli bir şey olabilir ama artık kimseye asm de kod yazıyor diye aferin denmez. Çağımız tamamen metaryalist ,  Sen ne kadar iyi bir kodersin => Ne kadar para kazanıyorsun, istersen yama yap scprit kod yaz yeter ki paran çok olsun  ::ok  ::op
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: ipek - 13 Eylül 2019, 00:23:29
ilk bu bilgisayarı almıştım zannediyorum 84' idi,Korhan Sökmen üstadın yanında merhum Dr Deniz Tanyel vardı,Edge Connector'e 2 yda 4K bir EEprom takmıştı kasetten buna yükleniyordu, kartın üstündeki düğmeye basıp Randomize USR Bilmemne yazıyorduk program 2 saniyede açılıyordu dehşet bişeydi.Sir Clive Sinclair bunu düşünememişti...
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: taydin - 13 Eylül 2019, 00:51:18
Alıntı yapılan: iboibo - 13 Eylül 2019, 00:22:0190'lı yıllarda Asm de usta olmak çok değerli bir şey olabilir ama artık kimseye asm de kod yazıyor diye aferin denmez. Çağımız tamamen metaryalist ,  Sen ne kadar iyi bir kodersin => Ne kadar para kazanıyorsun, istersen yama yap scprit kod yaz yeter ki paran çok olsun  ::ok  ::op

Mesele assembly ile kod yazmak değil, mesele bilgisayar programlama konusunda derinlikli bilgiye sahip olmak. Böyleleri rahatlıkla piyasa ortalamasının 10 katı ücretle çalışır ve işten ayrıldıklarında yerleri çok zor doldurulur.

Sizin dediğiniz "yaz bir Java programı, bitir işi" tarzı eleman piyasada çok. Bunlar Mikrosoft teknolojilerini çok iyi bilirler, MSVC ve C# a bayılırlar. Ama çok az ücretle çalışırlar ve çalıştıkları yerden istifa ettikleri zaman zaten onların yerini alacak on kişi vardır sırada. Daha önce karşılaştıkları bir problem olursa, onu hemen script falan bir şekilde hallederler. Ama daha önce karşılaşmadıkları bir problem ortaya çıkarsa, internette de başkasının yaptığı aynı şeyi bulamıyorlarsa afallayıp kalırlar. Birisi "şöyle bir kontrol sistemi lazım" deyince "al bir arduino yap" derler, ama sıfırdan bir arduino donanımının tasarımını yapmayı bilmezler.

Evet, Türkiye bugüne kadar böyle herşeyi hazır alarak bir şekilde idare etti. Ama ABD ambargosu yakın, Avrupa da bu ambargoya katılacak ve artık hazırına alıştığımız şeyleri eskisi gibi kolay alamayacağız. O zaman işte herşeyi sıfırdan yapmamız gerekecek, ama yapana kadar da büyük bedel ödeyeceğiz.
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: M.Salim GÜLLÜCE - 13 Eylül 2019, 13:39:46
Alıntı yapılan: ipek - 13 Eylül 2019, 00:23:29ilk bu bilgisayarı almıştım zannediyorum 84' idi,Korhan Sökmen üstadın yanında merhum Dr Deniz Tanyel vardı,Edge Connector'e 2 yda 4K bir EEprom takmıştı kasetten buna yükleniyordu, kartın üstündeki düğmeye basıp Randomize USR Bilmemne yazıyorduk program 2 saniyede açılıyordu dehşet bişeydi.Sir Clive Sinclair bunu düşünememişti...
2 firma getiriyordu bu Spectrum 48 K yı (84 değil :) )
Birisi Tepum Diğeri Ekakomp idi..
Korhan Hoca Ekadaydı.
Amstradıda o getirmişti. O vesileyle tanışmıştık kendisiyle.

Specrum için EPROM programlayıcı tasarlayıp kullanmıştık uzunca bir süre.
Çok işimizi görmüştü.
64K Epromları 2 Part halinde atabiliyorduk doğal olarak.
Bilgisayarımız zaten 48K olunca..  :(
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: devrecii - 13 Eylül 2019, 14:31:49
@taydin  Haklısın olması gereken bu ama hayat böyle değil, herşey çarpık zamanımızda , tuvalete bekçi olamayacak adamlar  ülkenin en önde gelen kişileri oluyor , bende bundan dem vurmuştum .

Örnek vermek gerekirse hocaların hocası z hocayı ele alalım kendisi asm konusunda almış yürümüş hatta hayatının bir parçası olmuş, eeee.. sonuç elde ne var  ;D  hiç . Bende asm konusunda fena değilimdir, bu güne kadar maddi manevi hiçbir faydasını görmedim, kimse de bana yav şu programı asm de yazmışsın helal olsun demedi. ;D
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: M.Salim GÜLLÜCE - 13 Eylül 2019, 14:47:49
Alıntı yapılan: iboibo - 13 Eylül 2019, 14:31:49@taydin  Haklısın olması gereken bu ama hayat böyle değil, herşey çarpık zamanımızda , tuvalete bekçi olamayacak adamlar  ülkenin en önde gelen kişileri oluyor , bende bundan dem vurmuştum .

Örnek vermek gerekirse hocaların hocası z hocayı ele alalım kendisi asm konusunda almış yürümüş hatta hayatının bir parçası olmuş, eeee.. sonuç elde ne var  ;D  hiç . Bende asm konusunda fena değilimdir, bu güne kadar maddi manevi hiçbir faydasını görmedim, kimse de bana yav şu programı asm de yazmışsın helal olsun demedi. ;D

Assembler para gerektirecek kazandıracak bir çalışma olarak değil kişisel gelişimin eşik taşı olarak görülmeli.
ASM yazabilen birisi herdili daha rahat kawrar ve herkesten daha güzel programlar yapar. Zorlanınca diğer lisanların yükü altında ezilmek yerine hemen temel lisandan eklemeler yamalar yapabilir.
Bu da başkalarının yapamadığını yapma becerisi kazandırır.

Paraya tevil sadece ürünle olur.

Şöyle düşünürsen tam yerine oturur..

Hiç kimsenin kullanmadığı kalitede tamir takımı aldın ama sana para kazandırmadı. Zira başkaları beş para etmez takımlarla iş yapmaya devam ediyorlar...
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: devrecii - 13 Eylül 2019, 15:10:29
Alıntı yapılan: Mehmet Salim GÜLLÜCE - 13 Eylül 2019, 14:47:49Hiç kimsenin kullanmadığı kalitede tamir takımı aldın ama sana para kazandırmadı. Zira başkaları beş para etmez takımlarla iş yapmaya devam ediyorlar...

İşte başından itibaren söylemek istediğim bu. Aynı fikirdeyiz. Unity denen bir motor çıkmış kod bile yazmıyorsun script,
he rşeyi yapıyor adamlar yazılım bile değil , adam  diyor ki ben yazlımıcıyım işte geldiğimiz nokta bu. Parayı da götürüyor.

Şimdi hazır sistemde iki kod yazıp para götüren adam mı iyi yazılımıcı yoksa şahane kodlar yazıp 3 kuruş kazanan mı iyi yazılımcı hangisi ?

Tamam kişisel gelişim de Bu kişisel gelişim bana;

*Para getiriyor mu -> hayır
*Toplumda saygı -> hayır
*karı kız düşüyormu -> asla  ;D

Peki neye yarayacak bu kisisel gelişim. Faydasını gören varsa yazsın da biz de bilelim :D
 
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: taydin - 13 Eylül 2019, 15:52:51
Piyasadaki hazır toolkitleri kullanarak para kazananlar var tabiki. Ama bir ülkenin gerçek anlamda tennoloji lideri olması için, teknolojik olarak bağımsız olması için bu hazır şeyleri KULLANAN değil, GELİŞTİREN taraf olması lazım. Bunun için de çok ayrıntılı bir şekilde konuya hakim olmak lazım.

Derinlemesine bilgi, herkesin yapabildiği piyasa mallarında belki çok fayda getirmeyebilir. Ama Türkiye'nin Altay tankı için üzerinde çalıştığı AKKOR sistemini düşün. Atılan antitank roketini RADAR'la tespit ediyor, takip ediyor ve tam zamanında kola tenekesi boyutunda bir karşı roket atıp gelen antitank roketini imha ediyor.

Bunu öyle bir script orada, bir python burada, bir hazır STM kütüphanesi burada kullanarak yapamazsın. Teknolojinin en uç noktasındasın artık, programa, donanıma, assembly'ye, herşeye neredeyse %100 hakim olman lazım, çünkü herkesin "olmaz" dediği şeyleri yapıyor olacaksın.
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: devrecii - 13 Eylül 2019, 16:27:08
Hocam yüzde yüz haklısınız olması gereken elbette bu , fakat öyle değil işte.

Havelsan da bi iş fırsatı çıktı bir bakayım araştırayım dedim , ne göreyim  :o unity de bilmem ne yapabilen eleman alınacaktır  ??? İsme bak hava elektronik sanayi , aselsan elektronik ise bu daha çok yazılım üzerine,  düşünebiliyor musun unity , sözün bittiği nokta.

Alıntı YapDerinlemesine bilgi, herkesin yapabildiği piyasa mallarında belki çok fayda getirmeyebilir. Ama Türkiye'nin Altay tankı için üzerinde çalıştığı AKKOR sistemini düşün. Atılan antitank roketini RADAR'la tespit ediyor, takip ediyor ve tam zamanında kola tenekesi boyutunda bir karşı roket atıp gelen antitank roketini imha ediyor.

Hocam lütfen şunlara inanmayın  ;D , geçen televizyonda, drone yapmışlar göreve gitiyor vay vay düşmanı tanıyıp kafasına dalış yapıyor , aslında çinden alınmış drone hava cıva .


Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: M.Salim GÜLLÜCE - 13 Eylül 2019, 16:54:43
Alıntı yapılan: iboibo - 13 Eylül 2019, 16:27:08Hocam yüzde yüz haklısınız olması gereken elbette bu , fakat öyle değil işte.

Havelsan da bi iş fırsatı çıktı bir bakayım araştırayım dedim , ne göreyim  :o unity de bilmem ne yapabilen eleman alınacaktır  ??? İsme bak hava elektronik sanayi , aselsan elektronik ise bu daha çok yazılım üzerine,  düşünebiliyor musun unity , sözün bittiği nokta.

Hocam lütfen şunlara inanmayın  ;D , geçen televizyonda, drone yapmışlar göreve gitiyor vay vay düşmanı tanıyıp kafasına dalış yapıyor , aslında çinden alınmış drone hava cıva .


Aziz dostum uydur kaydır iş yapanların kulwarı bizimkinden farklı olmak zorunda.
İş zora geldiğinde onlar kaçacak delik ararlar.
Onların gideceği yer belli sonuçta...

O yüzden onlar namusuyla iş yapmıyo diye onlaramı uyucaaz yani..
Sen doğrusunu yap..
Senin yerin zamanın elbet gelir.

TV deki dron ASİS in ise çin değildir onuda belirteyim.
Adam akıllı argeleri war iyi tanırım onları. Akar yakıt sistemleri diye başladılar..
Adıda oradan geliyor.
Başka birinden bahsediyorsan eywallah. Bi diyeceğim yok.
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: FullMetal - 13 Eylül 2019, 17:19:54
Alıntı yapılan: iboibo - 13 Eylül 2019, 16:27:08Havelsan da bi iş fırsatı çıktı bir bakayım araştırayım dedim , ne göreyim  :o unity de bilmem ne yapabilen eleman alınacaktır  ??? İsme bak hava elektronik sanayi , aselsan elektronik ise bu daha çok yazılım üzerine,  düşünebiliyor musun unity , sözün bittiği nokta.
Simülasyon teknolojisi üretiyorlar normal değil mi? İsimle yargılamak bana göre anlamsız ne üretildiği üzerinden konuşmalıyız (benim görüşüm, sözlü saldırıda bulunmuyorum).
Alıntı yapılan: iboibo - 13 Eylül 2019, 16:27:08Hocam lütfen şunlara inanmayın  ;D , geçen televizyonda, drone yapmışlar göreve gitiyor vay vay düşmanı tanıyıp kafasına dalış yapıyor , aslında çinden alınmış drone hava cıva .
STM nin sürü drone teknolojisinden bahsediyorsun sanırım. Madem bunları hafife alacak kadar biliyorsun, daha iyisini üretip, satabilirsin. (Yalnız kritik nokta Çin malı olmalı dronelar. Alman malı sağlam olur derler çarptımı kolay parçalanmaz. Etrafa saçılıp parçacıklara dağılan drone olmalı (parçacık hasarı vermesi için), birde parçalanacağı için ucuz olsun. Zırh delici özellik isterlerse ucuna matkap bağlanan modelli yapmak gerekebilir. Matkaplı model sivil hayattada çok iş görür, düşünsene oturduğun yerden duvara delik deliyorsun vs)
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: taydin - 13 Eylül 2019, 18:11:02
Bir de olaya sadece ticari piyasa aklıyla bakmamak lazım. Herşey maliyet değildir. Tamam şimdi 2 dolara alıyorsun 32 bitlik MCU çipini keyfin yerinde. Toolkit'i var, kütüphanesi var. Wizard'ı var, birkaç tıkta sana program üretiyor. Ama zamanı gelecek belki de bu 32 bit MCU'larda bize ambargo uygulanacak. O zaman belki de kendimiz o anki teknolojik seviyemizle 8 bitlik MCU üretebiliyor olacağız. O zaman o 8 bit MCU'nun performansının en son kırıntısına kadar yararlanmak isteyeceğiz.

Herşey maliyet değildir. Yav ABD'de her türlü elektronik komponent üretme yetkinliği ve teknolojisi olduğu halde ben adamların teknik forumlarında görüyorum, bazıları merak edip sıfırdan SMD direnç yapmaya çalışıyor! Bizde bu teknolojinin esamesi yok, kimse de merak edip birşeyler yapmaya çalışmıyor. Neden? "yav bırak allah aşkına, git tanesi 0.0001 cent'ten Çin'den 10 bin tane al. Ne uğraşacaksın?" mentalitesi var.

Çin'e göre 10 kat daha yüksek maliyetle yapabiliyor olsak da, bizim bütün komponentleri üretebilecek teknolojiye ulaşmamız lazım. Devletin de bunu teşvik etmesi lazım. Ama şu anda teşvik etmez (proje başvurusu yap, mealen yukarıdaki dangalak cevabı alırsın).
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: tekosis - 13 Eylül 2019, 21:14:56
DMA elektrikli otomobil firmasının sahibi olan kişi bir söyleşide devlet yerli firmalara destek vermesin bunun yerine son kullanıcıya yerli malı kullanımında kolaylık sağlasın bu bize yeter diyor. Bence gayet haklı.
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: RaMu - 13 Eylül 2019, 21:58:17
Özet:
Şunu yapabilirsen bunu bilirsen şöyle olur,
olmadıysa sen yapamamışsındır,
dayının olmamasıyla bir ilgisi yoktur.
Hayal dünyasında mı yaşıyorsunuz,
asm nin tozunu attıranlardan biriyim,
evet diğerleri bana çerez geliyor,
varsa öyle hayal bir iş söyleyin bende oralar nerelerse gideyim.

Bu arada siz ne iş yapıyorsunuz,
yatı katı olan asm bilen yazılımcı tanıyor musunuz?

Herşey bir noktada gelir paraya, karnını doyurmaya,
aç ayıda dansözde oynamaz.
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: OptimusPrime - 13 Eylül 2019, 22:13:15
+
Dis mihraklar

ne asm imis bee  ???
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: taydin - 13 Eylül 2019, 22:58:55
Alıntı yapılan: RaMu - 13 Eylül 2019, 21:58:17Özet:
Şunu yapabilirsen bunu bilirsen şöyle olur,
olmadıysa sen yapamamışsındır,
dayının olmamasıyla bir ilgisi yoktur.
Hayal dünyasında mı yaşıyorsunuz,
asm nin tozunu attıranlardan biriyim,
evet diğerleri bana çerez geliyor,
varsa öyle hayal bir iş söyleyin bende oralar nerelerse gideyim.

Bu konuyu daha önce iş arayan elemanın konusunda da tartışmıştık, belki çocuğu da biraz üzdüm, artık tat verdi bu konu. Bu iş bulma konusuyla ilgili sadece şunları söyleyeyim, bir daha da bu konuda yorum yapmamak için kendimi gerçekten zorlayacağım.

Aşağıdakileri yazarken genel olarak söylüyorum, senin özelinde konuşmuyorum:

 Önemli olan, bir mühendis olarak senin kendini ne kadar iyi, ne kadar başarılı gördüğün değil. Sen kendi kendini işe almıyorsun. Başkası seni işe alacak. O yüzden önemli olan, işverenin senin hakkında ne düşündüğü. Eğer işverene çok iyi para kazandıracağını net bir şekilde ortaya koyduysan, seni işe almaması için kafasız olması lazım.

Yok dayıyla işe girilecekmiş yok kravatla gidilecek, şunu söyleyeceksin bunu söylemeyeceksin, referansın sağlam olacak falan filan. Diyelim bu şekilde işe girdin, devamını nasıl sağlayacaksın? Senin gerçek seviyen kısa zamanda ortaya çıkmayacak mı?

Ama işte sanırım benim gibi düşünenler çok azınlıkta, o yüzden bunları söyleyerek belki de kırıcı oluyorum. Niyetim bu değil, ve artık söylemeyeceğim. Nasip kısmet, ecel gelmedikten sonra herkesin bu hayatta bir rızkı vardır neticede.
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: Epsilon - 14 Eylül 2019, 00:08:52
Yazdığı programlarla en az 100 kişinin çalıştığı firma sahibi  olan insanlar tanıyorum.Sizler tanımıyor olabilirsiniz çünkü onların yaşlarıda artık 60 a yaklaşmıştır.

En az 25 yıl önce bu tür kazançlar elde ettiler.Zira o zamanlar  ne internet vardı nede githup gibi yerler ki ingilizce bilen biri buralardan indirsin.

Bu adamlar 640 Kb lık hafızalarla 30 Mbytlık(Evet Megabayt) harddisklerde stok carı çek senet vb entegre programlarını yazmışlardı.
Ben bundan daha karmaşık bir programı beş yıl kullandım.Kaynak kodunun çıktısı A4 den büyük kağıtta (sürekli formda ) yaklaşık 1000 sayfa idi.

Kaç kişi var böyle program yazmış aramızda?

Adam flyback hesaplama programı yazıyor 86 tane hata çıkıyor.(Veya Faircild in excel programının parolasını kırıp ben yazdım diyor :D )

Kişinin zengin olması direkt kendi elinde değildir.Öyle olsa herkez zengin olurdu.

En az 300 kişi çalıştıran firma sahipleri biliyorum adamlar ortaokul mezunu idi.Hatta biri yıllar önce Türkiyede ilk 500 firma içindeydi

Bir konudan satılabilecek ürün çıkarabilmek bir yetenektir.Bir ürün satarak para kazanabilirsiniz.Artık elektronik veya yazılımdan para kazanmak imkansız değil ama oldukça zor.Zorluğu @taydın bahsettiği çok kişinin bilmediği konuları bilmekten  bunu nerelerde kullanabileceğini bilmekten geçiyor.

Dayı ile torpil ile işe girsen ne olacak.Bu konuda @taydin  ile aynı görüşteyim
 
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: RaMu - 14 Eylül 2019, 02:20:34
@taydin
@Epsilon
Bende dayıyla işe girme veya iş bulmada yeterlilik ve kendini pazarlama konusunda aynı fikirdeyim.
Anlatmak istediğim toplum için milli menfaatler ve kişisel kazanım
konularını ayırıp bunu belirterek yazmazsanız
hayal ile gerçekler birbirine karışır.

Bunun yanında şahsım dayısı olmadığı veya dayıya ayı dememişliğinden dolayı
8 senelik ağır bir eğitimi 8 dakikada çöp edilmiş hatta kendisinden 20k$ tazminat istenmiş biriyim.
Dayısız girmiş olduğu bir yerde dayısız kalamamakta var.

Gerçek hayatta iyi bir programcı olmak asm bilmek vs. artık karın doyurmayan işler
bende @Epsilon un bahsettiği kişilerden tanıyorum ama aynen 50-60 yaşın üzerindeler,
artık bu nasıl yapılır şunu bilen adam bulunmaz hint kumaşı diye bir şey yok ve
bilinenler aşırı derecede hızlı bir şekilde eskiyor vede kıymeti bitiyor.

Şu ana kadar öğrendiklerimi zaten hobi olarak öğrendim diyebilirim,
benim için asm yazmak, elektronik ürün tasarlamak,
hergün yeni bir şey öğrenmek büyük bir zevk,
şuana kadar öğrendiklerimle çocukluk hayallerimi gerçekleştirmiş olmamın sevincini yaşıyorum heran.
Çocukken ne cihaz görsem bunun içinde ne oluyorda bu mercimeğe şekere benzeyen şeyler
benim istediğim şeyleri yapıyor derdim
çok merak ederdim,
şimdi hem biliyor hemde yapabiliyorum.
İnsan birde sevdiği işi yaparken sevmediği herşeyi yaptırabilecek kadar bir maddiyatı elde edebilirse değme keyfine.

Bunun yanında her zaman daha iyisini yapabilmek için bir arayış vardır,
ben öğrenmeye, kimsenin yapamadığını yapmaya,
çözülemeyeni çözmeye doyamam,
bunu iş olarak yapabileceğimiz pek bir ortam yoktur,
bundan bahsettim.
Yoksa para kazanmaktan zevk alabilsem
bu kafayla neleri öğrenir ne paralar kazanırım,
ne asm ile uğraşacam.
Hatta ne diye öğrenmeyle uğraşayım
ver kendini pazarlama işene kim önünü alabilir.


Sorduğum ve anlattığım şu
bahsettiğiniz gibi bir yazılım işi yoktur,
varsa yazında herkes aydınlansın.
Asm ile uğraşacağınıza gidin c# öğrenin microsoftta 10k$ a işe girebilirsiniz:
https://youtu.be/eryauOpImHQ
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: z - 14 Eylül 2019, 04:12:23
Yahu ne oldu boyle. Alti ustu delikli karttan yapilmis paket tasiyicinin fotosunu koyduydum.

Alıntı yapılan: z - 11 Eylül 2019, 14:33:29@ipek
Aha buldum.
(https://i.postimg.cc/5Nhc1vzT/deliklikart.jpg) (https://postimages.org/)

https://eksisozluk.com/masum-seytan--4649652
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: z - 14 Eylül 2019, 04:21:05
Alıntı yapılan: RaMu - 13 Eylül 2019, 21:58:17......yatı katı olan asm bilen yazılımcı tanıyor musunuz?...

Yanlis bilmiyorsam Bill Gates ekibi, MsDos'u assembly ile yazdi.

Herhalde MsDos piyasaya ciktiktan sonra yat ve kat almislardir.
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: power20 - 14 Eylül 2019, 08:27:57
Msdosu bir yerden satın alıp geliştirmişti
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: brandice5 - 14 Eylül 2019, 11:53:27
Alıntı yapılan: z - 14 Eylül 2019, 04:21:05Yanlis bilmiyorsam Bill Gates ekibi, MsDos'u assembly ile yazdi.

Herhalde MsDos piyasaya ciktiktan sonra yat ve kat almislardir.

Bill Gates DOS'u yazmadı. Tim Paterson'dan parasıyla satın aldı.

Hatta fiyatıda  yazayım, 50.000$
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: z - 14 Eylül 2019, 12:34:30
DOS degil MsDos, Bil Gates yazdi degil ekibi yazdi demistim.

Neyse assembly ile yazilmis.

Zaten o tarihlerde daha farkli bir sey dusunulemezdi.
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: RaMu - 14 Eylül 2019, 12:53:57
@z Oda 50-60 yaş üstü grubuna giriyor,
bu arada Fat dosya sisteminide Bill abi ve Marc Mc Donald 1977 de yazmışlar.

Ben konuya 2016 da yazmıştım,
herhalde diğer yazanlarda konunun hortladığının farkındadır..
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: M.Salim GÜLLÜCE - 14 Eylül 2019, 19:42:54
Bir ara DOS İşletim sisteminin kaynak kodları public oldu diye gözüme çalınmıştı.
Ama nerede olduğunu tam hatırlayamıyorum. Github olabilir.
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: MC_Skywalker - 14 Eylül 2019, 20:19:53
Alıntı yapılan: Mehmet Salim GÜLLÜCE - 14 Eylül 2019, 19:42:54Bir ara DOS İşletim sisteminin kaynak kodları public oldu diye gözüme çalınmıştı.
Ama nerede olduğunu tam hatırlayamıyorum. Github olabilir.


Evet eski iki versionunun (1.25 2.0)kaynak kodlarını GitHub da yayınladılar

https://github.com/microsoft/MS-DOS
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: OptimusPrime - 16 Eylül 2019, 00:14:53
Asm 50 yil once para kazandir(ir)di simdi cip tasarimcisi olma vakti. Bir yere bagli olarak calisip zengin olmak isteyenler icin  :D
500k$ senelik  ::op
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: Epsilon - 16 Eylül 2019, 10:39:58
Alıntı yapılan: z - 14 Eylül 2019, 04:12:23Yahu ne oldu boyle. Alti ustu delikli karttan yapilmis paket tasiyicinin fotosunu koyduydum.

Konunun geldiği yerin özeti aşağıdaki video  :D
Başlık: Ynt: Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...
Gönderen: M.Salim GÜLLÜCE - 16 Eylül 2019, 21:50:16
Alıntı yapılan: Epsilon - 16 Eylül 2019, 10:39:58Konunun geldiği yerin özeti aşağıdaki video  :D
Hay Allah müstehakkını werisin.
Hiç güleceğim yoktu..  ;D  ;D  ;D  ;D