系統程式 (第二版)修改構想

C0 語言加上函數與結構,共有四種基本型態 char, int, float, ptr,合稱為 BTYPE 因此函數的回傳型態也只有這四種。另外加上 struct,以定義複雜結構。然後為了與組合語言連結,C0 提供與組合語言的連結方式。這些特點形成新版的 C0 語言。於是 C0 語言的語法修定如下。

FUNC = BTYPE id(VAR_LIST?)

CALL = id(EXP_LIST?)

VAR_LIST = BTYPE id ([,;] BTYPE id)*

STRUCT = struct { VAR_LIST } id;

ARRAY = BTYPE id([])+ (= ARRAY_INIT)

ASM = asm { .* }

提供 sizeof() 函數,讓大家可以用 sizeof(int)、sizeof(struct) 取得大小。

將 os0.asm0 改為 ts0.asm0,代表 task switch 0,另外,用 C0 語言加內嵌組合語言寫一個作業系統,垓作業系統程式為 os0.c0。

cpu0 的 R10 與 R9 分別為基底、限制暫存器,讓作業系統可以直接存取,載入時不需要做太多的修改。

ptr 的用法如下:
函數呼叫:ptr(a,b,c)
位址指定:ptr=&a;
內容指定:*ptr = a;

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License