2_Arhitektura racunara

Величина: px
Почињати приказ од странице:

Download "2_Arhitektura racunara"

Транскрипт

1 Архитектура рачунара

2 Садржај Типови података Формати инструкција Скуп инструкција Програмски доступни регистри Начини адресирања 2

3 Типови података Најчешће коришћени типови података су: целобројне величине величине у покретном зарезу алфанумерички низ нумерички низ. 3

4 Интерпретација бинарне речи Ако се бинарна реч дужине n битова, у којој су битови означени са a n-1 a n-2...a 1 a 0, интерпретира као целобројна величина без знака, онда она представља податак A чија се вредност израчунава помоћу израза n 1 А = i= Уз такав начин интерпретирања битова бинарне речи, представљају се целобројне величине без знака у опсегу 0 до 2 n i a i 4

5 Интерпретација бинарне речи Међутим, ако се иста бинарна реч интерпретира као целобројна величина са знаком у другом комплементу, онда она представља податак A чија се вредност израчунава помоћу израза n 2 A = 2 n-1 а n-1 + i=0 2 i a i Уз овакав начин интерпретирања битова бинарне речи, представљају се целобројне вредности са знаком у опсегу -2 n-1 до 2 n

6 Интерпретација бинарне речи Целобројне величине фиксне дужине се у рачунарима представљају на фиксним дужинама од 8, 16, 32 и 64 бита и њихова дужина и начин интерпретације су одређени пољем кода операције инструкције. 6

7 Величине у покретном зарезу Величине у покретном зарезу имају: поље знака (s), поље експонента (e), поље мантисе (f). Дужине су 32 или 64 бита. Пример: s e f 7

8 Величине у покретном зарезу s e f Вредност се добија на следећи начин: за e=255 и f 0, v је Not a Number без обзира на s, за e=255 и f=0, v=(-1) s, за 0<e<255, v=(-1) s 2 e-127 (1.f), за e=0 и f 0, v=(-1) s 2 e-126 (0.f) денормализовани број, за e=0 и f=0, v=(-1) s 0 (нула). 8

9 Величина податка (операнда) Byte (8) Half word (16) Word (32) Double word (64) perl gzip equake applu 9

10 Дијаграм тока извршавања инструкције Читање инструкције Декодовање инструкције и читање операнада Извршавање операције Смештање резултата не Прекид да Обрада прекида 10/18

11 Формати инструкција Форматом инструкције се специфицирају две врсте информација неопходне за извршавање инструкција програма и то: операција и тип податка са којим операција треба да се реализује и изворишни и одредишни операнди. 11

12 Изворишни и одредишни операнди Овим пољем се експлицитно специфицирају операнди. Постоје више варијанти овог поља које настају као последица следећа два елемента: број експлицитно специфицираних операнада и могуће локације операнада. 12

13 Број експлицитно специфицираних операнада Адресни формати инструкција Троадресни три експлицитна операнда Двоадресни два експлицитна операнда Једноадресни један експлицитан операнд Нулаадресни нема експлицитних операнада (?) 13

14 Троадресни формат инструкције Експлицитно су пољима А1, А2 и А3 дефинисане сва три операнда (локације?) Напомена: Код неких процесора поља А1 и А2 дефинишу изворишне операнде, а А3 одредишни операнд. Међутим, могу и А2 и А3 бити изворишни, а А1 одредишни операнд. 14

15 Троадресни формат инструкције Треба срачунати израз A = B + C; Асемблерски код: ADD A, B, C A, B и C представљају симболичке ознаке појединих операнада. Детаљу и секције која се односи на начине адресирања. 15

16 Двоадресни формат инструкције Eксплицитно су пољима А1 и А2 дефинисанa два изворишна операнда. Одредиште се не дефинише експлицитно већ се користи или А1 или А2. 16

17 Двоадресни формат инструкције Треба срачунати израз C = A + B; Асемблерски код: MOV A, C ADD C, B 17

18 Двоадресни формат инструкције Добра страна двоадресног формата у односу на троадресни формат је да је инструкција краћа. Лоша страна формата је потреба за већим бројем инструкција. 18

19 Једноадресни формат инструкције Експлицитно се пољем А1 дефинише један изворишни операнд. Код ових процесора постоји посебан регистар процесора који се обично назива акумулатор који представља једно имплицитно извориште и имплицитно одредиште. 19

20 Једноадресни формат инструкције Треба срачунати израз C = A + B; Асемблерски код: LOAD А ADD B STORE C 20

21 Једноадресни формат инструкције Добра страна једноадресног формата у односу на двоадресни формат је да је инструкција краћа. Лоша страна је да је потребно још више инструкције да се реализује срачунавање истог израза. 21

22 Нулаадресни формат инструкције Постоји само поље кода операције и не постоји ни једно поље којим би се експлицитно дефинисале изворишне и одредишне операнде. Врх стека је имплицитно извориште за оба операнда и имплицитно одредиште за резултат. *Изузетак су две инструкције са једним операндом: PUSH којом се операнд смешта на врх стека POP којом се операнд са врха стека смешта на одредиште 22

23 Нулаадресни формат инструкције Треба срачунати израз C = A + B; Асемблерски код: PUSH А PUSH B ADD POP C 23

24 Нулаадресни формат инструкције Добра страна нулаадресног формата у односу на једноадресног формат је да је инструкција краћа. Лоша страна је да је потребно још више инструкције да се реализује срачунавање истог израза. (Сви коментари су исти?) 24

25 Број операнада Уколико је процесор са неким форматом инструкција то не значи да све инструкције користе све операнде. Код неких инструкција или начина адресирања могуће је да су неки операнди вишак и та поља се онда не користе за ту намену. 25

26 Наредна инструкција? По завршетку извршавања текуће инструкције одакле узети следећу инструкције? Одређено је текућом вредношћу регистра PC. Код читања инструкције као адреса меморијске локације увек се користи текућа вредност регистра PC, која се том приликом инкрементира. Резултат => секвенцијално читати и извршавати. 26

27 Наредна инструкција? Постоји потреба за гранањем у програму. Не треба прећи на прву следеће инструкције у секвенци, већ на неку инструкцију ван секвенце. То се постиже инструкцијама скокова, које треба да се убаце у делове програма када треба одступити од секвенцијалног извршавања програма. Ефекат инструкција скокова је уписивање нове вредности у програмски бројач PC. 27

28 Могуће локације операнада Могуће локације операнада су меморијске локације, регистри процесора, непосредне величине у инструкцији. Више варијанти реализације овог поља,а мотиви код његовог дефинисања су да: овај део буде краћи да би се мање меморије заузимало за програме и брже очитавале инструкције (адреса меморије, непосредна величина или адреса регистра), се брже долази до операнада (меморије, непосредна величина или регистар), се пружи подршка за могућу примену неких техника реализације процесора (pipeline) 28

29 Врсте архитектура На основу могућих локација операнада разликују се три врсте архитектура: меморија меморија, (тро, дво, једно, и нулаадресни) меморија регистар, (двоадресни) регистар регистар. (троадресни) 29

30 Скуп инструкција Reduced Instruction Set Computers (RISCs) Једноставне инструкције Флексибилне Већи проток Брже извршавање Complex Instruction Set Computers (CISCs) Хардверска подршка за програмске језике вишег нивоа Компактни програми 30

31 RISC Само Load/Store инструкције приступају директно меморији Рад са подацима на нивоу трансфера регистар-регистар Једноставни начини адресирања Сви формати инструкција су исте дужине Инструкције раде јеноставне операције Обично једна инструкција по циклусу (једноставна инструкција) 31

32 CISC Већина инструкција има приступ меморији Велики број начина адресирања Инструкције имају различиту дужине Инструкције обављају и једноставне комплексне операције Више циклуса по инструкцији (комплексне инструкције) 32

33 Скуп инструкција Скуп стандардних инструкција чине: аритметичке инструкције, логичке инструкције, инструкције померања и ротирања, инструкције скока, инструкције преноса,, мешовите инструкције 33

34 Аритметичке инструкције Аритметичким инструкцијама се реализују стандардне аритметичке операције попут сабирања, одузимања, множења, дељења, инкрементирања, декрементира, и поређења. Неки мнемоници би били: ADD SUB MUL DIV INC DEC CMP 34

35 Аритметичке инструкције - ADD Tроадресним форматом инструкција: ADD а, b, c ADD је симболички означено поље кода операције, а са а, b и c спецификације два изворишна (bи c) и једног одредишног операнда (a). bи c могу да буду било која комбинација регистара процесора, меморијских локација и непосредних величина у инструкцији. a не може да буде непосредна величина. 35

36 Аритметичке инструкције - ADD Најчешће комбинације: а, bи c су регистри процесора, аје регистар процесора, bје регистар процесора и c je непосредна величина, а, b и c су меморијске локације, итд. 36

37 Аритметичке инструкције - ADD Двоадресним форматом инструкција: ADD а, b ADD је симболички означено поље кода операције, а са а, b спецификације два изворишна операнда од којих је један и одредишни операнд (а у примеру). bможе да буду регистар процесора, меморијска локација и непосредна величина. a не може да буде непосредна величина. 37

38 Аритметичке инструкције - ADD Најчешће комбинације: аи bсу регистри процесора, a је регистар процесора, b је непосредна величина, а и b су меморијске локације (ретко) итд. 38

39 Аритметичке инструкције - ADD Једноадресним форматом инструкција: ADD а ADD је симболички означено поље кода операције, а са а спецификација другог изворишног операнда,, при чему је акумулатор имплицитно извориште првог операнда и имплицитно одредиште резултат. 39

40 Аритметичке инструкције - ADD Најчешће комбинације: аје регистар процесора а је меморијска локација аје непосредна величина (код неких инструкција није дозвољено) 40

41 Аритметичке инструкције - ADD Нулаадресним форматом инструкција: ADD ADD је симболички означено поље кода операције, при чему је врх стека имплицитно извориште за оба изворишна операнда и имплицитно одредиште. Током извршавања ове инструкције са врха стека се имплицитно чита најпре први а потом и други изворишни операнд, затим се над њима реализује операција сабирања и на крају се добијени резултат смешта на врх стека као имплицитно одредиште. 41

42 Аритметичке инструкције - ADD Слична је ситуација и са форматима инструкција за операције одузимања, множења и дељења. 42

43 Аритметичке инструкције - INC Посебан случај операције сабирања код које је имплицитно одређено да је вредност која се сабира једнака 1. Двоадресни формат: INC а, b INC је симболички означено поље кода операције,, а са а и bспецификације изворишног (b) и одредишног операнда (a). *Нема троадресни формат. Односно поље намењено за други изворишни операнд се не користи. 43

44 Аритметичке инструкције - INC Најчешће комбинације: аи bсу регистри процесора, aје регистар процесора, bје непосредна величина, аи bсу меморијске локације, итд. 44

45 Аритметичке инструкције - INC Једноадресним форматом инструкција: INC а INC је симболички означено поље кода операције, а са а спецификација изворишног и одредишног операнда.. * Некада је акумулатор имплицитно одредиште. 45

46 Аритметичке инструкције - INC Најчешће комбинације: а је меморијска локација аје регистар процесора, 46

47 Аритметичке инструкције - INC Нулаадресним форматом инструкција: INC INC је симболички означено поље кода операције, при чему је врх стека имплицитно извориште операнда и имплицитно одредиште.. Током извршавања ове инструкције са врха стека се имплицитно чита најпре операнд, затим се над њим реализује операција увећавања за један и на крају се добијени резултат смешта на врх стека као имплицитно одредиште. 47

48 Аритметичке инструкције - INC Безадресним форматом инструкција: INC INC је симболички означено поље кода операције, при чему је акумулатор имплицитно извориште и имплицитно одредиште.. Понекада се означава са INCA Нулаадресни <> Безадресни 48

49 Аритметичке инструкције - INC Нулаадресни формат: INC; // скине са стека у акумулатор // увећа акумулатор за један // сними акумулатор на стек Безадресни формат: : INC; // увећа акумулатор за један 49

50 Аритметичке инструкције - CMP Посебан случај операције одузимања код које се резултат одузимања никуда не уписује. Постављање индикатора N, Z, C и V у програмској статусној речи PSW процесора. Ова инструкција се назива аритметичко упоређивање. Формати инструкције упоређивања за процесоре са двоадресним, једноадресним и нулаадресним форматима инструкција су: CMP a, b CMP a CMP 50

51 Аритметичке инструкције - CMP Индикатор N се поставља на вредност 1 уколико је резултат извршене операције одузимања негативан, док се у супротном случају поставља на вредност 0. Усвојено правило је да се индикатор N поставља на вредност најстаријег бита резултата операције одузимања.. Индикатор Z се поставља на вредност 1 уколико је резултат извршене операције одузимања нула, док се у супротном случају поставља на вредност 0. Ови индикатори се поставља за све типове података. 51

52 Аритметичке инструкције - CMP Индикатор C се поставља на 1 уколико је први операнд мањи од другог операнда и представља позајмицу, док се у супротном случају поставља на 0. Индикатор V се поставља на вредност 1 уколико дошло до прекорачења (изласка из) опсега приликом операције одузимања. 52

53 Логичке инструкције Логичким инструкцијама се реализују стандардне логичке операције И, ИЛИ, ексклузивно ИЛИ и комплементирања. Мнемоници би били: AND OR XOR NOT Могу се јавити у свим форматима, осим инструкције NOT која нема троадресни формат. 53

54 Логичке инструкције - TST Посебан случај операције И код које се резултат никуда не уписује. Постављање индикатора N и Z у регистру PSW. Ова инструкција се назива логичко упоређивање. Формати инструкције упоређивања за процесоре са двоадресним,, једноадресним и нулаадресним форматима инструкција су: TST a, b TST a TST 54

55 Инструкције померања Инструкцијама померања се реализују операције аритметичког и логичког померање удесно и улево, и ротација удесно и улево. Мнемоници би били: ASR ASL LSR LSL ROR ROL (RORC) (ROLC) C A 0 0 A n-1 C A n-1 A n-2 A n-3... A i+1 A i A i-1... A 2 A 1 A 0 F n-1 F n-2 F n-3... F i+1 F i F i-1... F 2 F 1 F 0 C A n-1 A n-2 A n-3... A i+1 A i A i-1... A 2 A 1 A 0 F n-1 F n-2 F n-3... F i+1 F i F i-1... F 2 F 1 F 0 C A n

56 Инструкције померања -ASR Формати инструкције аритметичког померања удесно за процесоре са двоадресним, једноадресним и нулаадресним форматима инструкција су: ASR a, b ASR a ASR Са ASR је симболички означено поље кода операције, а са а и bспецификације одредишних и изворишних операнада. 56

57 Померање за једно место ASR C 0 LSR C C SL 0 ROR C C ROL RORC C C ROLC

58 Инструкције преноса - MOV Двоадресни формат: MOV а, b MOV је симболички означено поље кода операције, а са а и bспецификације одредишног и изворишног операнда, респективно. *Нема троадресни формат. Односно поље намењено за други изворишни операнд се не користи. 58

59 Инструкције преноса - MOV Најчешће комбинације: аи bсу меморијске локације аи bсу регистри процесора, аје регистар процесора, bје непосредна величина, итд. 59

60 Инструкције преноса - LOAD/STORE Једноадресни формат: LOAD а STORE b Са LOAD и STORE је симболички означено поље кода операције, а са aи b спецификације изворишног и одредишног операнда,, респективно.. Инструкцијом LOAD се операнд са изворишта a преноси у акумулатор као имплицитно одредиште, Инструкцијом STORE садржај акумулатора као имплицитно извориште преноси у одредиште b. 60

61 Инструкције преноса - LOAD/STORE Најчешће комбинације: b није непосредна величина. 61

62 Инструкције преноса - IN/OUT Двоадресни формат: IN regper, regproc OUT regproc, regper Са IN је симболички означено поље кода операције за пренос из регистра контролера периферије у регистар процесора,, при чему је са regperдиректно дата адреса регистра контролера периферије, док је са regproc директно дата адреса регистра процесора, са OUT је симболички означено поље кода операције за пренос из регистра процесора у регистар контролера периферије. 62

63 Инструкције преноса - IN/OUT Једноадресни формат: IN regper OUT regper Са IN је симболички означено поље кода операције за пренос из регистра контролера периферије у акумулатор,, при чему је са regper директно дата адреса регистра контролера периферије, са OUT је симболички означено поље кода операције за пренос из акумулатора у регистар контролера периферије. 63

64 Инструкције преноса - PUSH/POP Нулаадресни формат: PUSH а POP b Са PUSH и POP је симболички означено поље кода операције, а са aи b спецификације изворишног и одредишног операнда,, респективно.. Инструкцијом PUSH се операнд са изворишта а преноси на стек као имплицитно одредиште, Инструкцијом POP садржај са стека као имплицитно извориште преноси у одредиште b. 64

65 Инструкције преноса - PUSH/POP Најчешће комбинације: b није непосредна величина. 65

66 Варијанте раста стека Стек може да расте (да се попуњава) ка: Нижим меморијским локацијама Вишим меморијским локацијама Показивач на врх стека може да указује на: Прву слободну локацију Попуњену попуњену локацију 66

67 Варијанта: навише, на слободну SP=0152 R5=1234 R7=5555 почетно стање SP=0153 R5=1234 R7=5555 PUSH R5 SP=0152 R5=1234 R7=1234 POP R7 67

68 Варијанта: навише, на заузету SP=0152 R5=1234 R7=5555 почетно стање SP=0153 R5=1234 R7=5555 PUSH R5 SP=0152 R5=1234 R7=1234 POP R7 68

69 Варијанта: наниже, на заузету SP=0152 R5=1234 R7=5555 почетно стање SP=0151 R5=1234 R7=5555 PUSH R5 SP=0152 R5=1234 R7=1234 POP R7 69

70 Варијанта: наниже, на слободну SP=0152 R5=1234 R7=5555 почетно стање SP=0151 R5=1234 R7=5555 PUSH R5 SP=0152 R5=1234 R7=1234 POP R7 70

71 Инструкције скока Инструкције скока се сврставају у следеће групе: инструкције безусловног скока, инструкције условног скока, инструкције скока на потпрограм, повратка из потпрограма, инструкција скока у прекидну рутину,, инструкција повратка из прекидне рутине. 71

72 Инструкција безусловног скока Формат инструкције безусловног скока је JMP adresa при чему је са JMP симболички означено поље кода операције, а са adresa поље са вредношћу адресе меморијске локације на којој се налази инструкција на чије извршавање треба прећи. Извршавања инструкције JMP се састоји у уписивању вредност из поља adresa у програмски бројач PC. 72

73 Инструкција безусловног скока У случају када адреса инструкције на коју треба скочити није позната у време превођења, већ се израчунава током извршавања програма, користи се инструкција безусловног скока чији је формат JMPIND а при чему је са JMPIND симболички означено поље кода операције, а са а поље са спецификацијом адресе меморијске локације на којој се налази инструкција на чије извршавање треба прећи. 73

74 Инструкција условног скока Формат инструкције условног скока је CODE disp при чему је са CODE симболички означено поље кода једне од операције безусловног скока, а са disp поље са вредношћу помераја са којим треба направити релативан скок у односу на текућу вредност програмског бројача уколико је услов за скок испуњен. 74

75 Инструкције условног скока инструкција значење услов BEQL скок на једнако Z = 1 BNEQ скок на неједнако Z = 0 BGRTU скок на веће него (без знака) C Z = 0 BGREU скок на веће него или једнако (без знака) C = 0 BLSSU скок на мање него (без знака) C = 1 BLEQU скок на мање него или једнако (без знака) C Z = 1 BGRT скок на веће него (са знаком) (N В) Z = 0 BGRE скок на веће него или једнако (са знаком) N V = 0 BLCC скок на мање него (са знаком) (N В) = 1 BLEQ скок на мање него или једнако (са знаком) (N В) Z = 1 BNEG скок на N = 1 N = 1 BNNG скок на N = 0 N = 0 BOVF скок на V = 1 V = 1 BNVF скок на V = 0 V = 0 75

76 Инструкције условног скока - алтернатива инструкција значење услов BZ скок на једнако Z = 1 BNZ скок на неједнако Z = 0 BC скок на мање него (без знака) C = 1 BNC скок на веће него или једнако (без знака) C = 0 BN скок на N = 1 N = 1 BNN скок на N = 0 N = 0 BV скок на V = 1 V = 1 BNV скок на V = 0 V = 0 76

77 Инструкције условног скока Мање Мање или једнако Веће Веће или једнако Једнако Није једнако fp int 77

78 Дужина поља disp int fp Број бита потребних за померај 78

79 Инструкције скока на потпрограм Формат инструкције скока на потпрограм је JSR adresa при чему је са JSR симболички означено поље кода операције, а са adresa поље са вредношћу адресе меморијске локације на којој се налази прва инструкција потпрограма на чије извршавање треба прећи. Извршавање инструкције JSR се састоји у стављању на стек текуће вредности програмског бројача PC и уписивању вредности из поља adresa у програмски бројач PC. 79

80 Инструкције повратка из потпрограма Формат инструкције повратка из потпрограма је RTS при чему је са RTS симболички означено поље кода операције. Инструкција RTS мора да буде задња инструкција потпрограма. Извршавање инструкције RTS се састоји у скидању вредности са стека и уписивању у програмски бројач PC. 80

81 Скок на потпрограм JSR JSR RTS RTS SP=0551 SP=0552 SP=0553 SP=0552 SP=

82 Инструкција скока на прекидну рутину Формат инструкције скока на прекидну рутину је INT num при чему је са INT симболички означено поље кода операције, а са numпоље са вредношћу адресе меморијске локације на којој се налази прва инструкција прекидне рутине. Извршавање инструкције INT се састоји у стављању на стек текуће вредности програмског бројача PC, програмске статусне речи PSW, а у неким реализацијама процесора и свих програмски доступних регистара, и уписивању вредности из поља adresa у програмски бројач PC. 82

83 Инструкција повратка из прекидне рутине Формат инструкције повратка из повратка из прекидне рутине је RTI при чему је са RTI симболички означено поље кода операције. Инструкција RTI мора да буде задња инструкција прекидне рутине. Извршавање инструкције RTI се састоји у скидању вредности са стека и уписивању у програмски доступне регистре, уколико се ради о реализацијама процесора код којих се приликом скока на прекидну рутину ови регистри чувају на стеку, програмску статусну реч и програмски бројач PC. 83

84 Скок на прекид INT # F F36 RTI SP= PSW SP= PSW SP=

85 Мешовите инструкције У скупу инструкција могу да се нађу и инструкције којима се омогућава задавање различитих режима рада рачунара, пружа подршка за тестирање програма итд. Пример: INTE INTD TRPE TRPD NOP итд. 85

86 Мешовите инструкције - INTE Формат инструкције задавања режима рада у коме се реагује на захтеве за прекид је INTE при чему је са INTE симболички означено поље кода операције. Извршавање инструкције INTE се састоји у уписивању вредности 1 у разред I регистра PSW. 86

87 Мешовите инструкције - INTD Формат инструкције задавања режима рада у коме се не реагује на захтеве за прекид је INTD при чему је са INTD симболички означено поље кода операције. Извршавање инструкције INTD се састоји у уписивању вредности 0 у разред I регистра PSW. 87

88 Мешовите инструкције - TRPE Формат инструкције задавања режима прекид после сваке инструкције је TRPE при чему је са TRPE симболички означено поље кода операције. Извршавање инструкције TRPE се састоји у уписивању вредности 1 у разред T регистра PSW. 88

89 Мешовите инструкције - TRPD Формат инструкције заустављање режима прекид после сваке инструкције је TRPD при чему је са TRPD симболички означено поље кода операције. Извршавање инструкције TRPDE се састоји у уписивању вредности 0 у разред T регистра PSW. 89

90 Мешовите инструкције Формат инструкције без дејства је NOP при чему је са NOP симболички означено поље кода операције. Извршавање инструкције NOP се састоји само у читању инструкције и инкрементирању програмског бројача PC, после чега се прелази на извршавање следеће инструкције. 9095

91 Вероватноћа појединих инструкција Ранг Инструкција Проценат 1 load 22% 2 conditional branch 20% 3 compare 16% 4 store 12% 5 add 8% 6 and 6% 7 sub 5% 8 move reg-reg 4% 9 call 1% 10 return 1% Торал 96% 8086 инструкције 91

92 Програмски бројач PC Регистар чија се вредност имплицитно користи као адреса меморијске локације са које се чита инструкција. Вредност програмског бројача PC се мења: имплицитно приликом сваког читања инструкције када се врши инкрементирање програмског бројача PC експлицитно инструкцијама скока када се у програмски бројач бројач PC уписује нова вредност. 92

93 Регистри података DR Регистри података се уводе да би се убрзао приступ подацима, тако што би се током извршавања програма приступало подацима у регистрима података процесора уместо у меморијским локацијама, а резултат је чињенице да је приступ регистрима скоро за ред величине бржи од приступа меморијским локацијама. Регистрима података се приступа програмским путем инструкцијама преноса и аритметичким, логичким и померачким инструкцијама. 93

94 Адресни регистри AR Садржај адресног регистра користи: као адреса меморијске локације са које се чита или у коју се уписује податак; инструкцијом скока JMPIND када се садржај адресног регистра користи као адреса скока коју треба уписати у програмски бројач PC. Адресни регистри се уводе да би се убрзао приступ адресама, тако што би се током извршавања програма приступало адресама у адресним регистрима процесора уместо у меморијским локацијама, а резултат је чињенице да је приступ регистрима скоро за ред величине бржи од приступа меморијским локацијама. 94

95 Базни регистри BR Збир садржаја специфицираног базног регистра и помераја код базног адресирања, односно базног регистра, индексног регистра и помераја код базно-индексног адресирања, представља адресу меморијске локације на којој се налази изворишни или одредишни операнд.. Користи се код базног и базно-индексног адресирања 95

96 Индексни регистри XR Збир садржаја специфицираног индексног регистра и помераја код индексног адресирања, односно базног регистра, индексног регистра и помераја код базно-индексног адресирања, представља адресу меморијске локације на којој се налази изворишни или одредишни операнд.. Користе се код индексног и базно-индексног адресирања. 96

97 Регистри опште намене GPR Користе на исти начин као регистри података, адресни регистри, базни регистри и индексни регистри. Регистри опште намене GPR се јављају код оних процесора код којих не постоје посебни регистри података, адресни регистри, базни регистри и индексни регистри. Могу да користе било који од регистара уз било које адресирање. 97

98 Регистар PSW Стандардна програмска статусна реч процесора састављена од одређеног броја битова, који се обично називају индикатори. Битови програмске статусне речи PSW се независно постављају и користе по правилима дефинисаним посебно за сваки бит I V C Z N Пример: Структура регистра PSW 98

99 Битови регистра PSW N бит који се поставља на 1 у случају да је резултат операције негативан, Z бит који се поставља на 1 у случају да је резултат операције једнак 0, C бит који се поставља на 1 у случају преноса/позајмице у аритметици целобројних величина без знака * V бит који се поставља на 1 у случају прекорачења у аритметици целобројних величина са знаком * I бит који је једнак 1 ако треба да буду дозвољени маскирајући прекиди. 99

100 Битови регистра PSW *Ради једноставније и униформније реализације код неких процесора бити C и V се код аритметичких инструкција увек постављају и то на основу излаза ALU јединице. Бит C на највиши бит преноса C n. C = C n Бит V на разлику највиших бит преноса C n и C n-1. V = C n XOR C n-1 100

101 Регистар SP Указивач на врх стека када је стек је организован у оперативној меморији. Подршка за реализацију LIFO структуре података. регистра SP се користи као адреса меморијске локације у коју треба уписати податак или из које треба очитати податак. Ажурирање и то инкрементирање или декрементирање садржаја регистра SP. 101

102 Начини адресирања Начини адресирања одређују да ли је операнд садржај неке меморијске локације, неког од регистара података или регистара опште намене процесора или непосредна величина у самој инструкцији. Начини адресирања специифицирају и како треба формирати адресу меморијске локације уколико је операнд садржај неке меморијске локације. 102

103 Меморијско директно адресирање Меморијско директно адресирање је адресирање код кога се операнд налази у меморијској локацији, а у адресном делу инструкције у коме се специфицира операнд, поред групе битова којима се задаје начин адресирања (АМ), постоји и група битова којима се задаје адреса меморијске локације (adr). 103

104 Меморијско директно адресирање PC MEMORIJA MAR MBR IR SRC/DST OC AM adr X Y ALU Z 104

105 Меморијско индиректно адресирање Меморијско индиректно адресирање је адресирање код кога се операнд налази у меморији, а у адресном делу инструкције у коме се специфицира операнд, поред групе битова којима се задаје начин адресирања (АМ), постоји и група битова којима се задаје адреса меморијске локације на којој се налази адреса операнда. 105

106 Меморијско индиректно адресирање PC MEMORIJA MAR MBR IR SRC/DST OC AM adr X Y ALU Z 106

107 Непосредно адресирање Непосредно адресирање је адресирање код кога се операнд налази непосредно у самој инструкцији. 107

108 Непосредно адресирање PC MEMORIJA MAR MBR IR SRC OC AM immed X Y ALU Z 108

109 Регистарско директно адресирање Регистарско директно адресирање је адресирање код кога се операнд налази у једном од регистара података или регистара опште намене процесора. Код оних процесора код којих постоје посебно регистри података (DR), адресни регистри (AR), базни регистри (BR) и индексни регистри (XR), операнд се налази у једном од регистара података (DR), док код оних процесора код којих постоје само регистри опште намене (GPR), операнд се налази у једном од регистара опште намене. 109

110 Регистарско директно адресирање PC MEMORIJA MAR MBR IR SRC/DST OC AM dr 123 X Y GPR ALU Z 110

111 Регистарско директно адресирање PC MEMORIJA MAR MBR IR SRC/DST OC AM dr 123 X Y DR ALU AR Z BR XR 111

112 Регистарско индиректно адресирање Регистарско индиректно адресирање је адресирање код кога се операнд налази у меморијској локација, а адреса меморијске локације се налази у једном од адресних регистара или регистара опште намене процесора.. 112

113 Регистарско индиректно адресирање PC MEMORIJA MAR MBR IR SRC/DST OC AM ar 123 X Y GPR ALU Z 113

114 Регистарско индиректно адресирање PC MEMORIJA MAR MBR IR SRC/DST OC AM ar 123 X Y DR ALU AR Z BR XR 114

115 Регистарско индиректно са померајем Регистарско индиректно адресирање са померајем је адресирање код кога се операнд налази у меморији, а адреса меморијске локације се добија сабирањем садржаја једног од регистара опште намене и помераја. 115

116 Регистарско индиректно са померајем PC MEMORIJA MAR MBR IR SRC/DST OC AM gpr pom X Y GPR ALU ADD Z 116

117 Релативно адресирање Релативно адресирање са померајем је адресирање код кога се операнд налази у једној од меморијских локација, а адреса меморијске локације се добија сабирањем садржаја програмског бројача PC и помераја. 117

118 Релативно адресирање са померајем PC MEMORIJA MAR MBR IR SRC/DST OC AM pom X Y ALU ADD Z 118

119 Базно адресирање са померајем Базно адресирање са померајем је адресирање код кога се операнд налази у меморији, а адреса меморијске локације се добија сабирањем садржаја једног од базних регистара и помераја. 119

120 Базно адресирање са померајем PC MEMORIJA MAR MBR IR SRC/DST OC AM br pom X Y DR AR ADD ALU Z BR XR 120

121 Индексно адресирање са померајем Индексно адресирање са померајем је адресирање код кога се операнд налази у меморији, а адреса меморијске локације се добија сабирањем садржаја једног од индексних регистара и помераја. *Уколико је величина операнда већа од онога што може у једном циклусу да се прочита из меморије индексни регистар може да се помножити величином операнда. У том случају се адресирање назива скалирано. 121

122 Индексно адресирање са померајем PC MEMORIJA MAR MBR IR SRC/DST OC AM xr pom X Y DR AR ADD ALU Z BR XR 122

123 Базно-индексно адресирање са померајем Базно индексно адресирање са померајем је адресирање код кога се операнд налази у меморији, а адреса меморијске локације се добија сабирањем садржаја једног од базних регистара, једног од индексних регистара и помераја или сабирањем садржаја два регистра опште намене процесора и помераја. *Уколико је величина операнда већа од онога што може у једном циклусу да се прочита из меморије индексни регистар може да се помножити величином операнда. У том случају се адресирање назива скалирано. 123

124 Базно-индексно адресирање са померајем PC MEMORIJA MAR MBR IR SRC/DST OC AM br xr pom X Y DR AR ADD ALU Z BR XR ADD 124

125 Базно-индексно адресирање са померајем PC MEMORIJA MAR MBR IR SRC/DST OC AM br xr pom X Y GPR ALU ADD ADD Z 125

126 Регистарска индиректна са ауто inc/dec Регистарска индиректна адресирања са аутоинкрементирањем и аутодекрементирањем су веома слична регистарском индиректном адресирању, јер се и код ових адресирања као и код регистарског индиректног адресирања операнд налази у једној од меморијских локација, а адреса меморијске локације се налази у једном од регистара. 126

127 Регистарска индиректна са ауто inc/dec У зависности од тога да ли се прво инкрементира регистар па после тога његов садржај користи као адреса или се прво садржај регистра користи као адреса па се после тога инкрементира, регистарско индиректно адресирање са аутоинкрементирање се јавља као преинкремент адресирање и постинкремент адресирање, респективно. 127

128 Адресирања Начин адресирања Пример Значење Типично коришћење Меморијско директно (memdir) Load 100h ACC <= Mem[100h] Приступа статичким подацима Меморијско индиректно Load (100h) ACC <= Приступа коришћењем показивача (memindir) Mem[Mem[100h]] Непосредно Load #100h ACC <= 100h За константе (imm) Регистарско дректно (regdir) Load R1 ACC <= R1 Када је податак регистру Регистарско индиректно Load (R1) ACC <= Mem[R1] Прступа помоћу показивача који је у (regind) регистру Регистарско индиректно Load (R1)100h ACC <= За приступлокалним променљивама са померајем(reginddisp) Mem[R1+100h] (Симулира меморијско директно (за R1=0) и регистарско индиректно (за померај једнак нули) Релативно (rel) Load (PC)100h ACC <= Mem[PC+100h] Приступ литералима (константама) и за релативне скокове 128

129 Адресирања Начин адресирања Пример Значење Типично коришћење Базно са померајем (base) Load (BP)100h ACC <= Mem[BP+100h] Приликом приступа локалним подацима у текућем блоку Индексно са померајем Load (XR)100h ACC <= Приликом приступа елементима низа (index) Mem[XR+100h] Базно-индексно (baseindex) Load (BP,XR) ACC <= Mem[BP+XR] Приликом приступа елементима низа који су у локалном блоку Аутоинкрементирање Load (R1)+ ACC <= Mem[R1]; За обилазан елемената низа који је (posrinc) R1 <= R1 + d почев од адресе на коју указује регстар како би се остварило померање на нардни елемент Аутодекрементирање Load -(R1) R1 <= R1 -d; За обилазан елемената низа за (predec) ACC <= Mem[R1] померањем на претходни елемент. auto inc/dec могу симулирати стек 129

130 Адресирања 130

131 Распоред бајтова (Byte ordering) Уколико се посматра целобројна величина дужине два бајта да ли се у меморију смешта прво млађи или старији бајт? Корите се два основна начина за смештање: Уколико млађи бајт смешта на нижу адресу ради се о little endian поретку. Уколико старији бајт смешта на нижу адресу ради се о big endian поретку. 131

132 Распоред бајтова Пример: у меморију почев од адресе 0x100 је потребно сместити целобројну величину дужине 4 бајта 0x Уколико млађи бајт иде на нижу адресу: : Адреса Little endian Уколико старији бајт иде на нижу адресу: Адреса Big endian

133 Пример MIPS MIPS (Microprocessor without Interlocked Pipeline Stages): MIPS Technologies (некада MIPS Computer Systems, Inc.) Reduced Instruction Set Computer (RISC) Фиксна дужина инструкција Load/Store архитектура Рад са подацима на нивоу регистар-регистар Инструкције користе до 3 регистра Регистара опште намене има 16 (R0=0), дужине 32 бита Подржана оба распореда бајтова: big endian + little endian Постоји и 64 битни, који се мало разликује

134 MIPS формат инструкција Три формата: Register (R-Type) Op 6 Rs 5 Rt 5 Rd 5 sa 5 funct 6 Immediate (I-Type) Op 6 Rs 5 Rt 5 imm 16 Jump (J-Type) Op 6 imm 26 Све инструкције су дужине 32 бита. 134

135 MIPS формат инструкција Op: код операције (opcode) Специфицира операцију коју обавља инструкције Такође специфицира и формат инструкције funct: код функције проширује код операције Проширује 2 6 = 64 функција за исто поље кода операције MIPS користи opcode 0 за R тип инструкција Rs, Rt: први и други изворишни регистар (R тип) Rt: одредишни регистар (за I тип) Rd: одредишни регистар (R тип) sa: за колико треба померити операнд (померачке) imm: непосредна величина (кратка константа) или померај код скокова 135

136 MIPS начини адресирања Непосредно адресирање Op 6 Rs 5 Rt 5 imm 16 Операнд је константа Регистарско директно адресирање Op 6 Rs 5 Rt 5 Rd 5 sa 5 funct 6 Операнд је у регистру Register Регистарско индиректно са померајем Операнд је у меморији (load/store) Op 6 Rs 5 Rt 5 imm 16 Register = Base address + Byte Halfword Word 136

137 MIPS скуп инструкција (део) Категорија Инструкција Пример Значење Коментар Arithmetic add add $s1, $s2, $s3 $s1 = $s2 + $s3 Three register operands subtract sub $s1, $s2, $s3 $s1 = $s2 - $s3 Three register operands add immediate addi $s1, $s2, 20 $s1 = $s Used to add constants Data transfer load word lw $s1, 20($s2) $s1 = Memory[$s2 + 20] Word from memory to register store word sw $s1, 20($s2) Memory[$s2 + 20] = $s1 Word from register to memory load half lh $s1, 20($s2) $s1 = Memory[$s2 + 20] Halfword memory to register load half unsigned lhu $s1, 20($s2) $s1 = Memory[$s2 + 20] Halfword memory to register store half sh $s1, 20($s2) Memory[$s2 + 20] = $s1 Halfword register to memory load byte lb $s1, 20($s2) $s1 = Memory[$s2 + 20] Byte from memory to register load byte unsigned lbu $s1, 20($s2) $s1 = Memory[$s2 + 20] Byte from memory to register store byte sb $s1, 20($s2) Memory[$s2 + 20] = $s1 Byte from register to memory load linked word ll $s1, 20($s2) $s1 = Memory[$s2 + 20] Load word as 1st half of atomic swap store condition. word sc $s1, 20($s2) Mernory[$s2+20] = $s1; $s1= 0 or 1 Store word as 2nd half of atomic swap load upper immed. lui $sl,,20 $s1= 20 * 216 Loads constant in upper 16 bits Logical and and $s1, $s2, $s3 $s1 = $s2& $s3 Three reg. operands; bit-by-bit AND or or $s1, $s2, $s3 $s1 = $s2 $s3 Three reg. operands; bit-by-bit OR nor nor $s1, $s2, $s3 $s1 = ~($s2 $s3) Three reg. operands; bit-by-bit NOR and immediate andi $s1, $s2, 20 $s1 = $s2 & 20 Bit-by-bit AND reg with constant or immediate ori $s1, $s2, 20 $s1 = $s2 20 Bit-by-bit OR reg with constant shift left logical sll $s1, $s2, 10 $s1 = $s2 << 10 Shift left by constant shift right logical srl $s1, $s2, 10 $s1 = $s2 >> 10 Shift right by constant Conditional branch on equal beq $s1, $s2, 25 if ($ s 1 = = $s2) go to PC Equal test: PC-relative branch branch branch on not equal bne $s1, $s2, 25 if ($s1! = $s2) go to PC Not equal test; PC-relative set on less than slt $s1, $s2, $s3 if ($s2 < $s3) $s1 = 1; else $s1 = 0 Compare less than: for beq, bne set on less than unsigned sltu $s1, $s2, $s3 if($s2 < $s3) $s1 = 1; else $s1 = 0 Compare less than unsigned set less than immediate slti $s1, $s2, 20 if ($s2 < 20) $s1 = 1; else $s1 = 0 Compare less than constant set less than immediate unsigned sltiu $s1, $s2, 20 if($s2 < 20) $s1 = 1; else $s1 = 0 Compare less than constant unsigned Unconditional jump j 2500 go to Jump to target address jump jump register jr $ra go to $ra For switch, procedure return jump and link jal 2500 $rd = PC + 4; go to For procedure call 137

138 Пример ARM AMR: ARM Holdings Reduced Instruction Set Computer (RISC) Фиксна дужина инструкција 32 бита (Thumb* и 16 и 32) Load/Store архитектура Инструкције користе до 3 регистра (некада 4) Рад са подацима углавном на нивоу регистар-регистар Регистара опште намене има 16, дужине 32 бита Подржава: big endian + little endian, подразумевано little Инструкције се условно извршавају (4 битни услов)

139 ARM формат инструкција 139

140 ARM регистри Регистар R13 има улогу регистра SP (Stack Pointer) Регистар R14 има улогу да при позивима потпрограма чува повратну адресу LR (Link Register) Регистар R15 има улогу програмског бројача PC (Program Counter) Програмска статусна реч cpsr (Current Program Status Pegister) 140

141 ARM скуп инструкција (део) Категорија Мнемоник Инструкција Значење Arithmetic ADC Add with carry Rd := Rn + Op2 + Carry ADD Add Rd := Rn+ Op2 MUL Multiply Rd := Rm* Rs RSB Reverse Subtract Rd := Op2 Rn RSC Reverse Subtract with Carry Rd := Op2-Rn-1 + Carry SBC Subtract with Carry Rd := Rn-Op2-1 + Carry CMN Compare Negative CPSR flags := Rn + Op2 CMP Compare CPSR flags := Rn- Op2 MLA Multiply Accumulate Rd :=(Rm* Rs) + Rn SUB Subtract Rd := Rn- Op2 Logic AND AND Rd := Rn AND Op2 EOR Exclusive OR Rd :=(RnAND NOT Op2) OR (op2and NOT Rn) ORR OR Rd := RnOR Op2 BIC Bit Clear Rd := RnAND NOT Op2 TEQ Test bitwise equality CPSR flags := Rn EOR Op2 TST Test bits CPSRflags := RnAND Op2 Branches B Branch R15:= address BL Branch with Link R14:= R15, R15:= address BX Branch and Exchange R15:= Rn, T bit := Rn[0] Data transfer LDR Load register from memory Rd :=(address) STR Store register to memory <address> := Rd MOV Move register or constant Rd : = Op2 LDM Load multiple registers Stack manipulation (Pop) STM Store Multiple Stack manipulation (Push) SWP Swap register with memory Rd :=[Rn],[Rn]:= Rm 141

142 ARM-услови извршавања инструкције Суфикс Значење Услов EQ Једнако Z = 1 NE Није једнако Z = 0 CS Веће или једнако (неозначено) C = 1 CC Мање (неозначено) C = 0 MI Негатив N = 1 PL Позитивно или нула N = 0 VS Прекорачење V = 1 VC Нема прекорачења V = 0 HI Веће (неозначено) (C = 1) (Z = 0) LS Мање или једнако (неозначено) (C = 0) (Z = 1) GE Веће или једнако N = V LT Мање од N <> V GT Веће од (Z = 0) (N = V) LE Мање или једнако (Z = 1) (N <> V) AL Увек - 142

143 AMR начини адресирања Регистарско директно Регистарско индиректно Регистарско индиректно са померајем Пре/пост инкрементирање/декрементирање Скалирано PC релативно Непосредно адресирање (кратка константа) 143

144 Пример x86 x86: Intel (делимично AMD) Complex Instruction Set Computers (CISCs) Рад са подацима углавном на нивоу регистар-регистар 1978: Intel битна архитектура 1980: 8087 променљиве у покретном зарезу 1982: адресу постају дужине 24 бита, нове инструкције 1985: прелазак на дужину 32 бита,, нови начини адресирања : 80486, Pentium, Pentium Pro нове инструкције 1997: MMX са 57 нових инструкција, Pentium II 1999: Pentium III са нових 70 инструкција (SSE streaming SIMD extensions) 2001: Нових 144 инструкција (SSE2) 2003: AMD адресе постају 64 бита, такође и регистри(amd64) 2004: Intel прихвата AMD64 (EM64T) и додаје нове инструкције Подржава: little endian 144

145 Пример x86 Комплексност: Инструкције су дужине од 1 до 17 бајтова Један операнд може бити и извориште и одредиште (двоадресни формат) Један операнд може бити из меморије Комплексни начини адресирања (пример: помераји могу бити и 8 и 32 бита) Олакшавајуће карактеристике: Најфреквентније инструкције су једноставне Преводиоци у зависности од платформе игноришу поједине делове скупа инструкција 145

146 8086 скуп инструкција (део) Категорија Инструкција Операнди Значење Коментар Aritmetic ADD dt, sc Add (1) r/m += r/imm;(2) r += m/imm; SUB dt, sc Subtraction (1) r/m -= r/imm;(2) r -= m/imm; MUL sc Unsigned multiply (1) DX:AX = AX * r/m;(2) AX = AL * r/m; DIV sc Unsigned divide DX:AX = DX:AX / r/m; resulting DX = remainder CMP dt, sc Compare (1) r/m - r/imm;(2) r - m/imm; INC dt Increment r/m ++; DEC dt Decrement r/m --; NEG dt Negate r/m *= -1; Logic AND dt, sc Logical AND (1) r/m &= r/imm;(2) r &= m/imm; OR dt, sc Logical OR (1) r/m = r/imm; (2) r = m/imm; XOR dt, sc Logical exclusive OR (1) r/m ^= r/imm;(2) r ^= m/imm; NOT TEST dt dt, sc Logical NOT Test (logical AND) r/m ^= -1; (1) r/m & r/imm;(2) r & m/imm; SAL dt, cnt Shift arithmetic left (1) r/m <<= 1;(2) r/m <<= CL; SHL dt, cnt Shift logical left SAR dt, cnt Shift arithmetic right (1)(signed)r/m >>= 1;(2) (signed)r/m >>= CL; SHR dt, cnt Shift logical right ROL dt, cnt Rotate left ROR dt, cnt Rotate right Data transfer MOV dt, sc Move (1) r/m = r;(2) r = r/m; IN ac, port Input from port (1) AL = port[imm];(2) AL = port[dx];(3) AX = port[dx]; OUT port, sc Output to port (1) port[imm] = AL;(2) port[dx] = AL;(3) port[dx] = AX; POP dt Pop word off stack r/m = *SP++; PUSH sc Push word onto stack *--SP = r/m; Jump JMP label Jump (JA, JAE, JB, JBE, JC, JE, JG, JGE, JL, JLE, JNA, JNAE, JNB, JNBE, JNC, JNE, Jcc slabel Jump if condition JNG, JNGE, JNL, JNLE, JNO, JNP, JNS, JNZ, JO, JP, JPE, JPO, JS, JZ) CALL proc Call a procedure push eip; RET [pop] Return from procedure IRET Return from interrupt 146

147 8086 скуп инструкција (део) OPCODE DESCRIPTION OPCODE DESCRIPTION OPCODE DESCRIPTION OPCODE DESCRIPTION AAA ASCII adjust addition JA slabel Jump if above LAHF Load AH from flags REPNE Repeat while not equal AAD ASCII adjust division JAE slabel Jump if above or equal LDS dt, sc Load pointer using DS REPNZ Repeat while not zero AAM ASCII adjust multiply JB slabel Jump if below LEA dt, sc Load effective address RET [pop] Return from procedure AAS ASCII adjust subtraction JBE slabel Jump if below or equal LES dt, sc Load pointer using ES ROL dt, cnt Rotate left ADC dt, sc Add with carry JC slabel Jump if carry LOCK Lock bus ROR dt, cnt Rotate right ADD dt, sc Add JCXZ slabel Jump if CX is zero LODS [se] Load string SAHF Store AH into flags AND dt, sc Logical AND JE slabel Jump if equal LODSB [se] Load string bytes SAL dt, cnt Shift arithmetic left CALL proc Call a procedure JG slabel Jump if greater LODSW [se] Load string words SHL dt, cnt Shift logical left CBW Convert byte to word JGE slabel Jump if greater or equal LOOP slabel Loop SAR dt, cnt Shift arithmetic right CLC Clear carry flag JL slabel Jump if less LOOPE slabel Loop if equal SBB dt, sc Subtract with borrow CLD Clear direction flag JLE slabel Jump if less or equal LOOPZ slabel Loop if zero SCAS [dt] Scan string CLI Clear interrupt flag JMP label Jump LOOPNE slabel Loop if not equal SCASB [dt] Scan string byte CMC Complement carry flag JNA slabel Jump if not above LOOPNZ slabel Loop if not zero SCASW [dt] Scan string word CMP dt, sc Compare JNAE slabel Jump if not above or equal MOV dt, sc Move SHR dt, cnt Shift logical right CMPS [dt, sc] Compare string JNB slabel Jump if not below MOVS [dt, sc] Move string STC Set carry flag CMPSB [dt, sc] Compare string bytes JNBE slabel Jump if below or equal MOVSB [dt, sc] Move string bytes STD Set direction flag CMPSW [dt, sc] Compare string words JNC slabel Jump if no carry MOVSW [dt, sc] Move string words STI Set interrupt flag CWD Convert word to double word JNE slabel Jump if not equal MUL sc Unsigned multiply STOS [dt] Store string DAA Decimal adjust addition JNG slabel Jump if not greater NEG dt Negate STOSB [dt] Store string byte DAS Decimal adjust subtraction JNGE slabel Jump if not greater or equal NOP No operation STOSW [dt] Store string word DEC dt Decrement JNL slabel Jump if not less NOT dt Logical NOT SUB dt, sc Subtraction DIV sc Unsigned divide JNLE slabel Jump if not less or equal OR dt, sc Logical OR TEST dt, sc Test (logical AND) ESC code, sc Escape JNZ slabel Jump if not zero OUT port, sc Output to port WAIT Wait for 8087 HLT Halt JNO slabel Jump if not overflow POP dt Pop word off stack XCHG dt, sc Exchange IDIV sc Integer divide JNP slabel Jump if not parity POPF Pop flags off stack XLAT table Translate IMUL sc Integer multiply JNS slabel Jump if not sign PUSH sc Push word onto stack XLATB table Translate IN ac, port Input from port JO slabel Jump if overflow PUSHF Push flags onto stack XOR dt, sc Logical exclusive OR INC dt Increment JPO slabel Jump if parity odd RCL dt, cnt Rotate left through carry Notes: INT type Interrupt JP slabel Jump if parity RCR dt, cnt Rotate right through carry INTO Interrupt if overflow JPE slabel Jump if parity even REP Repeat string operation IRET Return from interrupt JS slabel Jump if sign REPE Repeat while equal JZ slabel Jump if zero REPZ Repeat while zero dt- destination sc -source label -may be near or far address slabel- near address 147

148 x86- регистри AL/AH/AX/EAX/RAX: Акумулатор BL/BH/BX/EBX/RBX: Индексни регистар CL/CH/CX/ECX/RCX: Бројачки регистар (петње и стрингови) DL/DH/DX/EDX/RDX: Проширење прецизности акумулатора SI/ESI/RSI: Изворишни индекс за стринг операције DI/EDI/RDI: Одредишни индекс за стринг операције SP/ESP/RSP: Показивач на врх стека BP/EBP/RBP: Базни регистар IP/EIP/RIP: Instruction pointer 148

149 x86 начини адресирања Регистарско директно адресирање Непосредно Меморијско директно адресирање Регистарско индиректно адресирање Индесно (скалирано) адресирање Базно-индексно (скалирано) адресирање 149

150 Пример IA-32 (x86) PUSH 5-bit opcode, 3-bit register operand Op 5 Reg 3 JE (PC)disp 4-bit opcode, 4-bit condition, 8-bit jump offset Op 4 Cond 4 disp 8 XOR 8-bit opcode, 8-bit reg/mode*, 8-bit base, 8-b index Op 8 reg/mode 8 base 8 index 8 150

151 Пример Java bytecode Јава: Oracle (SUN) Виртуелна машина (негде и хардверска подршка) Стек машина (Нула-адресни формат инструкција) Подржава: big endian

152 Java bytecode скуп инструкција (део) Категорија Инструкција Аргументи Стек Коментар Aritmetic iadd value1, value2 result add two ints isub value1, value2 result int subtract imul value1, value2 result multiply two integers idiv value1, value2 result divide two integers irem value1, value2 result logical int remainder ineg value result negate int Logic iand value1, value2 result perform a bitwise and on two integers ior value1, value2 result bitwise int or ixor value1, value2 result int xor ishl value1, value2 result int shift left ishr value1, value2 result int arithmetic shift right iushr value1, value2 result int logical shift right Data transfer bipush 1: byte value push a byte onto the stack as an integer value pop value discard the top value on the stack dup value value, value duplicate the value on top of the stack swap value2, value1 value1, value2 swaps two top words on the stack iconst_x x load the intvalue x onto the stack (-1 <=x<=5) iload 1: index value load an int value from a local variable #index iload_x value load an int value from local variable x (0<=x<=3) istore 1: index value store int value into variable #index istore_x value store int value into variable x (0<=x<=3) Jump 2: branchbyte1, goes to another instruction at branchoffset goto branchbyte2 [no change] (branchbyte1 << 8 + branchbyte2) 2: branchbyte1, jump to subroutine at branchoffsetand jsr branchbyte2 address place the return address on the stack ireturn value [empty] return an integer from a method return [empty] return void from method 2: branchbyte1, Conditional branch to branchoffset ifxx branchbyte2 value (eq, ne, lt, ge, gt, le,...) 152

Precesor Intel 8086

Precesor Intel 8086 Precesor Intel 8086 Uvod Procesor 8086 jedan je od najvažnijih u istoriji računarstva, rodonačelnik Intelove 80x86 familije kojoj pripadaju: 8086, 80286, 80386, 80486, Pentium, Pentium II itd. Familija

Више

OPIS RAČUNARSKOG SISTEMA Računarski sistem se sastoji od procesora, operativne memorije, tajmera i terminala. Sve komponente računarskog sistema su me

OPIS RAČUNARSKOG SISTEMA Računarski sistem se sastoji od procesora, operativne memorije, tajmera i terminala. Sve komponente računarskog sistema su me OPIS RAČUNARSKOG SISTEMA Računarski sistem se sastoji od procesora, operativne memorije, tajmera i terminala. Sve komponente računarskog sistema su međusobno povezane preko sistemske magistrale. Tajmer

Више

Edukacioni racunarski sistem

Edukacioni racunarski sistem ТРАНСЛАЦИЈА ИНСТРУКЦИЈА 1. Разматра се рачунарски систем у коме се извршавање одређене инструкције одвија у 6 фаза помоћу измењеног процесора са стандардном проточном обрадом (слика 1.). У процесор са

Више

Zbirka resenih zadataka iz arhitekture racunara

Zbirka resenih zadataka iz arhitekture racunara Ј. ЂОРЂЕВИЋ, З. РАДИВОЈЕВИЋ, М. ПУНТ, Б. НИКОЛИЋ, Д. МИЛИЋЕВ, Ј. ПРОТИЋ, А. МИЛЕНКОВИЋ АРХИТЕКТУРА И ОРГАНИЗАЦИЈА РАЧУНАРА ПРЕКИДИ, МАГИСТРАЛА И УЛАЗ/ИЗЛАЗ ЗБИРКА РЕШЕНИХ ЗАДАТАКА Београд 2013. i САДРЖАЈ

Више

P1.2 Projektovanje asemblera

P1.2 Projektovanje asemblera ПРОЈЕКТОВАЊЕ АСЕМБЛЕРА Асемблер Модули асемблера 1 Дефинисање новог лингвистичког нивоа превођењем Потребан преводилац алат који преводи програм написан на једном језику (на једном лингвистичком нивоу)

Више

Algoritmi i arhitekture DSP I

Algoritmi i arhitekture DSP I Univerzitet u Novom Sadu Fakultet Tehničkih Nauka Katedra za računarsku tehniku i međuračunarske komunikacije Algoritmi i arhitekture DSP I INTERNA ORGANIACIJA DIGITALNOG PROCESORA A OBRADU SIGNALA INTERNA

Више

Zadatak T=5: Jedinica WBSD propušta vred Potiče iz polja Rwb.LMD Signal Rwb.WRLMD izaziva propuštanje ove vrednosti 2. Vrednost 0000

Zadatak T=5: Jedinica WBSD propušta vred Potiče iz polja Rwb.LMD Signal Rwb.WRLMD izaziva propuštanje ove vrednosti 2. Vrednost 0000 Zadatak 2.1 1. T=5: Jedinica WBSD propušta vred 0000 0003 Potiče iz polja Rwb.LMD Signal Rwb.WRLMD izaziva propuštanje ove vrednosti 2. Vrednost 0000 0003 koja je pročitana u taktu 5 (prethodno pitanje)

Више

P11.3 Analiza zivotnog veka, Graf smetnji

P11.3 Analiza zivotnog veka, Graf smetnji Поједностављени поглед на задњи део компајлера Међурепрезентација (Међујезик IR) Избор инструкција Додела ресурса Распоређивање инструкција Инструкције циљне архитектуре 1 Поједностављени поглед на задњи

Више

Uvod u organizaciju i arhitekturu računara 2 1

Uvod u organizaciju i arhitekturu računara 2 1 Uvod u organizaciju i arhitekturu računara 2 1 1 Asemblersko programiranje u Intel 64 arhitekturi 1.1 Sintaksa Opšta sintaksa asemblera je takva da se čita linija po linija. Linije mogu biti prazne u kom

Више

PROMENLJIVE, TIPOVI PROMENLJIVIH

PROMENLJIVE, TIPOVI PROMENLJIVIH PROMENLJIVE, TIPOVI PROMENLJIVIH Šta je promenljiva? To je objekat jezika koji ima ime i kome se mogu dodeljivati vrednosti. Svakoj promenljivoj se dodeljuje registar (memorijska lokacija) operativne memorije

Више

P1.3 Projektovanje makroasemblera

P1.3 Projektovanje makroasemblera ПРОЈЕКТОВАЊЕ МАКРОАСЕМБЛЕРА Макроасемблер Потребна проширења асемблера 1 МАКРОАСЕМБЛЕР Макроасемблер преводи полазни програм написан на макроасемблерском језику у извршиви машински програм. Приликом израде

Више

Tutoring System for Distance Learning of Java Programming Language

Tutoring System for Distance Learning of Java Programming Language Deklaracija promenljivih Inicijalizacija promenljivih Deklaracija promenljive obuhvata: dodelu simboličkog imena promenljivoj i određivanje tipa promenljive (tip određuje koja će vrsta memorijskog registra

Више

Microsoft PowerPoint - Bitovi [Compatibility Mode]

Microsoft PowerPoint - Bitovi [Compatibility Mode] Оператори над битовима (Јаничић, Марић: Програмирање 2, тачка 5.6) Оператори за рад са појединачним битовима Само на целобројне аргументе: ~ битовска негација & битовска конјункција (и) битовска (инклузивна)

Више

Увод у организацију и архитектуру рачунара 1

Увод у организацију и архитектуру рачунара 1 Увод у организацију и архитектуру рачунара 2 Александар Картељ kartelj@matf.bg.ac.rs Напомена: садржај ових слајдова је преузет од проф. Саше Малкова Увод у организацију и архитектуру рачунара 2 1 Секвенцијалне

Више

Microsoft Word - Projekat iz MIPS-a - simCPU.doc

Microsoft Word - Projekat iz MIPS-a - simCPU.doc UNIVERZITET U NIŠU ELEKTRONSKI FAKULTET KATEDRA ZA ELEKTRONIKU MIKROPROCESORSKI SISTEMI simcpu Mentor Prof. dr. Mile Stojčev Marko Ilić 9921 Nebojša Pejčić 9738 Aleksandar Stojadinović 10085 Bojan Janićijević

Више

Logicko projektovanje racunarskih sistema I

Logicko projektovanje racunarskih sistema I PRIMERI SA PREDAVANJA 17 Beta asembler Zadatak 1. Posmatrajmo sledeću funkciju napisanu u programskom jeziku C, za računanje najvećeg zajedničkog delioca dva pozitivna cela broja: int gcd(int a, int b)

Више

Vezbe_AOR1_2014_V1.0

Vezbe_AOR1_2014_V1.0 АРХИТЕКТУРА И ОРГАНИЗАЦИЈА РАЧУНАРА 1 Верзија 2014 1.0 САДРЖАЈ Садржај... 3 Кеш меморија (Cache Memory)... 5 Задатак 1.... 5 Задатак 2.... 6 Задатак 3.... 9 Задатак 4.... 12 Задатак 5.... 15 Задатак 6....

Више

Razvoj programa, Code::Blocks, struktura programa, printf, scanf, konverzioni karakteri predavač: Nadežda Jakšić

Razvoj programa, Code::Blocks, struktura programa, printf, scanf, konverzioni karakteri predavač: Nadežda Jakšić Razvoj programa, Code::Blocks, struktura programa, printf, scanf, konverzioni karakteri predavač: Nadežda Jakšić projektni zadatak projektovanje programa (algoritmi) pisanje programskog koda, izvorni kod,

Више

RACUNARSKA ELEKTRONIKA – VEŽBE 3

RACUNARSKA ELEKTRONIKA – VEŽBE 3 RAČUNARSKA ELEKTRONIKA VEŽBE 3 Aleksandra Lekić lekic.aleksandra@etf.bg.ac.rs Elektrotehnički fakultet, Univerzitet u Beogradu 2015/2016 ETF Beograd RE VEŽBE 3 2015/2016 1 / 30 Procedure Procedure Organizacijom

Више

P9.1 Dodela resursa, Bojenje grafa

P9.1 Dodela resursa, Bojenje grafa Фаза доделе ресурса Ова фаза се у литератури назива и фазом доделе регистара, при чему се под регистрима подразумева скуп ресурса истог типа. Додела регистара променљивама из графа сметњи се обавља тзв.

Више

Microsoft PowerPoint - Programski_Jezik_C_Organizacija_Izvornog_Programa_I_Greske [Compatibility Mode]

Microsoft PowerPoint - Programski_Jezik_C_Organizacija_Izvornog_Programa_I_Greske [Compatibility Mode] Programski jezik C organizacija izvornog programa Prevođenje Pisanje programa izvorni program Prevođenje programa izvršni program Izvršavanje programa rezultat Faze prevođenja Pretprocesiranje Kompilacija

Више

Konverzije, operatori, matematičke funkcije predavač: Nadežda Jakšić

Konverzije, operatori, matematičke funkcije predavač: Nadežda Jakšić Konverzije, operatori, matematičke funkcije predavač: Nadežda Jakšić 1. temperatura u stepenima Celzijusa i stepene Farenhajta tf=1.8*tc+32 2. pretvoriti inče u centimetre 1 inč=2.54cm 3. vreme učitano

Више

SPR , IV godina, VHDL – Ispitna pitanja

SPR , IV godina, VHDL – Ispitna pitanja VHDL, SPR, II kolokvijum, priprema, 2016 Napomena: Na kolokvijumu dolazi 1 zadatak (40%) i 1 praktican projekat (60%). Radi se u grupama prema utvrdjenom rasporedu od I kolokvijuma. A. ZADAI Priloziti

Више

AR2019

AR2019 ARHITEKTURA RAČUNARA (pregled principa i evolucije) Miroslav Hajduković Žarko Živanov NOVI SAD, 2019. PREDGOVOR Cilj ove knjige je da stvori funkcionalno zaokruženu sliku o radu računara. Zbog toga je

Више

Орт колоквијум

Орт колоквијум Испит из Основа рачунарске технике - / (6.6.. Р е ш е њ е Задатак Комбинациона мрежа има пет улаза, по два за број освојених сетова тенисера и један сигнал који одлучује ко је бољи уколико је резултат

Више

Microsoft Word - 11 Pokazivaci

Microsoft Word - 11 Pokazivaci Pokazivači U dosadašnjem radu smo imali prilike da koristimo promenljive koje smo deklarisali na početku nekog bloka. Prilikom deklaracije promenljiva dobija jedinstveni naziv i odgovarajući prostor u

Више

_sheets.dvi

_sheets.dvi Zavod za elektroniku, mikroelektroniku, 28. studenog 2008. računalne i inteligentne sustave 2. me duispit iz Arhitekture računala 2, teorijski dio 1. Koja komponenta modernih računala nije bila prisutnau

Више

ИСПИТНА ПИТАЊА (ОКВИРНИ СПИСАК) УОАР2 2018/19 ПРВИ ДЕО ГРАДИВА 1. Написати истинитоносне таблице основних логичких везника (НЕ, И, ИЛИ). 2. Написати и

ИСПИТНА ПИТАЊА (ОКВИРНИ СПИСАК) УОАР2 2018/19 ПРВИ ДЕО ГРАДИВА 1. Написати истинитоносне таблице основних логичких везника (НЕ, И, ИЛИ). 2. Написати и ИСПИТНА ПИТАЊА (ОКВИРНИ СПИСАК) УОАР2 2018/19 ПРВИ ДЕО ГРАДИВА 1. Написати истинитоносне таблице основних логичких везника (НЕ, И, ИЛИ). 2. Написати истинитоносне таблице изведених логичких везника (НИ,

Више

Microsoft Word - 02 Elementi programskog jezika Pascal

Microsoft Word - 02 Elementi programskog jezika Pascal Elementi programskog jezika Pascal Osnovni elementi jezika Osnovni simboli U programskom jeziku Pascal sve konstrukcije se grade od skupa osnovnih simbola jezika koji čine slova, cifre i specijalni znaci.

Више

Microsoft PowerPoint - Timer0 16F887.ppt [Compatibility Mode]

Microsoft PowerPoint - Timer0 16F887.ppt [Compatibility Mode] TAJMERI I BROJAČI: PIC16F887 PIC 16F887 mikrokontroler ima tri tajmera/brojača: 8 - bitni tajmer/brojač (registar TMR0) 16 - bitni tajmer/brojač (registar TMR1H TMR1L) 8 - bitni tajmer/brojač (registar

Више

Grananje u programu predavač: Nadežda Jakšić

Grananje u programu predavač: Nadežda Jakšić Grananje u programu predavač: Nadežda Jakšić u okviru linijske strukture izvršavaju se sve naredbe u okviru razgranate strukture uvek se ispituje neki uslov; u zavisnosti od toga da li je uslov ispunjen

Више

Programiranje 2 0. predavanje Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog2 2019, 0. predavanje p. 1/4

Programiranje 2 0. predavanje Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog2 2019, 0. predavanje p. 1/4 Programiranje 2 0. predavanje Saša Singer singer@math.hr web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog2 2019, 0. predavanje p. 1/48 Sadržaj predavanja Ponavljanje onog dijela C-a koji

Више

Microsoft PowerPoint - Programski_Jezik_C_Organizacija_Izvrsnog_Programa [Compatibility Mode]

Microsoft PowerPoint - Programski_Jezik_C_Organizacija_Izvrsnog_Programa [Compatibility Mode] Организација извршног програма (Марић, Јаничић: Програмирање 1, 9.3.3) Извршавање програма После успешног превођења (претпроцесирања, компилације, повезивања) програм може да се изврши Извршавање се захтева

Више

ELEKTROTEHNIČKI FAKULTET, UNIVERZITET U BEOGRADU KATEDRA ZA ELEKTRONIKU UVOD U ELEKTRONIKU - 13E041UE LABORATORIJSKA VEŽBA Primena mikrokontrolera

ELEKTROTEHNIČKI FAKULTET, UNIVERZITET U BEOGRADU KATEDRA ZA ELEKTRONIKU UVOD U ELEKTRONIKU - 13E041UE LABORATORIJSKA VEŽBA Primena mikrokontrolera ELEKTROTEHNIČKI FAKULTET, UNIVERZITET U BEOGRADU KATEDRA ZA ELEKTRONIKU UVOD U ELEKTRONIKU - 13E041UE LABORATORIJSKA VEŽBA Primena mikrokontrolera CILJ VEŽBE Cilj ove vežbe je da se studenti kreiranjem

Више

Испит из Основа рачунарске технике OO /2018 ( ) Р е ш е њ е Задатак 5 Асинхрони RS флип флопреализован помоћу НИЛИ кола дат је на след

Испит из Основа рачунарске технике OO /2018 ( ) Р е ш е њ е Задатак 5 Асинхрони RS флип флопреализован помоћу НИЛИ кола дат је на след Испит из Основа рачунарске технике OO - / (...) Р е ш е њ е Задатак Асинхрони RS флип флопреализован помоћу НИЛИ кола дат је на следећој слици: S R Асинхрони RS флип флопреализован помоћу НИЛИ кола је

Више

Funkcije predavač: Nadežda Jakšić

Funkcije predavač: Nadežda Jakšić Funkcije predavač: Nadežda Jakšić funkcije delovi programa koji izvršavaju neki zadatak, celinu; dele na ugrađene, korisničke i main funkciju ugrađene funkcije printf,scanf... da bi se one izvršile potrebno

Више

Microsoft PowerPoint - 03-Slozenost [Compatibility Mode]

Microsoft PowerPoint - 03-Slozenost [Compatibility Mode] Сложеност алгоритама (Програмирање 2, глава 3, глава 4-4.3) Проблем: класа задатака истог типа Велики број различитих (коректних) алгоритама Величина (димензија) проблема нпр. количина података које треба

Више

RAČUNARSKI SISTEM Ne postoji jedinstvena definicija pojma računarski sistem. Računarski sistem predstavlja skup mašina i pridruženih metoda (realizova

RAČUNARSKI SISTEM Ne postoji jedinstvena definicija pojma računarski sistem. Računarski sistem predstavlja skup mašina i pridruženih metoda (realizova RAČUNARSKI SISTEM Ne postoji jedinstvena definicija pojma računarski sistem. Računarski sistem predstavlja skup mašina i pridruženih metoda (realizovanih u obliku softvera) organizovanih radi vršenja automatske

Више

Microsoft PowerPoint - 07-DinamickeStrukturePodataka

Microsoft PowerPoint - 07-DinamickeStrukturePodataka Динамичке структуре података листа, стек, ред Програмирање 2: глава 6 Динамичке структуре података Динамичка алокација и динамичке структуре података Најзначајније динамичке структуре података листе и

Више

Microsoft PowerPoint - OOPpredavanja05 [Compatibility Mode]

Microsoft PowerPoint - OOPpredavanja05 [Compatibility Mode] OBJEKTNO ORIJENTISANO PROGRAMIRANJE PREDAVANJE 5 OBJEKTI U INTERAKCIJI Miloš Kovačević Đorđe Nedeljković 1 /25 OSNOVNI KONCEPTI - Abstrakcija - Modularizacija - Objektne reference - Klasni dijagram - Objektni

Више

Uvod u računarstvo 2+2

Uvod u računarstvo 2+2 Pokazivači Pointeri Definicija pokazivača Pokazivač na tip je varijabla koja sadrži adresu varijable tipa tip. Definicija pokazivača: mem_klasa tip * p_var; Primjer: static int * pi; double *px; char*

Више

Microsoft PowerPoint - C-4-1

Microsoft PowerPoint - C-4-1 Pregled iskaza u C-u Izraz; Iskaz dodele, serijski komponovani iskaz; blok Uslovni iskazi i izrazi; složeno grananje Iterativni iskazi Iskaz dodele Promena vrednosti a = Ψ; Izračunava vrednost izraza Ψ,

Више

Uvod u računarstvo 2+2

Uvod u računarstvo 2+2 Ulaz i izlaz podataka Ulaz i izlaz podataka Nakon odslušanog bit ćete u stanju: navesti sintaksu naredbi za unos/ispis znakova znakovnih nizova cijelih brojeva realnih brojeva jednostruke i dvostruke preciznosti

Више

LAB PRAKTIKUM OR1 _ETR_

LAB PRAKTIKUM OR1 _ETR_ UNIVERZITET CRNE GORE ELEKTROTEHNIČKI FAKULTET STUDIJSKI PROGRAM: ELEKTRONIKA, TELEKOMUNIKACIJE I RAČUNARI PREDMET: OSNOVE RAČUNARSTVA 1 FOND ČASOVA: 2+1+1 LABORATORIJSKA VJEŽBA BROJ 1 NAZIV: REALIZACIJA

Више

` 1.Врсте меморије На основу начина чувања података делимо их на меморије које привремено чувају податке (док је рачунар укључен) и меморије које трај

` 1.Врсте меморије На основу начина чувања података делимо их на меморије које привремено чувају податке (док је рачунар укључен) и меморије које трај 1.Врсте меморије На основу начина чувања података делимо их на меморије које привремено чувају податке (док је рачунар укључен) и меморије које трајно чувају податке. Привремено чување података карактерише

Више

1

1 Podsetnik: Statističke relacije Matematičko očekivanje (srednja vrednost): E X x p x p x p - Diskretna sl promenljiva 1 1 k k xf ( x) dx E X - Kontinualna sl promenljiva Varijansa: Var X X E X E X 1 N

Више

Испит из Основа рачунарске технике OO /2018 ( ) Р е ш е њ е Задатак 5 Асинхрони RS флип флопреализован помоћу НИ кола дат је на следећ

Испит из Основа рачунарске технике OO /2018 ( ) Р е ш е њ е Задатак 5 Асинхрони RS флип флопреализован помоћу НИ кола дат је на следећ Испит из Основа рачунарске технике OO - 27/2 (9.6.2.) Р е ш е њ е Задатак 5 Асинхрони RS флип флопреализован помоћу НИ кола дат је на следећој слици: S Q R Q Асинхрони RS флип флопреализован помоћу НИ

Више

MIP-heuristike (Matheuristike) Hibridi izmedu metaheurističkih i egzaktnih metoda Tatjana Davidović Matematički institut SANU

MIP-heuristike (Matheuristike) Hibridi izmedu metaheurističkih i egzaktnih metoda Tatjana Davidović Matematički institut SANU MIP-heuristike (Matheuristike) Hibridi izmedu metaheurističkih i egzaktnih metoda Tatjana Davidović Matematički institut SANU http://www.mi.sanu.ac.rs/ tanjad (tanjad@mi.sanu.ac.rs) 21. januar 2013. Tatjana

Више

Microsoft PowerPoint - ARS_Ch_6 - IO sustavi.ppt

Microsoft PowerPoint - ARS_Ch_6 - IO sustavi.ppt Organizacija i arhitektura računala Poglavlje 6 Input/Output sustavi I/O problemi... Velika raznovrsnost periferije Raznovrsne brzine prijenosa podataka Na raznim komunikacijskim brzinama U različitim

Више

Uvod u računarstvo 2+2

Uvod u računarstvo 2+2 Datoteke nastavak Funkcija fgets Funkcija koja učitava podatke iz datoteke, liniju po liniju, je char *fgets(char *str, int n, FILE *fp); gdje su str pokazivač na dio memorije (string) u koji će ulazna

Више

Logicko projektovanje racunarskih sistema I

Logicko projektovanje racunarskih sistema I POKAZNA VEŽBA 10 Strukture za računanje Potrebno predznanje Urađena pokazna vežba 8 Poznavanje aritmetičkih digitalnih sistema i aritmetičko-logičkih jedinica Osnovno znanje upravljačkih jedinica digitalnih

Више

PowerPoint Presentation

PowerPoint Presentation Java konkurentno programiranje Životni ciklus niti i problemi sinhronizacije resursa Multitasking Multithreading Životni ciklus niti http://www.roseindia.net/java/thread/lifecycle-of-threads.shtml Životni

Више

23. siječnja od 13:00 do 14:00 Školsko natjecanje / Osnove informatike Srednje škole RJEŠENJA ZADATAKA S OBJAŠNJENJIMA Sponzori Medijski pokrovi

23. siječnja od 13:00 do 14:00 Školsko natjecanje / Osnove informatike Srednje škole RJEŠENJA ZADATAKA S OBJAŠNJENJIMA Sponzori Medijski pokrovi 3. siječnja 0. od 3:00 do 4:00 RJEŠENJA ZADATAKA S OBJAŠNJENJIMA Sponzori Medijski pokrovitelji Sadržaj Zadaci. 4.... Zadaci 5. 0.... 3 od 8 Zadaci. 4. U sljedećim pitanjima na pitanja odgovaraš upisivanjem

Више

Microsoft Word - MySQL_3.doc

Microsoft Word - MySQL_3.doc 7. Data Manipulation Language (DML) Jezik za rad sa podacima (Data Manipulation Language (DML)) služi za umetanje, brisanje i ažuriranje podataka u bazi. 7.1. Umetanje novih redova u tabelu INSERT sintaksa

Више

Programiranje 1 3. predavanje prošireno Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog1 2018, 3. predava

Programiranje 1 3. predavanje prošireno Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog1 2018, 3. predava Programiranje 1 3. predavanje prošireno Saša Singer singer@math.hr web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog1 2018, 3. predavanje prošireno p. 1/120 Sadržaj proširenog predavanja

Више

Microsoft PowerPoint - Datoteke [Compatibility Mode]

Microsoft PowerPoint - Datoteke [Compatibility Mode] Датотеке стандардни улаз / излаз Датотека је именовани низ знакова (бајтова) У програмском језику C датотека је везана за улаз и излаз података функције стандардне библиотеке Најједностaвније

Више

Tutoring System for Distance Learning of Java Programming Language

Tutoring System for Distance Learning of Java Programming Language Niz (array) Nizovi Niz je lista elemenata istog tipa sa zajedničkim imenom. Redosled elemenata u nizovnoj strukturi je bitan. Konkretnom elementu niza pristupa se preko zajedničkog imena niza i konkretne

Више

PowerPoint Presentation

PowerPoint Presentation Programski jezici i strukture podataka UVOD Izvođači nastave Srđan Popov (JUG 215) Petar Marić (JUG 105) Milena Počuča (JUG 215) Milica Milutinović (JUG 215) Termini konsultacija naknadno Cilj vežbi Sticanje

Више

Vektorski procesori Najveći izvor paralelizma su DoAll petlje kako je već definisano u poglavlju o paralelizaciji petlji. Paralelizam tih petlji, ako

Vektorski procesori Najveći izvor paralelizma su DoAll petlje kako je već definisano u poglavlju o paralelizaciji petlji. Paralelizam tih petlji, ako Vektorski procesori Najveći izvor paralelizma su DoAll petlje kako je već definisano u poglavlju o paralelizaciji petlji. Paralelizam tih petlji, ako se razmatraju samo zavisnosti po podacima, je srazmeran

Више

PowerPoint Presentation

PowerPoint Presentation УВОД Дa би рaчунaри нa мрежи могли међусобно да кoмуницирaју и рaзмeњују пoдaткe, пoтрeбнo je: дa сe увeду ПРOТOКOЛИ (утврђeна прaвилa и процедуре за комуникацију) да постоје АДРEСE кoje су jeдинствeнe

Више

Računarski praktikum I - Vježbe 03 - Implementacija strukture string

Računarski praktikum I - Vježbe 03 - Implementacija strukture string Prirodoslovno-matematički fakultet Matematički odsjek Sveučilište u Zagrebu RAČUNARSKI PRAKTIKUM I Vježbe 03 - Implementacija strukture string v2018/2019. Sastavio: Zvonimir Bujanović Stringovi u C-u String

Више

P11.2 Izbor instrukcija, IBURG

P11.2 Izbor instrukcija, IBURG Избор инструкција (1/2) Машинска инструкција се може приказати као део стабла међукода, који се назива шаблон стабла (енгл. tree pattern). Избор инструкција је проблем поплочавања стабла међукода минималним

Више

Projektovanje digitalnih sistema

Projektovanje digitalnih sistema Projektovanje digitalnih sistema Metodologije dizajna Metodologije dizajna Odozgo ka dolje (top-down) Definiše se blok najvišeg nivoa i identifikuju se manji blokovi neophodni za njegovu implementaciju

Више

pricalica.PDF

pricalica.PDF Naziv projekta: Pricalica Projekt napravio:damir Petrinic Koristeni materijal: Mikrokontroler Atmel AT89C52 ISD4004 Voice memory LCD 2*16 znakova Projekt je moja ideja i moja realizacija i ne dozvoljavam

Више

PRIRODNO MATEMATIČKI FAKULTET U NIŠU DEPARTMAN ZA RAČUNARSKE NAUKE Utorak, godine PRIJEMNI ISPIT IZ INFORMATIKE 1. Koja od navedenih ekste

PRIRODNO MATEMATIČKI FAKULTET U NIŠU DEPARTMAN ZA RAČUNARSKE NAUKE Utorak, godine PRIJEMNI ISPIT IZ INFORMATIKE 1. Koja od navedenih ekste PRIRODNO MATEMATIČKI FAKULTET U NIŠU DEPARTMAN ZA RAČUNARSKE NAUKE Utorak, 5.06.019. godine PRIJEMNI ISPIT IZ INFORMATIKE 1. Koja od navedenih ekstenzija se najčešće koristi za tekstualne datoteke? a)

Више

Орт колоквијум

Орт колоквијум II колоквијум из Основа рачунарске технике I - 27/28 (.6.28.) Р е ш е њ е Задатак На улазе x, x 2, x 3, x 4 комбинационе мреже, са излазом z, долази четворобитни BCD број. Ако број са улаза при дељењу

Више

JEZGRO OPERATIVNOG SISTEMA I UPRAVLJANJE PROCESIMA 1. Šta je jezgro, a šta proces? Jezgro (nukleus ili kernel) je osnovni deo svakog operativnog siste

JEZGRO OPERATIVNOG SISTEMA I UPRAVLJANJE PROCESIMA 1. Šta je jezgro, a šta proces? Jezgro (nukleus ili kernel) je osnovni deo svakog operativnog siste JEZGRO OPERATIVNOG SISTEMA I UPRAVLJANJE PROCESIMA 1. Šta je jezgro, a šta proces? Jezgro (nukleus ili kernel) je osnovni deo svakog operativnog sistema. U hijerarhijskom (slojevitom) modelu, jezgro je

Више

PowerPoint Presentation

PowerPoint Presentation TRANSPORTNI SLOJ Predmet: Aktivni mrežni uređaji Predavač: dr Dušan Stefanović ENKAPSULACIJA DATA SEGMENT S.P / D.P. / S.N. / Ack # / DATA IPv / HLEN / Flag / S. IP / D. IP / PACKET DATA (SEGMENT) Frame

Више

Microsoft PowerPoint - MR - Vjezbe - 03.ppt [Compatibility Mode]

Microsoft PowerPoint - MR - Vjezbe - 03.ppt [Compatibility Mode] Sveučilište u Zagrebu PMF Matematički odsjek Mreže računala Vježbe 03 Zvonimir Bujanović Slaven Kožić Vinko Petričević Mrežno programiranje: SocketAPI Programiramo u aplikacijskom sloju, za ostale se brinu

Више

Programiranje 1 3. predavanje Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog1 2017, 3. predavanje p. 1/1

Programiranje 1 3. predavanje Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog1 2017, 3. predavanje p. 1/1 Programiranje 1 3. predavanje Saša Singer singer@math.hr web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog1 2017, 3. predavanje p. 1/132 Sadržaj predavanja Osnovni tipovi podataka u računalu

Више

3.Kontrlne (upravlja~ke) strukture u Javi

3.Kontrlne (upravlja~ke) strukture u Javi Објектно орјентисано програмирање Владимир Филиповић vladaf@matf.bg.ac.rs Александар Картељ kartelj@matf.bg.ac.rs Низови у програмском језику Јава Владимир Филиповић vladaf@matf.bg.ac.rs Александар Картељ

Више

P11.1 Izbor instrukcija, najveci zalogaj

P11.1 Izbor instrukcija, najveci zalogaj Избор инструкција 1 Поједностављени поглед на задњи део компајлера Међурепрезентација (Међујезик IR) Избор инструкција Додела ресурса Распоређивање инструкција Инструкције циљне архитектуре 2 Поједностављени

Више

PASCAL UVOD 2 II razred gimnazije

PASCAL UVOD 2 II razred gimnazije PASCAL UVOD 2 II razred gimnazije Upis-ispis 1. Upis Read(a,b); --u jednom redu Readln(a,b); -- nakon upisa prelazi se u novi red 2. Ispis Write(a,b); -- u jednom redu Writeln(a,b); --nakon ispisa prelazi

Више

Microsoft Word - CAD sistemi

Microsoft Word - CAD sistemi U opštem slučaju, se mogu podeliti na 2D i 3D. 2D Prvo pojavljivanje 2D CAD sistema se dogodilo pre više od 30 godina. Do tada su inženjeri koristili table za crtanje (kulman), a zajednički jezik komuniciranja

Више

Programski jezik C

Programski jezik C SPR, 2016 Rad sa datotekama Komunikacija sa OS Rad sa datotekama Vrste datoteka Otvaranje / zatvaranje datoteka Pristup datotekama za upis / čitanje Funkcije za rad sa datotekama Ulazno / izlazni tokovi

Више

Tutoring System for Distance Learning of Java Programming Language

Tutoring System for Distance Learning of Java Programming Language Uvod u programiranje dr Ninoslava Savić Predavanja (3) sreda: 11:15 13:50 Učionica 16 Konsultacije sreda: 15 17 h Kabinet 43 Uvod u programiranje Fond časova: 3+3 Broj ESPB: 7 Ocena znanja (max. broj poena

Више

Funkcije predavač: Nadežda Jakšić

Funkcije predavač: Nadežda Jakšić Funkcije predavač: Nadežda Jakšić do sada su korišćene "gotove" funkcije iz standardnih biblioteka (cin, cout...) one su pozivane iz main funkcije koja je glavna funkcija u programu jer izvršavanje programa

Више

PROGRAMIRANJE Program je niz naredbi razumljivih računalu koje rješavaju neki problem. Algoritam je postupak raščlanjivanja problema na jednostavnije

PROGRAMIRANJE Program je niz naredbi razumljivih računalu koje rješavaju neki problem. Algoritam je postupak raščlanjivanja problema na jednostavnije PROGRAMIRANJE Program je niz naredbi razumljivih računalu koje rješavaju neki problem. Algoritam je postupak raščlanjivanja problema na jednostavnije korake. Uz dobro razrađen algoritam neku radnju ćemo

Више

Uvod u PHP

Uvod u PHP Uvod u PHP Marijan Šuflaj FER, 2018 Sadržaj PHP Općenito Sintaksa Osnove Kontrola toka Zadatci Resursi Općenito Naziv od PHP Hypertext Preprocessor Obično koristi ekstenziju.php Tipovi su dinamički Trenutno

Више

Upitni jezik SQL

Upitni jezik SQL Šta je SQL? SQL (Structured Query Language) je jezik koji je Američki Institut za Nacionalne Standarde (ANSI - American National Standards Institute) prihvatio kao standardni jezik za relacione baze podataka.

Више

Državno natjecanje / Osnove informatike Srednje škole Zadaci U sljedećim pitanjima na odgovore odgovaraš upisivanjem slova koji se nalazi ispred

Državno natjecanje / Osnove informatike Srednje škole Zadaci U sljedećim pitanjima na odgovore odgovaraš upisivanjem slova koji se nalazi ispred Zadaci. 8. U sljedećim pitanjima na odgovore odgovaraš upisivanjem slova koji se nalazi ispred točnog odgovora, u za to predviđen prostor. Odgovor Ako želimo stvoriti i pohraniti sliku, ali tako da promjenom

Више

Oblikovanje i analiza algoritama 4. predavanje Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb OAA 2017, 4. pr

Oblikovanje i analiza algoritama 4. predavanje Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb OAA 2017, 4. pr Oblikovanje i analiza algoritama 4. predavanje Saša Singer singer@math.hr web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb OAA 2017, 4. predavanje p. 1/69 Sadržaj predavanja Složenost u praksi

Више

Microsoft PowerPoint - SRV LV5.ppt [Compatibility Mode]

Microsoft PowerPoint - SRV LV5.ppt [Compatibility Mode] ATMEGA16 Timeri/counteri Sistemi u realnom vremenu Laboratorijske vježbe br. 5 Timeri/counteri Sposobnost mikrokontorlera da obavljaju vremenski-zavisne zadatke je jedan od glavnih razloga za njihovo korištenje

Више

P1.0 Uvod

P1.0 Uvod Системска програмска подршка у реалном времену 1 Миодраг Ђукић miodrag.djukic@rt-rk.uns.ac.rs www.rt-rk.uns.ac.rs 1 Системска програмска подршка у реалном времену 1 програмска подршка = софтвер Системски

Више

13E114PAR, 13S113PAR DOMAĆI ZADATAK 2018/2019. Cilj domaćeg zadatka je formiranje petlje softverske protočnosti za minimalni broj ciklusa.

13E114PAR, 13S113PAR DOMAĆI ZADATAK 2018/2019. Cilj domaćeg zadatka je formiranje petlje softverske protočnosti za minimalni broj ciklusa. 13E114PAR, 13S113PAR 29.04.2019. DOMAĆI ZADATAK 2018/2019. Cilj domaćeg zadatka je formiranje petlje softverske protočnosti za minimalni broj ciklusa. U okviru svake grupe data je doall ili doacross petlja

Више

PowerPoint Presentation

PowerPoint Presentation Python tutorijal - praktični primeri - Sadržaj: 1. Upoznavanje sa razvojnim okruženjem - Python proširenje (PTVS) za Visual Studio 2015 - Druga razvojna okruženja 2. Osnovi Python jezika - Sintaksa i konvencije

Више

Veeeeeliki brojevi

Veeeeeliki brojevi Matematička gimnazija Nedelja informatike 3 12. decembar 2016. Uvod Postoji 10 tipova ljudi na svetu, oni koji razumeju binarni sistem, oni koji ne razumeju binarni sistem i oni koji nisu očekivali šalu

Више

PowerPoint Presentation

PowerPoint Presentation II Karakteristike C jezika Programski jezik C je viši programski jezik opšte namene. Tesno je povezan sa UNIX OS uz koji je razvijan. Razvio ga je Dennis Ritchie 1970 u Bell Telephone Laboratories, Inc.

Више

Uvod u takmičarsko programiranje

Uvod u takmičarsko programiranje 8. čas Uvod u programiranje - naredbe ciklusa Uvežbavamo naredbe ciklusa, naredbe ponavljanja (loop) https://studio.code.org/s/course2/stage/6/puzzle/3 "Talk is cheap. Show me the code." - Linus Torvalds

Више

PowerPoint Presentation

PowerPoint Presentation Tehnička škola 9. maj Bačka Palanka Programiranje III razred Tok izvršavanja programa Tok izvršavanja programa Dosadašnji kod se izvršavao praktično linearno. Nije postojala nikakva uslovna ili brojačka

Више

Microsoft PowerPoint - PRI2014 KORIGOVANO [Compatibility Mode]

Microsoft PowerPoint - PRI2014 KORIGOVANO [Compatibility Mode] 1. Broj bitova koji se jednovremeno prenosi i obrađuje unutar procesora naziva se: a) radni takt b) procesorski kod c) procesorska reč d) procesorski takt 1. Broj bitova koji se jednovremeno prenosi i

Више

Programski jezici i strukture podataka

Programski jezici i strukture podataka Programski jezici i strukture podataka 7 ULAZ, IZLAZ I DATOTEKE Ulazno izlazne operacije Programi moraju imati mogućnost da upisuju podatke u datoteke ili da ih ispisuju na izlazni uređaj poput ekrana

Више

УНИВЕРЗИТЕТ У НИШУ ПРИРОДНО-МАТЕМАТИЧКИ ФАКУЛТЕТ Департман за рачунарске науке Писмени део испита из предмета Увод у рачунарство 1. [7 пое

УНИВЕРЗИТЕТ У НИШУ ПРИРОДНО-МАТЕМАТИЧКИ ФАКУЛТЕТ Департман за рачунарске науке Писмени део испита из предмета Увод у рачунарство 1. [7 пое УНИВЕРЗИТЕТ У НИШУ ПРИРОДНО-МАТЕМАТИЧКИ ФАКУЛТЕТ Департман за рачунарске науке 30.06.2018. Писмени део испита из предмета Увод у рачунарство 1. [7 поена] Методом МакКласкија минимизарити систем прекидачких

Више

Рачунарска интелигенција

Рачунарска интелигенција Рачунарска интелигенција Генетско програмирање Александар Картељ kartelj@matf.bg.ac.rs Ови слајдови представљају прилагођење слајдова: A.E. Eiben, J.E. Smith, Introduction to Evolutionary computing: Genetic

Више

Inženjering informacionih sistema

Inženjering informacionih sistema Fakultet tehničkih nauka, Novi Sad Inženjering informacionih sistema Dr Ivan Luković Dr Slavica Kordić Nikola Obrenović Milanka Bjelica Dr Jelena Borocki Dr Milan Delić UML UML (Unified Modeling Language)

Више

Tutoring System for Distance Learning of Java Programming Language

Tutoring System for Distance Learning of Java Programming Language Obeležene petlje Obeležene petlje Obeležavanje petlje nekim identifikatorom omogućava da se programski tok usmeri na mesto u programu specificirano tim identifikatorom. Ako se iza naredbi break ili continue

Више