/i/Yazılım

Umuyoruz ki geleceğin yazılımcıları bu altinciden çıkacak!
    başlık yok! burası bom boş!
  1. 1.
    +15 -1
    C/C++ bilen panpalarım az önce sanal makine yazıyorum diye isim sormuştum. Şimdi ise çok daha büyük bir yardım gerekti...

    CPU registerlarını tutan struct için daha düzgün bir şey yapma imkanı yok mu? Bu şekilde çok karışık duruyor:

    --bağlantı--
    http://hastebin.com/oxategiwaw.cpp
    --bağlantı--

    Bunun daha güzel ve daha düzgün versiyonunu yapmanın yolu var mı? Struct içinde birsürü union ve struct olması çok rahatsız edici duruyor.

    Basitçe şunu struct haline getirmeye çalışıyorum yani:








    readLow8Bit, readHigh8Bit, readLow16Bit şeklinde register'ı parçalara bölecek makrolar da yazabilirim ama bir structtan hepsine erişmek daha güzel görünüyor, bu yüzden structu düzeltebileceğim yöntemler önerirseniz daha güzel olur.

    Şimdiden teşekkürler.
    ···
  1. 2.
    +1
    up up up
    bi mziaf a yada aworms a ulaşsana zumki onlar yapar belki
    ···
  2. 3.
    +32
    BU SÖZLÜK iÇiN FAZLASIN
    ···
  3. 4.
    +2
    @3 hakli
    ···
  4. 5.
    0
    up up up
    ···
  5. 6.
    0
    up up up
    ···
  6. 7.
    0
    up up up
    ···
  7. 8.
    0
    @3 haklı up up up up
    ···
  8. 9.
    0
    yazılımdan gram anlamam hayrına up
    ···
  9. 10.
    0
    ne işe yarıyor bu
    ···
  10. 11.
    +7
    Format at düzelir
    ···
  11. 12.
    +5
    alt f4 yap
    ···
  12. 13.
    +2
    Öncelikle Pnp 15'Lik Strucktan bir şeye ulaşamazsın disconnect atar C+ Sayesinde eax'dan ead'ye ulaşabilirsina ama 32 bit olacağı için makine 64 bit olması lazım şaka şaka gram fikrim yok hayrına UP ama
    ···
  13. 14.
    0
    c bilgim o kadar ileri değil panpa, hesap makinesinden ibaret malesef. bilmiyorum yardımcı olur mu ama ben olsam assembly diliyle daha küçük byte lı ve direk işlemciye hitap eden birşeyler yazardım. ya da derleyicilerle c ye derlemeye çalışırdım.
    ···
  14. 15.
    +2
    rahatsız eden sadece görseli ise, struct tanımlamak için bir macro kullanabilirsin:

    1. define DEF_REGISTER( r32, r16, r8h, r8l ) union { union { struct { uint8_t r8l; uint8_t r8h; }; uint16_t r16; }; uint32_t r32; };

    şeklinde. Sonra da bunu kullanarak registerlarını tanımlama işini daha kısa şekle çevirebilirsin:

    typedef struct registers
    {
    DEF_REGISTER( eax, ax, ah, al )
    DEF_REGISTER( ebx, bx, bh, bl )
    ...
    ..
    }

    şeklinde..
    ···
    1. 1.
      0
      Panpa bu çözüm çok mantıklıymış fakat bir sorun daha var. Tüm registerlar bu formatta değil.

      Genel amaçlı registerlar:

      EAX | AX | AH | AL
      EBX | BX | BH | BL

      şeklinde giderken index ve pointer registerları:

      EDI | DI
      ESP | SP

      şeklinde gidiyor. Bir de kontrol registerları var fakat onlar sorun değil yalnızca 32 bitlik halleri var doğrudan uint32_t cr0, cr1, ... şeklinde tanımlayabilirim onları.
      ···
    2. 2.
      0
      ne diyonuz amk
      ···
    3. 3.
      0
      muhtemelen sen de tahmin etmişsindir, genel tipte olmayan registerlar için de ayrı macrolar tanımlayarak çözebilirsin.

      kolay gelsin.
      ···
      1. 1.
        0
        Evet panpa ama isimler sorunlu işte. Birine gpr dedim kolay, diğerine ne diyeceğim? ipr (index veya pointer reg) aklımdaki isimlerden biri ama yine de ona uygun isim bulamadım
        ···
    4. diğerleri 1
  15. 16.
    +1 -3
    Console. Write("Ananı gibeyim");
    ···
    1. 1.
      0
      Console q tab enter
      ···
    2. 2.
      0
      amk anancisi cuk kadar kod yazmis onu da yanlis yazmis
      ···
  16. 17.
    0
    registerlardan anlarım da struct ne la ? union ne alaka aq?
    ···
  17. 18.
    0
    ((((((((:
    ···
  18. 19.
    0
    yazılımın çöp hiç uğraşma
    ···
  19. 20.
    0
    adı üstünde sanal amk sanal ilişki yaşamayın
    ···