57 lines
1004 B
HolyC
Executable File
57 lines
1004 B
HolyC
Executable File
class Person
|
|
{
|
|
U8 first [32];
|
|
U8 last [32];
|
|
U8 address1 [64];
|
|
U8 address2 [64];
|
|
U8 city [32];
|
|
U8 state_zip[32];
|
|
};
|
|
|
|
U0 OffsetDemo1()
|
|
{
|
|
Person *p=MAlloc(sizeof(Person));
|
|
StrCpy(p->first, "Terry");
|
|
StrCpy(p->last, "Davis");
|
|
StrCpy(p->address1, "8144 Sickle Lane");
|
|
StrCpy(p->address2, "");
|
|
StrCpy(p->city, "Las Vegas");
|
|
StrCpy(p->state_zip,"NV 89128");
|
|
}
|
|
|
|
U(&OffsetDemo1,34);
|
|
PressAKey;
|
|
|
|
/*
|
|
|
|
x86 has signed 8-bit displacements
|
|
and signed 32-bit displacements.
|
|
|
|
This example uses 8-bit negative displacements.
|
|
|
|
*/
|
|
|
|
class Person
|
|
{ $$=-128;
|
|
U8 first [32];
|
|
U8 last [32];
|
|
U8 address1 [64];
|
|
U8 address2 [64];
|
|
U8 city [32];
|
|
U8 state_zip[32];
|
|
};
|
|
|
|
U0 OffsetDemo2()
|
|
{
|
|
Person *p=MAlloc(sizeof(Person))(I64)+128;
|
|
StrCpy(p->first, "Terry");
|
|
StrCpy(p->last, "Davis");
|
|
StrCpy(p->address1, "8144 Sickle Lane");
|
|
StrCpy(p->address2, "");
|
|
StrCpy(p->city, "Las Vegas");
|
|
StrCpy(p->state_zip,"NV 89128");
|
|
}
|
|
|
|
U(&OffsetDemo2,34);
|
|
PressAKey;
|