3 xbdgcg ,.bn b vn v,.. , |
Visual Studio 2010'da adım adım çalıştırma özelliği var, F10 tuşu ileydi yanlış hatırlamıyorsam. Veya istediğin satıra F9 tuşu ile kesme noktası(breakpoint) koyup normal çalıştırırsan program o satıra geldiğinde duracak ve senin devam ettirmeni bekleyecek. Bu noktada düzeneleyicine(editor) sağ tıklayıp "Go to Disassembly" dersen, yazdığın kodun makina dilindeki karşılığını görebilirsin. |
İthamın çok ağır olmuş. Ben sana aynı şekilde cevap vermeyeceğim ama. Beni anlamamışsın çünkü. İngilizcem var. Arama da yapabiliyorum. Orasında sorunum yok. Dersin kitabına da sahibim. Hocası da gayet iyi ders anlatıyor. Notumu da kendim tutuyorum, senin gibi iyi not tutan birilerinden not "dilenmek" yerine. Ben kimseye benim ödevimi yapın demedim. Bir soru soruldu, soruyu C koduyla rahatlıkla çözdüm. Tıkır tıkır da çalışıyor. Fakat, C'de kullandığım birtakım yapıları(fonksiyonlar,rekürsif fonksiyonlar vb) Assembly'de kullanabilmem lazım. Bunlar da chapter 8'de anlatılmış. Biz ise okulda Chapter-5'e başlayacağız henüz. Dolayısıyla kitabı karıştırıp buralardaki şeyleri kullanıyor olmam sorun yaratabilir diye düşünüp, yazdığım C kodunun algoritmasını basitleştirebilecek birisi olur mu, benim aklıma gelmiyor diye başlığı açtım. Ama resmen küfür yedim. C kodunun algoritmasını basitleştirebilsem, Assembly'de mümkün olduğunca ileriki konulardan kullanmam gerekmeyecekti. Başlığı açmamdaki amaç bu. Yoksa ben soruyu vereyim, alın çözün diye sormadım kimseye. Anlamak istediğinizi anlamaktan vazgeçin. |
:) boşver o da ego peşinde herkes bazen ego durumlarına düşer. gergindir vs.. yazılımcı degılım ama assembly hala ögretiliyor mu yau? |
Gönderiyorum. Teşekkür ederim. :)
Valla mikroişlemci, donanım-yazılım bağlantısının mantığını kavratmak adına Assembly olayına da girişiyorlar. :) Biraz uyuz bir dilmiş bu. :D |
Özel mesajda code tagı bir garip davrandı vazgeçtim yollamaktan :) Bu arada bazen "Basit düşün!" ![]() Yazdığın kod güzel tabi. Generic bi hesaplama metodu. Ama bazı ufak logic hatalarda var. Mesela ufak bi array dışına taşma var(aynısını demin ben de yaptım).http://www.cplusplus.com/doc/tutorial/arrays/ Neden belirtiyorum, ileride toplu kod yazdığınızda büyük projelerde bunlar gelen giden mesajlaarı hesaplamarı vs patlatabilir. Bu hataların bulunması zor olabilir ilerde. array ile oynarken (hele char arrary) ise dikkatli olmak lazım. Ekleme : Tekrar baktım hata yokmuş arrayde. ben F(0) ile başlamıştım (Wiki) sen F(1) ile başlayıp ona göre yazmışssın. |
Her assembly aynı olmadığı için yardımcı olmak zor. Her işlemci, microcontroller ailesinin assembly komutları az da olsa farklıdır. |
visual studio altında assembly çalıştırabiliyor muyuz? nasil oluyor bende merak ettim şimdi :) benim bildiğim cpp de _asm{} kodları arasına yazılıp yapılıyodu dediğin bu mu? |
http://kipirvine.com/asm/examples/index.htm Buraya gir. Visual Studio'nun ordaki sürümlerinden hangisini kullanıyorsan indir örnek dosyayı. Kurarken C/Irvine gibi bir şeyin içine kuruyor değiştirme onu. Sonra oranın içinde project sample klasörünü masaüstünde veya istediğin yere kopyala. Aç projeyi gitsin kopyaladığının içindekini. :D |
Önündeki konulara ait yapılar kullanıyorsan çözümün beklenilen çözüm değil demektir. Öğrendiklerinle bir çözüm geliştirmelisin, ayrıca madem ingilizcen var araştırmak yerine buraya sormak neden? Yukarıda yaptırmak değil niyetim diyorsun ama hareketlerin bunu desteklemiyo. Dediğim gibi, öğrendiklerinle bir algoritma geliştirmen bekleniyor senden belli ki. |
Mevcut öğrendiklerimizle çözüm isteniyor doğrudur. Başka bir dili bitirmiş olup oradaki konu sayesinde ödevi yapmak amaca hizmet etmiyor ama başka türlü de çözüm düşünemeyebiliyoruz. Burası da bir forum ve paylaşım alanı. Hiçbir şey sormayacaksak forumu kapatalım isterseniz? Veya madem her şeyin İngilizcesi var, siz neden gelip başlığa cevap veriyorsunuz? Hareketlerimin bunu destekleyip desteklemediğini sevgili @garui, gayet güzel gördü. Ona yazdığım kodu gönderdim. Onun üzerinden bana yön verdi. O şekilde ilerledim. Yukarıda da benim yazdığım kodun içeriğiyle ilgili bilgilendirme yapmış. Yukarda garui'ye kodu gönderdiğime dair yazıları okumadığınız belli. Dolayısıyla şu şekil ithamlardan vazgeçin. Neyi ispatlamaya çalışıyorsunuz anlamıyorum. |
Assembly olarak pek bir yardımım dokunmadı(unuttum gitti zaten assembly. Anca debug ederim ![]() |
Konuyu dağıtıp da haklı çıkmaya çalışmanın da pek anlamı yok hani. Neyse bir şey demedim ben siz devam edin |
Cevap vermeme gerek yok buna. Bir şeyler için uğraştığımı garui gördü. Size açıklama yapacak değilim. Mesajınızın üstünde yer alan mesajı da mı okumadınız? Ben bu soru için elimdeki tüm bilgileri kullanarak olması gerekenden daha komplike bir C kodu yazarak, garui'ye gönderdim. Tekrar yazmış yazdığım kodla alakalı içerik bilgilendirmesini mesajında. O da yazdığım C kodunu basitleştirmeye çalışarak syntax'i küçülttü ve Assembly'e dökmemde yardımcı oldu. Dolayısıyla haklı,haksız davası değil bu. Durum zaten açık. http://forum.donanimhaber.com/m_67164532/tm.htm Beni şu başlıktaki adamla karıştırma istersen. |
int i; C = 1; for(i=0;i< e;i++) C=C*M%n; C = C%n; printf("\n\Sifreli Bolum : %d",C); Arkadaşlar, C'deki böyle bir kod parçasını(main içerisinde gibi düşünün) x86(8086-intel) ailesi için assembly koduna nasıl yazabilirim? Bir proje üzerinde çalışıyorum. Son kısımlara gelmek üzereyim ama, bu algoritmayı Assembly'de yazmayı beceremedim. İrvine32.inc kütüphanesi kullanıyoruz. Yazdığım kodlar hep hata veriyor. Daha doğrusu şifreli bölüm mesajı yazısını çıkartıyorum ama hata çıkıyor. C,n,M .data kısmında DWORD ? olarak tanımlı. 32-bitlik registerlarla uğraşmaktayım. |
|
öncelikle döngü için CX yazmacı kullanılıyor. mov cx, 10 L1: mov al, ch //islemlerini burda yapıyorsun //diger degiskenler icin de ya yazmaç ya da data segmentte tanımladıgın bellek alanlarını kullanabilirsin ama dikkat etmen gereken 2 bellek alanını her komut yapmaz bunun için de önce yazmaçlara alman lazım loop L1 ; cx=10 old. icin 10 kere L1 e atlama yapar irvine32.inc te farklı durum var mı bilmiyorum da x86 için konuşuyorum bunu mecbur sağlamak zorunda.. |
Ya hangi sıfatla insanları bilip bilmeden yargılayabiliyorsun? Benim hiçbir şeyi kıvırdığım falan yok. Doğru düzgün konuş karşındakiyle. Topaçmış bilmemne, sen sütten çıkma ak kaşıksın zaten.
Çok teşekkür ederim. Dün mesajı yazdıktan sonra, biraz daha üzerinde düşündüm. Biraz daha kapsamlı bir şey yazdım. Paylaşırım yakın zamana. Bir de CX 16-bitlik bir register. Ben ECX gibi 32-bitlik registerlarla uğraşıyorum. :) |
8086, masm'de için yapıyoruz.(visual studio 2010 aracılığıyla, irvine32 kütüphanesini kullanarak)