最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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]的評論 (共 條)

分享到微博請遵守國家法律
黔东| 洞头县| 咸丰县| 屯昌县| 临颍县| 正阳县| 宣恩县| 紫阳县| 浦江县| 营山县| 沧州市| 新巴尔虎左旗| 疏附县| 长沙县| 潞西市| 屏南县| 武安市| 赣榆县| 梧州市| 太和县| 沿河| 泰顺县| 武川县| 靖远县| 娄烦县| 阿克陶县| 吉安县| 吉安市| 开远市| 兴隆县| 沙湾县| 桃源县| 迁西县| 南通市| 临桂县| 社旗县| 甘孜县| 屯昌县| 遂溪县| 鄂伦春自治旗| 文昌市|