با سلام :
دوست عزیز شما باید توجه کنید که سیستم عاملهای موجود با سی نوشته شده اند " ویندوز ، لینوکس ، مک ، و .... " اما با پاسکال هم میشه به شرطی که اسمبلی و ارتباط با اسمبلی توسط پاسکال رو بلد باشی من به عنوان مثال یک قطعه کد که مربوط به بوت دیسک میشه و با پاسکال نوشته شده رو قرار میدم شاید کمک کنه تا بیشتر متوجه بشی :
{Function:Boot message for A-disk
Language:Turbo Pascal
BlackMedia 43}
label F;
var B: array[0..255] of Word;
E: Word; s: string[80];
const n: string=
#$FA+
#$FC+
#$B9#$27#$00+
#$BF#$00#$BC+
#$BE#$44#$7C+
#$33#$C0+
#$8E#$D8+
#$8E#$C0+
#$F3#$A4+
#$EA#$00#$BC#$00#$00+
#$BE#$6B#$7C+
#$AC+
#$0A#$C0+
#$74#$08+
#$33#$DB+
#$B4#$0E+
#$CD#$10+
#$EB#$F3+
#$B8#$01#$02+
#$BB#$00#$7C+
#$B9#$01#$00+
#$BA#$80#$00+
#$CD#$13+
#$72#$05+
#$EA#$0#$7C#$00#$00+
#$EB#$FE;
begin Write
('BootDisk BlackMedia 43 ');
s:='';
for E:=1 to ParamCount do
s:=s+ParamStr(E)+' ';
n:=n+s+^M^J#0; E:=0;
asm
push DS; XOR AX,AX; mov DX,AX
mov CX,1; mov BX,offset B
Int 25h
pop DS; pop DS
jnc @1; mov E,1; @1:
end;
if E=1 then goto F;
B[0]:=$2AEB;
Move(n[1],B[$16],Length(n));
asm
push DS; XOR AX,AX; mov DX,AX
mov CX,1; mov BX,offset B
Int 26h
pop DS; pop DS
jnc @1; mov E,1; @1:
end;
if E=1 then goto F;
WriteLn('finished. '); Halt(0);
F: WriteLn('Error! ', #7); Halt(1);
end.
در کد بالا قسمتهایی که نوشته شده asm برنامه به اسمبلی پل زده !
پیشنهاد من برای درک کامل از طراحی یک سیستم عامل اینه که کتاب طراحی و پیاده سازی سیستم های عامل رو که نوشته تانن باوم هست و محتوی کدهای سیستم عامل minix هست به همراه توضیح و ... و ترجمه شده به فارسی رو تهیه کنی و مطالعه کنی البته همون طور که گفتم این سیستم عامل هم با سی نوشته شده .
امیدوارم کمکی کرده باشم .