五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

操作系統(tǒng)上的程序 (什么是程序和編譯器) [南京大學2022操作系統(tǒng)-P2]

2023-03-31 11:52 作者:Cpt_1024  | 我要投稿

文章鏈接:https://cpt1024.blog.csdn.net/article/details/127704221




P2操作系統(tǒng)上的程序

補ppt ppt

tmux 快捷鍵操作

https://www.jianshu.com/p/01a18efe2552

數(shù)字邏輯電路:模擬器

#define REGS_FOREACH(_)?_(X) _(Y)

#define RUN_LOGIC????X1 = !X && Y; \

?????????????Y1 = !X && !Y;

#define DEFINE(X)????static int X, X##1;

#define UPDATE(X)????X = X##1;

#define PRINT(X)?????printf(#X " = %d; ", X);


int main() {

?REGS_FOREACH(DEFINE);

?while (1) { // clock

??RUN_LOGIC;

??REGS_FOREACH(PRINT);

??REGS_FOREACH(UPDATE);

??putchar('\n'); sleep(1);

?}

}


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

狀態(tài)機和數(shù)碼管實現(xiàn)



看文檔


gcc a.out | python3 seven-seg.py


http://jyywiki.cn/OS/2022/slides/2.slides#/2/2


py代碼 接受每一個輸入 然后顯示


通過 || 將c程序的輸出作為py程序的輸入




程序

程序 == 狀態(tài)機

gdb a.out 進入調(diào)試狀態(tài)

layout src 進入 用 c的方式

layout asm 用匯編的形式進入

start 運行 s 下一步 info frame 查看棧幀

C語言視角

C 程序的狀態(tài)機模型 (語義,semantics)


狀態(tài) = 堆 + 棧

初始狀態(tài) = main 的第一條語句

遷移 = 執(zhí)行一條簡單語句

任何 C 程序都可以改寫成 “非復合語句” 的 C 代碼




函數(shù)調(diào)用 : 創(chuàng)建棧幀 pc ++


函數(shù)返回 消除棧幀



本質(zhì)仍然是計算


二進制程序




構造最小的 Hello, World

int main() {

?printf("Hello, World\n");

}

1

2

3

gcc 編譯出來的文件不滿足 “最小” --verbose 可以查看所有編譯選項 (真不少)

printf 變成了 puts@plt -static 會復制 libc


匯編實現(xiàn) :http://jyywiki.cn/pages/OS/2022/demos/minimal.S





最小的 HolloWorld程序

程序== 狀態(tài)機 == 二進制代碼 = 狀態(tài)機

如果想讓程序退出 就必須得有一段系統(tǒng)調(diào)用 syscall

補充知識點


retq 的行為 : pop 棧頂內(nèi)容彈出給到PC

棧是由寄存器 rsp控制的


編譯器與編譯優(yōu)化

什么是正確的編譯?

編譯的優(yōu)化 : 沒有對狀態(tài)機狀態(tài)進行修改f的語句能刪

C代碼 -> 匯編代碼

c編譯器 code = compile(S) S; 源代碼

void foo() {

?int x = 1;

}?

1

2

3





compiler barrier 將可以合并的代碼劃分開了


操作系統(tǒng)的一般程序




總結




操作系統(tǒng)上的程序 (什么是程序和編譯器) [南京大學2022操作系統(tǒng)-P2]的評論 (共 條)

分享到微博請遵守國家法律
安平县| 察哈| 来宾市| 田阳县| 乌海市| 自治县| 全州县| 田阳县| 马山县| 建始县| 高青县| 清水县| 陇南市| 金沙县| 惠东县| 德江县| 红河县| 沾益县| 马关县| 吴堡县| 清水县| 凌云县| 青浦区| 肃宁县| 永泰县| 沧州市| 景宁| 天峻县| 日喀则市| 武功县| 铜梁县| 宜城市| 元江| 方城县| 西藏| 龙南县| 浪卡子县| 华亭县| 木兰县| 桃江县| 九龙城区|