五月天青色头像情侣网名,国产亚洲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]的評論 (共 條)

分享到微博請遵守國家法律
汉沽区| 台湾省| 宣武区| 衡南县| 镶黄旗| 盘山县| 四平市| 隆尧县| 马边| 子洲县| 天水市| 佛坪县| 红原县| 宜丰县| 海淀区| 嘉善县| 绥德县| 怀安县| 洱源县| 黄山市| 东至县| 安庆市| 盐城市| 额尔古纳市| 黑河市| 洪洞县| 南充市| 朝阳市| 仪陇县| 罗江县| 客服| 兴国县| 饶阳县| 郓城县| 类乌齐县| 临高县| 石家庄市| 恩平市| 吉木萨尔县| 南平市| 巴楚县|