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