/i/Yazılım

Umuyoruz ki geleceğin yazılımcıları bu altinciden çıkacak!
    başlık yok! burası bom boş!
  1. 1.
    +2
    rahatsız eden sadece görseli ise, struct tanımlamak için bir macro kullanabilirsin:

    2. 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
   tümünü göster