WORD sum WORD i int sum 0 for




































- Slides: 36






行程 – 組合語言 WORD sum WORD i int sum = 0; for (int i=0; i<10; i++) sum = sum + i; 0 0 LOAD R 1, sum LOAD R 2, i LOOP COMP R 2, 10 JGT EXIT INC R 2 ADD R 1, R 2, R 1 JMP LOOP EXIT STORE sum, R 1 STORE i, R 2 6 陳鍾誠 -

行程 – 機器語言 位址 00 00 00 04 00 08 00 0 C 00 10 00 14 00 18 00 1 C 00 20 00 24 00 28 00 2 C 00 30 組合語言 機器語言 LOAD R 1, sum LOAD R 2, i LOOP COMP R 2, TEN JGT EXIT INC R 2 ADD R 1, R 2, R 1 JMP LOOP EXIT STORE R 1, sum STORE R 2, i RETURN WORD sum 0 WORD i 0 WORD TEN 10 7 01 01 00 28 01 02 00 2 C 04 02 00 30 0 A 00 00 1 C 1 C 02 00 00 03 01 02 01 09 00 00 08 02 01 00 28 02 02 00 2 C 00 00 00 00 0 A 陳鍾誠 -

行程 – 硬體狀態 記憶體 ALU (加法器…) Control Unit (控製單元) 暫存器 LOAD R 1, sum R 1 R 2 01 01 00 28 00 00 IR=01 01 00 28 PC=0000 8 陳鍾誠 -


行程的基本元素 – 程式 位址 00 00 00 04 00 08 00 0 C 00 10 00 14 00 18 00 1 C 00 20 00 24 00 28 00 2 C 00 30 組合語言 LOAD R 1, sum LOAD R 2, i LOOP COMP R 2, TEN JGT EXIT INC R 2 ADD R 1, R 2, R 1 JMP LOOP EXIT STORE R 1, sum STORE R 2, i RETURN WORD sum 0 WORD i 0 WORD TEN 10 10 機器語言 01 01 00 28 01 02 00 2 C 04 02 00 30 0 A 00 00 1 C 1 C 02 00 00 03 01 02 01 09 00 00 08 02 01 00 28 02 02 00 2 C 00 00 00 00 0 A 陳鍾誠 -

行程的基本元素 – 資料 位址 00 00 00 04 00 08 00 0 C 00 10 00 14 00 18 00 1 C 00 20 00 24 00 28 00 2 C 00 30 組合語言 LOAD R 1, sum LOAD R 2, i LOOP COMP R 2, TEN JGT EXIT INC R 2 ADD R 1, R 2, R 1 JMP LOOP EXIT STORE R 1, sum STORE R 2, i RETURN WORD sum 0 WORD i 0 WORD TEN 10 11 機器語言 01 01 00 28 01 02 00 2 C 04 02 00 30 0 A 00 00 1 C 1 C 02 00 00 03 01 02 01 09 00 00 08 02 01 00 28 02 02 00 2 C 00 00 00 00 0 A 陳鍾誠 -








Linux 的行程狀態欄位 l 在 Linux 中,行程的狀態記錄在行程描述 器中的 state 欄位: volatile long state; /* -1 不可執行,0 可執行,>0 被停止 */ #define TASK_RUNNING #define TASK_INTERRUPTIBLE #define TASK_UNINTERRUPTIBLE #define TASK_ZOMBIE #define TASK_STOPPED 0 1 2 4 8 19 陳鍾誠 -




Linux 的內文切換(1) 行程prev的行程描述器 esp: 0 x 1 f 002100 eip: 0 x 1 b 01 c 000 行程next的行程描述器 esp: 0 x 1 a 00 c 100 0 x 1 d 00 ESP 0 x 1 c 100100 ESI data text 0 x 1 c 001100 EDI 0 x 1 b 00 a 100 EIP CPU暫存器 eip: 0 x 1 a 000 記憶體 stack 行程prev stack data text 行程next 主記憶體 暫存器 23 陳鍾誠 -

Linux 的內文切換(2) 行程prev的行程描述器 0 x 1 d 00 ESP 0 x 1 c 100100 ESI esp: 0 x 1 d 00 eip: 0 x 1 b 01 c 000 stack data text 行程next的行程描述器 esp: 0 x 1 a 00 c 100 0 x 1 c 001100 EDI 0 x 1 b 00 a 104 EIP CPU暫存器 eip: 0 x 1 a 000 記憶體 暫存器 行程prev stack data text 行程next 主記憶體 24 陳鍾誠 -

Linux 的內文切換(3) 行程prev的行程描述器 0 x 1 a 00 c 100 ESP 0 x 1 c 100100 ESI esp: 0 x 1 d 00 eip: 0 x 1 b 01 c 000 stack data text 行程next的行程描述器 0 x 1 c 001100 0 x 1 b 00 a 108 esp: 0 x 1 a 00 c 100 eip: 0 x 1 a 000 記憶體 行程prev EDI EIP CPU暫存器 stack data text 行程next 主記憶體 25 陳鍾誠 -

Linux 的內文切換(4) 行程prev的行程描述器 0 x 1 a 00 c 100 ESP 0 x 1 c 100100 ESI esp: 0 x 1 d 00 eip: 0 x 1 d 001 d 18 stack data text 行程next的行程描述器 esp: 0 x 1 a 00 c 100 eip: 0 x 1 a 000 記憶體 0 x 1 c 001100 EDI 0 x 1 b 00 a 10 c EIP CPU暫存器 行程prev stack data text 行程next 主記憶體 26 陳鍾誠 -

Linux 的內文切換(5) 行程prev的行程描述器 0 x 1 a 00 c 100 ESP 0 x 1 c 100100 ESI esp: 0 x 1 d 00 eip: 0 x 1 d 001 d 18 stack data text 行程next的行程描述器 esp: 0 x 1 a 00 c 100 0 x 1 c 001100 EDI 0 x 1 a 000 EIP CPU暫存器 stack data text eip: 0 x 1 a 000 記憶體 行程prev 行程next 主記憶體 暫存器 27 陳鍾誠 -

Linux 的內文切換(6) 行程prev的行程描述器 0 x 1 a 00 c 100 ESP 0 x 1 c 100100 ESI esp: 0 x 1 d 00 eip: 0 x 1 d 001 d 18 stack data text 行程next的行程描述器 0 x 1 c 001100 0 x 1 a 00 c esp: 0 x 1 a 00 c 100 行程prev EDI EIP CPU暫存器 stack data text eip: 0 x 1 a 000 記憶體 行程next 主記憶體 暫存器 28 陳鍾誠 -



CPU 暴衝與 I/O 暴衝 load store add store read from file CPU暴衝 等待 I/O暴衝 store increment index write to file CPU暴衝 等待 I/O暴衝 load store add store read from file CPU暴衝 … 31 陳鍾誠 -





Int sum(int a int n) int sum=0 i
Int max(int x int y)
Interface calculator public int add(int a int b)
Public void drawsquare(int x, int y, int len)
Divideint
Interface myinterface int foo(int x)
Int main int argc char argv
#include stdio.h void main()
Int factorial(int n)
Arduino const int
Int main int num 4
Voidswap
Int f (int n)
Int max
Int main int argc char argv
Ar-lst
Int cnt
Iso 22301 utbildning
Typiska novell drag
Tack för att ni lyssnade bild
Vad står k.r.å.k.a.n för
Shingelfrisyren
En lathund för arbete med kontinuitetshantering
Adressändring ideell förening
Personlig tidbok fylla i
A gastrica
Vad är densitet
Datorkunskap för nybörjare
Tack för att ni lyssnade bild
Tes debattartikel
Delegerande ledarskap
Nyckelkompetenser för livslångt lärande
Påbyggnader för flakfordon
Arkimedes princip formel
Offentlig förvaltning
Kyssande vind
Presentera för publik crossboss