-
1.
+2rahatsı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.
0Panpa 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.
0ne diyonuz amk
-
3.
0muhtemelen sen de tahmin etmişsindir, genel tipte olmayan registerlar için de ayrı macrolar tanımlayarak çözebilirsin.
kolay gelsin. -
-
1.
0Evet 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
-
1.
diğerleri 1 -
1.
başlık yok! burası bom boş!