Slide 1

Slide 1 text

௕୩઒ஐر $16ͱ͸Կ͔

Slide 2

Slide 2 text

௕୩઒ஐر !UPN[PI

Slide 3

Slide 3 text

ϥΠϑϫʔΫ ςοΫΧϯϑΝϨϯεӡӦࢀՃ 8FCJ04ΞϓϦ։ൃ Ϗʔϧ $16 ϨτϩήʔϜػ ిࢠ޻࡞ 
 αοΧʔ؍ઓ 
 ϨϯλϧΧʔτϨʔε ʜ σδλϧαʔΧεגࣜձࣾ ෭ஂ௕$50 !UPN[PI

Slide 4

Slide 4 text

8FC%FWFMPQNFOUXJUI 8&"3&)*3*/( IUUQXXXEHDJSDVTDPN ౦ژදࢀಓ

Slide 5

Slide 5 text

೥݄೔ʢ೔ʣʙ೔ʢՐ ɾॕʣ εϙϯαʔืूதʂʂ 
 ։࠵ܾఆ

Slide 6

Slide 6 text

ࠓ೔ͷςʔϚ

Slide 7

Slide 7 text

௕୩઒ஐر $16ͱ͸Կ͔

Slide 8

Slide 8 text

௕୩઒ஐر $16ͱ͸Կ͔ ʘͭͷࢹ఺͔Βݟͨ$16ʗ

Slide 9

Slide 9 text

୊ࡐ$16

Slide 10

Slide 10 text

୊ࡐ$16 5%

Slide 11

Slide 11 text

ॻ੶$16ͷ૑Γ͔ͨ

Slide 12

Slide 12 text

ॻ੶$16ͷ૑Γ͔ͨ ʘ໊ஶʗ

Slide 13

Slide 13 text

Ͱ͸ૣ଎ʜ

Slide 14

Slide 14 text

ϓϩάϥϜ࣮ߦ؀ڥ ࢹ఺ ͱͯ͠ͷ$16

Slide 15

Slide 15 text

Έͳ͞Μ͓ೃછΈ

Slide 16

Slide 16 text

ϓϩάϥϜ࣮ߦ؀ڥͱͯ͠ͷ$16 wϚγϯޠϓϩάϥϜͷ࣮ߦ؀ڥ

Slide 17

Slide 17 text

ϓϩάϥϜ࣮ߦ؀ڥͱͯ͠ͷ$16 wϚγϯޠϓϩάϥϜͷ࣮ߦ؀ڥ wVTSCJOQIQϚγϯޠϓϩάϥϜ

Slide 18

Slide 18 text

ϓϩάϥϜ࣮ߦ؀ڥͱͯ͠ͷ$16 wϚγϯޠϓϩάϥϜͷ࣮ߦ؀ڥ wVTSCJOQIQϚγϯޠϓϩάϥϜ w$ݴޠ‎χʔϞχοΫ‎Ϛγϯޠ ίϯύΠϧ Ξηϯϒϧ

Slide 19

Slide 19 text

ϓϩάϥϜ࣮ߦ؀ڥͱͯ͠$16 Λݟͨ࣌ͷߟ͑ํ

Slide 20

Slide 20 text

ϓϩάϥϜ࣮ߦ؀ڥͱͯ͠$16 wϓϩάϥϜΛ࣮ߦͯ͘͠ΕΔଘࡏ Λݟͨ࣌ͷߟ͑ํ

Slide 21

Slide 21 text

ϓϩάϥϜ࣮ߦ؀ڥͱͯ͠$16 wϓϩάϥϜΛ࣮ߦͯ͘͠ΕΔଘࡏ Λݟͨ࣌ͷߟ͑ํ wࣗ෼ͷ࢖͏ػೳͷΈͷཧղͰ0,
 ʢ͢΂ͯͷ໋ྩɾ࢓༷Λ஌Δඞཁ͸ແ͍ʣ

Slide 22

Slide 22 text

$16ͱ͸Կ͔ ̘̥̪

Slide 23

Slide 23 text

ΤϛϡϨʔτର৅ ࢹ఺ ͱͯ͠ͷ$16

Slide 24

Slide 24 text

ΤϛϡϨʔτର৅ͱͯ͠ͷ$16 wΤϛϡϨʔλͷ$16෦෼

Slide 25

Slide 25 text

ΤϛϡϨʔτର৅ͱͯ͠ͷ$16 w$16ͷ;Δ·͍Λιϑτ΢ΣΞͱͯ͠ ࣮૷ wΤϛϡϨʔλͷ$16෦෼

Slide 26

Slide 26 text

1)1Ͱ࣮૷ͯ͠ΈΔ

Slide 27

Slide 27 text

5%ͷϚγϯޠ Y

Slide 28

Slide 28 text

5%ͷϚγϯޠ 0QDPEF *Nʢ0QFSBOE Y

Slide 29

Slide 29 text

5%ͷϚγϯޠ 0QDPEF *Nʢ0QFSBOE Y "%%" *N

Slide 30

Slide 30 text

5%ͷϚγϯޠ 0QDPEF *Nʢ0QFSBOE Y "Ϩδελʹ*Nͷ஋Λ଍͢ "%%" *N

Slide 31

Slide 31 text

5%ͷϚγϯޠ 0QDPEF *Nʢ0QFSBOE Y "" "Ϩδελʹ*Nͷ஋Λ଍͢ "%%" *N

Slide 32

Slide 32 text

public function executeInstruction() {

Slide 33

Slide 33 text

public function executeInstruction() { $byte = $this->ram[$this->pc];

Slide 34

Slide 34 text

public function executeInstruction() { $byte = $this->ram[$this->pc]; 0QDPEF *Nʢ0QFSBOE

Slide 35

Slide 35 text

$opcode = $byte >> 4; $im = $byte & 0b00001111; public function executeInstruction() { $byte = $this->ram[$this->pc]; 0QDPEF *Nʢ0QFSBOE

Slide 36

Slide 36 text

$opcode = $byte >> 4; $im = $byte & 0b00001111; public function executeInstruction() { switch ($opcode){ case 0b0000: // ADD A, Im $this->a += $im; break; case 0b0001: } $byte = $this->ram[$this->pc];

Slide 37

Slide 37 text

$opcode = $byte >> 4; $im = $byte & 0b00001111; public function executeInstruction() { switch ($opcode){ case 0b0000: // ADD A, Im $this->a += $im; break; case 0b0001: } $this->pc++; } $byte = $this->ram[$this->pc];

Slide 38

Slide 38 text

ΤϛϡϨʔτର৅ͱͯ͠$16 Λݟͨ࣌ͷߟ͑ํ

Slide 39

Slide 39 text

ΤϛϡϨʔτର৅ͱͯ͠$16 Λݟͨ࣌ͷߟ͑ํ wର৅$16༻ʹॻ͔Εͨ
 શͯͷϓϩάϥϜΛಈ࡞ͤ͞Δଘࡏ

Slide 40

Slide 40 text

ΤϛϡϨʔτର৅ͱͯ͠$16 w$16࢓༷ͷ׬શͳཧղ Λݟͨ࣌ͷߟ͑ํ wର৅$16༻ʹॻ͔Εͨ
 શͯͷϓϩάϥϜΛಈ࡞ͤ͞Δଘࡏ

Slide 41

Slide 41 text

$16ͱ͸Կ͔ ̘̥̪

Slide 42

Slide 42 text

ిؾճ࿏ ࢹ఺ ͱͯ͠ͷ$16

Slide 43

Slide 43 text

$16Λϋʔυ΢ΣΞͱ࣮ͯ͠૷
 ͢Δ৔߹ͷߟ͑ํ

Slide 44

Slide 44 text

No content

Slide 45

Slide 45 text

5%ͷ$16໋ྩ

Slide 46

Slide 46 text

Կ͔ͱԿ͔Λ଍ͯ͠
 Ͳ͔͜ʹసૹ͢Δ 5%ͷ$16໋ྩ

Slide 47

Slide 47 text

ԿͱԿΛ଍ͯ͠Ͳ͜ʹసૹ͢Δ͔ */ ϙʔτ " Ϩδελ # Ϩδελ 065 ϙʔτ 1$ Ϩδελ Ճࢉػ ϝϞϦ ηϨΫλ

Slide 48

Slide 48 text

ԿͱԿΛ଍ͯ͠Ͳ͜ʹసૹ͢Δ͔ */ ϙʔτ " Ϩδελ # Ϩδελ 065 ϙʔτ 1$ Ϩδελ Ճࢉػ ϝϞϦ ηϨΫλ

Slide 49

Slide 49 text

*/ ϙʔτ " Ϩδελ # Ϩδελ 065 ϙʔτ 1$ Ϩδελ Ճࢉػ ϝϞϦ ηϨΫλ ԿͱԿΛ଍ͯ͠Ͳ͜ʹసૹ͢Δ͔

Slide 50

Slide 50 text

*/ ϙʔτ " Ϩδελ # Ϩδελ 065 ϙʔτ 1$ Ϩδελ Ճࢉػ ϝϞϦ ηϨΫλ ԿͱԿΛ଍ͯ͠Ͳ͜ʹసૹ͢Δ͔

Slide 51

Slide 51 text

*/ ϙʔτ " Ϩδελ # Ϩδελ 065 ϙʔτ 1$ Ϩδελ Ճࢉػ ϝϞϦ ηϨΫλ ԿͱԿΛ଍ͯ͠Ͳ͜ʹసૹ͢Δ͔

Slide 52

Slide 52 text

*/ ϙʔτ " Ϩδελ # Ϩδελ 065 ϙʔτ 1$ Ϩδελ Ճࢉػ ϝϞϦ ηϨΫλ 0QDPEF *Nʢ0QFSBOE ԿͱԿΛ଍ͯ͠Ͳ͜ʹసૹ͢Δ͔

Slide 53

Slide 53 text

*/ ϙʔτ ԼҐCJU " Ϩδελ # Ϩδελ 065 ϙʔτ 1$ Ϩδελ Ճࢉػ ϝϞϦ ηϨΫλ 0QDPEF *Nʢ0QFSBOE ԿͱԿΛ଍ͯ͠Ͳ͜ʹసૹ͢Δ͔

Slide 54

Slide 54 text

*/ ϙʔτ ԼҐCJU " Ϩδελ # Ϩδελ 065 ϙʔτ 1$ Ϩδελ Ճࢉػ ϝϞϦ ηϨΫλ ԿͱԿΛ଍ͯ͠Ͳ͜ʹసૹ͢Δ͔

Slide 55

Slide 55 text

*/ ϙʔτ ԼҐCJU " Ϩδελ # Ϩδελ 065 ϙʔτ 1$ Ϩδελ Ճࢉػ ϝϞϦ ηϨΫλ ԿͱԿΛ଍ͯ͠Ͳ͜ʹసૹ͢Δ͔

Slide 56

Slide 56 text

*/ ϙʔτ ԼҐCJU " Ϩδελ # Ϩδελ 065 ϙʔτ 1$ Ϩδελ Ճࢉػ ϝϞϦ ηϨΫλ ԿͱԿΛ଍ͯ͠Ͳ͜ʹసૹ͢Δ͔

Slide 57

Slide 57 text

ԿͱԿΛ଍ͯ͠Ͳ͜ʹసૹ͢Δ͔ */ ϙʔτ ԼҐCJU " Ϩδελ # Ϩδελ 065 ϙʔτ 1$ Ϩδελ Ճࢉػ ϝϞϦ ηϨΫλ

Slide 58

Slide 58 text

ԿͱԿΛ଍ͯ͠Ͳ͜ʹసૹ͢Δ͔ */ ϙʔτ ԼҐCJU " Ϩδελ # Ϩδελ 065 ϙʔτ 1$ Ϩδελ Ճࢉػ ϝϞϦ ηϨΫλ ͦΕΛͲ͏ܾΊΔʁ

Slide 59

Slide 59 text

ԿͱԿΛ଍ͯ͠Ͳ͜ʹసૹ͢Δ͔ */ ϙʔτ ԼҐCJU " Ϩδελ # Ϩδελ 065 ϙʔτ 1$ Ϩδελ Ճࢉػ ϝϞϦ ηϨΫλ ͦΕΛͲ͏ܾΊΔʁ ͦΕ໋͕ͦ͜ྩͳͷͩʂ

Slide 60

Slide 60 text

ԿͱԿΛ଍ͯ͠Ͳ͜ʹసૹ͢Δ͔ */ ϙʔτ ԼҐCJU " Ϩδελ # Ϩδελ 065 ϙʔτ 1$ Ϩδελ Ճࢉػ ϝϞϦ ηϨΫλ ͦΕΛͲ͏ܾΊΔʁ ͦΕ໋͕ͦ͜ྩͳͷͩʂ 0QDPEF *Nʢ0QFSBOE

Slide 61

Slide 61 text

ԿͱԿΛ଍ͯ͠Ͳ͜ʹసૹ͢Δ͔ */ ϙʔτ ԼҐCJU " Ϩδελ # Ϩδελ 065 ϙʔτ 1$ Ϩδελ Ճࢉػ ϝϞϦ ηϨΫλ 0QDPEF *Nʢ0QFSBOE

Slide 62

Slide 62 text

ԿͱԿΛ଍ͯ͠Ͳ͜ʹసૹ͢Δ͔ ্ҐCJU */ ϙʔτ ԼҐCJU " Ϩδελ # Ϩδελ 065 ϙʔτ 1$ Ϩδελ Ճࢉػ ϝϞϦ ηϨΫλ 0QDPEF *Nʢ0QFSBOE

Slide 63

Slide 63 text

ԿͱԿΛ଍ͯ͠Ͳ͜ʹసૹ͢Δ͔ ্ҐCJU */ ϙʔτ ԼҐCJU " Ϩδελ # Ϩδελ 065 ϙʔτ 1$ Ϩδελ Ճࢉػ ϝϞϦ ηϨΫλ 0QDPEF *Nʢ0QFSBOE

Slide 64

Slide 64 text

্ҐCJU */ ϙʔτ ԼҐCJU " Ϩδελ # Ϩδελ 065 ϙʔτ 1$ Ϩδελ Ճࢉػ ϝϞϦ ηϨΫλ

Slide 65

Slide 65 text

্ҐCJU */ ϙʔτ ԼҐCJU " Ϩδελ # Ϩδελ 065 ϙʔτ 1$ Ϩδελ Ճࢉػ ϝϞϦ ηϨΫλ ΫϩοΫ

Slide 66

Slide 66 text

ిؾճ࿏ͱͯ͠$16 Λݟͨ࣌ͷߟ͑ํ

Slide 67

Slide 67 text

ిؾճ࿏ͱͯ͠$16 wΫϩοΫʹैͬͯঢ়ଶભҠ͢Δճ࿏ͱͯ͠ $16໋ྩΛදݱͨ͠ଘࡏ Λݟͨ࣌ͷߟ͑ํ

Slide 68

Slide 68 text

ిؾճ࿏ͱͯ͠$16 wΫϩοΫʹैͬͯঢ়ଶભҠ͢Δճ࿏ͱͯ͠ $16໋ྩΛදݱͨ͠ଘࡏ Λݟͨ࣌ͷߟ͑ํ w࢓༷ͱ෺ཧͷύζϧΛղ͍ͯ$16࢓༷Λ ࡞Δ

Slide 69

Slide 69 text

$16ͱ͸Կ͔ ̘̥̪

Slide 70

Slide 70 text

·ͱΊ

Slide 71

Slide 71 text

·ͱΊ w$16ͱݴͬͯ΋ͲΜͳཱ৔ͰͦΕΛ
 ݟΔ͔ʹΑͬͯݟ͑ํ͕ҧ͏ʂ

Slide 72

Slide 72 text

·ͱΊ w$16ͱݴͬͯ΋ͲΜͳཱ৔ͰͦΕΛ
 ݟΔ͔ʹΑͬͯݟ͑ํ͕ҧ͏ʂ wΤϛϡϨʔλ͸೉͍͠΋ͷͰ͸ͳ͍Ͷʂ

Slide 73

Slide 73 text

·ͱΊ w$16ͱݴͬͯ΋ͲΜͳཱ৔ͰͦΕΛ
 ݟΔ͔ʹΑͬͯݟ͑ํ͕ҧ͏ʂ wΤϛϡϨʔλ͸೉͍͠΋ͷͰ͸ͳ͍Ͷʂ w$16ࣗ࡞΋໘ന͍Αʂ

Slide 74

Slide 74 text

·ͱΊ w$16ͱݴͬͯ΋ͲΜͳཱ৔ͰͦΕΛ
 ݟΔ͔ʹΑͬͯݟ͑ํ͕ҧ͏ʂ wΤϛϡϨʔλ͸೉͍͠΋ͷͰ͸ͳ͍Ͷʂ w$16ࣗ࡞΋໘ന͍Αʂ w΍ͬͯΈΑ͏ʂ

Slide 75

Slide 75 text

No content

Slide 76

Slide 76 text

͖͍࣋ͬͯͯΔͷͰ ࠙਌ձͱ͔Ͱ੠͔͚͍ͯͩ͘͞

Slide 77

Slide 77 text

͓ΘΓ !UPN[PI

Slide 78

Slide 78 text

༨ஊ

Slide 79

Slide 79 text

8IBUNBLFXJUI1)1

Slide 80

Slide 80 text

No content

Slide 81

Slide 81 text

No content

Slide 82

Slide 82 text

No content

Slide 83

Slide 83 text

No content

Slide 84

Slide 84 text

No content

Slide 85

Slide 85 text

5%ͷϓϩάϥϜ

Slide 86

Slide 86 text

ϚγϯޠͰॻ͔ΕͨϓϩάϥϜ

Slide 87

Slide 87 text

ϚγϯޠͰॻ͔ΕͨϓϩάϥϜ YG

Slide 88

Slide 88 text

Y .07" "ϨδελʹΛసૹ Y "%%" "ϨδελʹΛ଍͢ Y .07# " #Ϩδελʹ"Ϩδελͷ ஋Λసૹ Y 065# #Ϩδελͷ஋Λ*0
 ϙʔτʹग़ྗ Y G +.1Y Yʹδϟϯϓ ϚγϯޠͰॻ͔ΕͨϓϩάϥϜ

Slide 89

Slide 89 text

$16ͷ૑Γ͔ͨ ʘ໊ஶʗ

Slide 90

Slide 90 text

IUUQTXXXBNB[PODPKQEQ

Slide 91

Slide 91 text

5%ͷ໋ྩ͸શͯ
 ଍͠ࢉసૹ

Slide 92

Slide 92 text

5%ͷϚγϯޠ 0QDPEF *Nʢ0QFSBOE Y "Ϩδελʹ*Nͷ஋Λ଍͢ "%%" *N

Slide 93

Slide 93 text

5%ͷϚγϯޠ 0QDPEF *Nʢ0QFSBOE Y "" "Ϩδελʹ*Nͷ஋Λ଍͢ "%%" *N

Slide 94

Slide 94 text

5%ͷϚγϯޠ 0QDPEF *Nʢ0QFSBOE Y "Ϩδελʹ#Ϩδελͷ஋Λ
 సૹ͢Δ .07" #

Slide 95

Slide 95 text

5%ͷϚγϯޠ 0QDPEF *Nʢ0QFSBOE Y "# "Ϩδελʹ#Ϩδελͷ஋Λ
 సૹ͢Δ .07" #

Slide 96

Slide 96 text

5%ͷ໋ྩηοτ

Slide 97

Slide 97 text

Ϛγϯޠ ໋ྩ ʢχʔϞχοΫʣ ಈ࡞ 0QDPEF ʢਐʣ 0QDPEF ʢਐʣ "%%" *N "Ϩδελʹ*NΛ଍͢ C Y .07" # #Ϩδελͷ஋Λ"Ϩδελʹసૹ͢Δ C Y */" *0ϙʔτ͔Β"Ϩδελʹ஋ΛಡΈࠐΉ C Y .07" *N "Ϩδελʹ*Nͷ஋Λసૹ͢Δ C Y +.1*N *Nʹδϟϯϓ͢Δ C YG

Slide 98

Slide 98 text

Ϛγϯޠ ໋ྩ ʢχʔϞχοΫʣ ಈ࡞ 0QDPEF ʢਐʣ 0QDPEF ʢਐʣ "%%" *N "Ϩδελʹ*NΛ଍͢ C Y .07" # #Ϩδελͷ஋Λ"Ϩδελʹసૹ͢Δ C Y */" *0ϙʔτ͔Β"Ϩδελʹ஋ΛಡΈࠐΉ C Y .07" *N "Ϩδελʹ*Nͷ஋Λసૹ͢Δ C Y +.1*N *Nʹδϟϯϓ͢Δ C YG શ໋ྩ

Slide 99

Slide 99 text

$16ͷΤϛϡϨʔλ࣮૷
 ʙॳظԽฤʙ

Slide 100

Slide 100 text

class Cpu { public function __construct() { $this->ram = array_fill(0, 0b1111, 0); $this->pc = $this->a = $this->b = 0; } private $ram; private $pc; private $a; private $b; $16ͷΫϥεఆٛͱॳظԽ

Slide 101

Slide 101 text

͓ΘΓ !UPN[PI