HPHP48-R*EQDIR*JBrojevniSustavit*i2VƖ"&VfSӒ"F'WFFf"&VvFf"&CbWƖ6VVFTF6֦V@dVF6c֖6&W2##F疦22"3"#b'WF&FW&6GS"S#s`b&6F6W"VbFV6VVF6V"3¢CF6bҢՃbҢ"U%WƦVf#SSbR#sFƦVfbR#cTb"&V`C#FR#"#3Jp&WF&Vv@,*P1-ciklucne n. doh 2-ciklusne n. doh,odg doh, izv 3-ciklusne n. doh,odg,izv doh,izv,izv 4-ciklusne n. doh,odg,izv,izv doh=dovat --- odg=odgoda izv=izvodjenje,*dohvat - isti za sve PC --> AR PC+1 --> PC (AR) --> MD MD --> IR DEKODER odgadjanje - kod I adresiranja (AR) --> MD MD --> AR +1@,Pseudot*dBVR6WBF6V$2ŢmT$2T$ŤT4$"DŤ4⢠¢pVRFfW6RgVFBRgVFgWFF"FfW6RgVF4TD4ReTDT"DĢTbPeTD"$ DT4TD`⢠¢= UWFRFƦfǦFҦV6G6fW6RgVF2gWBRgVF44ReTDT4PeTD"$"sVVF%W֦6G&@,*018(10) rijeci s adrese 350(8) na adresu 200(8), pocinje a 320(8) adr kod naredba 'org 320 072000 clear 321 010350 add 350 322 030200 store 200 323 020321 isz 321,*324 020322 isz 322 325 020330 isz 330 326 050320 jump 320 327 074020 halt 330 177756 'dw 177756 'end / -18(10)=-22(8) +1*BezuvjetniPrijenost*0$GV676W@6#SSp%rRUccp%rRUccprRUcp$u42T$ŢDD%Sr%2T$DDTr%rD$SrBt#SâTrBtSpRD%f6דp%rRUccp%rRUccprRUcp$uRâd2T$DD2Ť2E$U"$2T$UDŤ4r%r%Ţr4"$TUDŤTdrBtss $rBtpRDPeVF%V6@,*Potprogram - slanje podataka u v.jedinicu adrese 4. SKP4 'EQU 060042 CL4 'EQU 060044 'WR4 'EQU 060046 'ORG 520 IZLAZ 'DW 0,* SKP4 JUMP .-1 WR4 CL4 JUMP I IZLAZ .+1PrekidniPrijenost*p$upBtT2U$e4pd2T$2T$ŤT0U$e42E$UĢ=2T$2Vg2GVB2W"DW&WFb'FF2E$U”RF'v&֦"E#2#2E$UD2T$DD”"W6GV'6Ƣ"D%2F&2T$DDTrBtrBtDrBt@%V6@,*PRezultati mjerenja idu u blok memorije. Velicina 100(8) mjesta pocetak na 3000(8). CL01 'EQU 060011 CL02 'EQU 060021 WR01 'EQU 060012 WR02 'EQU 060022,* GO01 'EQU 060013 RD01 'EQU 060014 STOP01 'EQU 060015 Zaustavljanje procesa 'ORG 10 CL01 CL02,* CLEAR ADD ABLOK WR01 CLEAR ADD M100 WR2 CLEAR GO01,* SKP02 JUMP .-2 CLO1 CL02 JUMP .+0 ABLOK 'DW 002777 M100 'DW 177677 'END,*0 Kradja Ciklusa CL01, CL02, WR01, WR02 GO01, RD01, STOP01 'ORG 0 'DW 0 CL01 CL02 CLEAR ,* ADD ABLOK WR01 CLEAR ADD M100 WR02 CLEAR GO01 ION ,* JUMP .-1 HALT ABLOK 'DW 002777 M100 'DW 177677 'END Pametni Prijenos CL01, GO01, RD01, STOP01,* 'ORG 60 START CL01 CLEAR ADD ABLOK STORE POBLOK CLEAR ADD M100 STORE BROJILO,*p GO01 PONOVO SKP01 JUMP .-1 CLEAR RD01 CL01 STORE I POBLOK ISZ POBLOK,* ISZ BROJILO JUMP PONOVO STOP01 HALT POBLOK 'DW 0 ABLOK 'DW 003000 M100 'DW 177700 BROJILO 'DW 0 --- 'END,* Prekidni Prijenos CL01, GO01, RD01, STOP01 'ORG 0 'DW 0 STORE AK CLEAR RD01 CL01,*0 STORE I POBLOK ISZ POBLOK CLEAR ADD AK ISZ BROJILO ION JUMP 10 ABLOK 'DW ,*0 PBLOK 'DW M100 'DW AK 'DW 0 LINK 'DW 0 BROJILO 'DW 0 START CL01 CLEAR ADD ABLOK,*p STORE POBLOK CLEAR ADD M100 STORE BROJILO GO01 ION JUMP .-1 HALT --- 'END+1Zbrojit*%&"&VfWBf6G'WV'W66Gr$u2T$2T$ŤDDĤDD"Ĥ2E$U"UĢ2T$"DŤ2E$U5$%2T$DD"DŤ2E$UBU2T$Ţ2T$ŤDD""DŤ2E$UBU%2T$2T$ŤDD5$%"DĢDDBUDDBU%2T$DDDD"DD5$%2E$U"U2T$Ţ"DŤ2E$Ur$U4DrBtr#3CrBtRc#s rBt#3#3 rBtBSC UrBtâ UrBtp$U4rBt5$%rBt@UrBt@U%rBtp$W6VƖ6G%&c@,*pprvi na 1000(16), drugi na 1002(16), rezultat na 1004(16) 'ORG 0 LD BC, (1000) LD HL, (1002) ADD HL, BC,* LD (1004), HL HALT 'END .+1 BCDZbroji t*'gB&Ww"W#p$uDD"DDD"B'vF&R"4DĢID#DpRDfDVזc@,*prvi 1000, drugi 1002, rez 1004 'ORG 0 AND A /C zastavica u 0 LD HL, (1000) LD BC, (1002) SBC HL, BC /oduzimanje,* LD (1004), HL HALT 'END .+1 Mnozit*p$uDD"DDBDRDUDŤDDBTĢBUDŤR6G'&VD#ĤDpRD6@,*0'ORG 0 LD A, (1000) LD H, A /H je prvi LD L, 0 /L=0 LD A, (1001) LD E, A /E je drugi LD D, 0 /D=0 LD B, 8 /brojac znamenki,* L1 ADD HL, BL JP NC, L2 ADD HL, DE L2 DJNZ L1 LD (1002), HL HALT 'END .+1 DijeliPosmak t*'gB&Ww"WWFF#6GF3p$uDDRDD2Ģ$D""R"2U%24$DD2$BԤâD3DR"2ŤD#Dp$upBtBSâ-pBtpRD00D54@,*Z80 na 4 MHZ. CTC mjeri s, min, h. sec na 100(16), min na 1001, h na 1002 ' ORG 0 CTC0 'EQU 4 CTC1 'EQU 5 CTC2 'EQU 6 CTC3 'EQU 7,* INIT DI LD A, 20 LD I, A IM2 LD IX, 1000 LD (IX+0), 0 LD (IX+1), 0 LD (IX+2), 0,*p LD A, 10 OUT (CTC0), A LD A, %B00100101 OUT (CTC0), A LD A, %D125 OUT (CTC0), A LD A, %B11010101 OUT (CTC1), A,* LD A, %D125 OUT (CTC1), A LD A, %B11010101 OUT (CTC2), A LD A, %D60 OUT (CTC2), A LD A, %B11010101 OUT (CTC3), A,* LD A, %60 OUT (CTC3), A EI GLAVNI NOP JP GLAVNI 'ORG 2010 /PREKID. TABLICA 'DW 00 -- 'DW 00 -- 'DW 00,* 'DW 30 -- 'DW 00 -- 'DW 40 'DW 00 -- 'DW 50 /PREKID. POTPROG. 'ORG 3000 INC (IX+0) EI RETI,*0 'ORG 3000 INC (IX+1) LD (IX+0), 0 EI RETI 'ORG 5000 INC (IX+2),*0 LD (IX+1), 0 EI RETI 'END .+1n MnoziDijeli t* U"2B"U%SR"U$u4FtRFt22E$UR4BTĔFtâFt"2E$Ud4DDR2E$U"U4FtbFtb2E$URĢ4BTĔ UFtFtR2E$Ud42Ť4DDR2E$U"U%âD U%FtFt`D$%Ft $FtPFt2T$2T$ĢDD2Ť42E$U"$2T$2T$Ť4DDĢ2E$UbD$%2T$UDŤDDbD$%4"$TUDŤ4T@TĔFtâ@$UuFtd4Ft4EDFt2T$2T$Ť2E$Ud4DDBTĔ2E$U4EDĢ2T$4BTĔDDBTĔ2Ť42E$UB$Uu2T$2T$ĢDD4EDUDDDB$Uu4d42TUDDDBTĔ2E$U4ED4BTĔĢ2T$2T$Ť42Ť4DDd4TBTĔVD0&G&@,*0 Pocetna adresa podataka 200(8) `ORG 0 JMS PUT CLEAR ADD KRAJ COMPL IAC,*p ADD POC STORE I NEXT STORE J CONT ISZ J JUMP STRUCT ISZ I SKIP HALT,* JMS PUT CLEAR ADD I JUMP NEXT STRUCT CLEAR ADD I P1 STORE Z COMPL,* IAC ADD I P2 COMPLL SKIPL JUMP END ADD I P1 STORE I P1 CLEAR,*p ADD Z STORE I P2 END ISZ P1 ISZ P2 JUMP CONT POC `DW 200 KRAJ `DW 210 Z `DW 0,* I `DW 0 J `DW 0 P1 `DW 0 P2 `DW 0 PUT `DW 0 CLEAR ADD POC STORE P1,* IAC STORE P2 JUMP I PUT `ORG 200 `DW 123456 `DW 2 `DW 177777 `DW 0,* `DW 123123 `DW 2 `DW 667 `DW 12345 `END Pozitivni brojevi+1dVanjskeJedinicet*0FF2bb&&FVF6V2'WFV2Fb6bF EVUcS0VUc#0VUcC E$VUc#S0%VUc##0$VUc#C¢c05VUc3#04VUc3Cp%5VUc3c0EVUcC#0DVUcCCp%EVUcCc$uT¢d2242dU2%42dU$Ģ/T0dUFt"E2E$UT24ҔDT2dU0dU$Ft¢"E$2E$UBu2$4ҔDT2dU$ДDFt2T$DDTĢDDBu"D%22D2E$UBTҔD2T$Ţ2524r%DU42ET4r%DUDTĢp%DU4Ft2T$DDBr%524Tr%DU4p%DUDFt2T$ŢDDBr%E2DTr%DUDTFt@uFt@Ftx `$$@,*Brojilo na 101(8) uvjetni ili prekidni Terminal na 001(8) prekidni CTC 4 MHZ Meriti vrijeme stotinka : tisucinka,*pWRBRO `EQU 060106 CLBRO `EQU 060104 SKPBRO `EQU 060102 WRTERM `EQU 060016 CLTERM `EQU 060014 SKPTERM `EQU 060012 `ORG 0 GLAVNI IOF,* CLEAR ADD TIME WRBRO NASTAVI SKPBRO JUMP .-1 JUMP ISPIS DALJE CLBRO ISZ BROJAC1,*0 SKIP JMS POV_S JMS POV_T JUMP NASTAVI TIME `DW %D 4000 ISPIS ADD STOTINKA JMS IZLAZ CLEAR,* ADD DVE_TOCKE JMS IZLAZ CLEAR ADD I TISUCINKA JMS IZLAZ CLEAR ADD NOVI_RED JMS IZLAZ,* JUMP DALJE POV_S `DW 0 ISZ STOTINKA ADD MIN_DESET STORE BROJAC1 CLEAR ISZ BROJAC2 JUMP I POV_S,*P JUMP KRAJ POV_T `DW O CLEAR IAC AND MASKA ADD PETSTO STORE TISUCINKA JUMP I POV_T,*PIZLAZ `DW 0 WRTERM CLTERM JUMP I IZLAZ KRAJ `END STOTINKA `DW 60 TISUCINKA `DW 500 DVE_TOCKE `DW 72,*NOVI_RED `DW 12 MIN_DESET `DW -12 BROJAC1 `DW -12 BROJAC2 `DW -13 MASKA `DW 000007 `ORG 500 `DW 60,61,62,63,64,65,66,67,70,71+1` Z80Sortiraj t*$uD2D"ĒD2"DBU’DłBU44Ţ%DDRĂDBĂDĂDĂ2%4BTUd%et2uD5Ģ2Dd%et2uD52D0uD5DĂDĂD¤D‚DRĢDB0D44BT42%44BT4"ĢQD@UFt$u2FtRFRR6RvSRRRfCRRVR&FtRVR&RfCRRR3R3RfdRFRsVD*P%&V@,* pozitivni brojevi A+B=REZ 'ORG 0 CLEAR CLEARL ADD A ADD B STORE REZ,*0 CLEAR ROTL STORE GRESKA HALT A 'DW 33007 B 'DW 5120 REZ 'DW 0 GRESKA 'DW 0 'END+1Oduzmit*Ff"&Vf"#Up$u2T$2T$ŤDD"2Ť4ĢDD2E$U"U0T$2Ĥ"DŤ2E$Ur$U4DrBt23s rBtR#âO UrBtp$U4rBtpRD%&@,* pozitivno negativni brojevi A+B=REZ 'ORG 0 JMS ZBROJI HALT A 'DW 1527 B 'DW 14025,* REZ 'DW 0 GRESKA 'DW 0 ZBROJI 'DW 0 CLEAR CLEARL ADD A ROTL STORE POMAK_A,*P CLEAR CLEARL ADD B ROTL B STORE POMAK_B CLEAR CLEARL ADD POMAK_A,*0 ADD POMAK_B CLEAR ADD A ADD B STORE REZ CLEAR ROTL STORE GRESKA,* JUMP I ZBROJI POMAK_A 'DW 0 POMAK_B 'DW 0 'END .+1`9ZbrojiVPt*`6W6G'W'W66G2T$2T$ŤDDĤDD"Ĥ2E$U"UŤ2T$Ţ"DŤDDDD"2E$U"U2T$"DŤ2E$Ur$U4`T6@,*P y=35x+5, x=0...100(8) rezultat na 1100(8) 'ORG 0 CLEAR STORE X ADD BR COMPL,*P IAC STORE BR POC CLEAR ADD BRMN STORE POM CLEAR MNOZ ADD X ADD PET,* ISZ POM JUMP MNOZ STORE I Y ISZ Y ISZ X ISZ BR JUMP POC HALT,*0 X 'DW 0 Y 'DW 1100 BR 'DW 101 BRMN 'DW -35 POM 'DW 0 PET 'DW 5 'END+1. ZbrojiBlok t*FFFF&W6W WWFFp$u2T$DD"$D2E$U"$42T$ŢDDD$D2E$UD2T$UDŤDDD4D4"$4TUDŤ2E$UD$%UŢD $DrBtD$DrBtD$%UrBt $4rBtDrBtp$upBtbs""2RSâ;p$upBtpRD"`T6&@,*p y=8x+1 x=31 y=141 potprogram! (a) podaci iza JMS 'ORG 0 JMS POTP 'DW 31 'DW 0,*0 JMS POTP 'DW 141 'DW 0 HALT POTP 'DW 0 CLEAR CLEARL ADD I POTP,* ROTL ROTTL IAC ISZ POTP STORE I POTP ISZ POTP JUMP I POTP 'END,* (b) adrese podataka iza JMS 'ORG 0 JMS POTP 'DW 100 'DW 101 JMS POTP 'DW 102 'DW 103,* HALT POTP 'DW 0 CLEAR CLEARL ADD I POTP STORE ADR CLEAR CLEARL,* ADD I ADR ROTL ROTTL IAC STORE POM ISZ POTP CLEAR ADD I POTP,* STORE ADR CLEAR ADD POM STORE I ADR ISZ POTP JUMP I POTP ADR 'DW 0 POM 'DW 0 -- 'END+1RUsporedit*ǒF'v&֦ӓǓ0rBt2T$DD2Ģ2T$Ť"DŤ2E$U52T$2T$ŤDD"DŤ2T$ŢDD5DDBd2T$DD2Ť4DD2Ģ22Ť"DŤT25rBt@drBt"pU7w@,* potprogrami za stog PUSH 'DW 0 STORE TMP CLEAR COMPL ADD SP STORE SP,* CLEAR ADD TMP STORE I SP JUMP I PUSH POP 'DW 0 CLEAR ADD I SP,*p ISZ SP NOP JUMP I POP TMP 'DW 0 SP 'DW 0 .+1VJ1t*? RRgVF""VWgVFWƖvbb&c6bb&cFp%5rRUc3cp%ErRUcCc ErRUcS0rRUc#0rRUcCâ E$rRUc#S0%rRUc##0$rRUc#Cp$upd224%e2%âTrd唤4B$UuTrd唤%erBt"E22E$U42ĤĢT%e@$UurBt"E$2$2E$U%42ĤTB$UuĢ0ĤrBt2T$DDDD%r%52T$DD%2Ģ4DDr%ET2ĤrBt%rBt0`$3@,* 1 u. bezuvjetno; 2 i. prekidno parnost - salje na vj RD1 WR2, CL2, SKP2 WR3, CL3, SKP3 'ORG 0 'DW 0,* SKP2 SKIP JUMP S2 SKP3 SKIP JUMP S3 NATRAG ION JUMP I 0,*p GLAVNI ION NOP JUMP .-1 S2 RD1 JMS TEST WR2 CL2 JUMP NATRAG,*0 S3 RD1 JMS TEST WR3 CL3 JUMP NATRAG TEST 'DW 0 ROTR SKIPL,* JUMP PAR NEPAR ROTL IAC JUMP I TEST PAR ROTL JUMP I TEST .+18VJ3t* bb"&6VfV2Gvp$upBt4U5"D%4U5Ģ2T$DD4U522T22#2ŢT2%d42E$U4"DŤ4ĢT0T0%T0`D3@,*p 2 vj prekidno primnljen podatak bezuvjetno na 777(8) SKP1, RD1, CL1 SKP2, RD2, CL2 WR777 'ORG 0,* 'DW 0 POHRANA ISP_VJ SKP1 JUMP ISP_VJ2 CLEAR ADD OVJ1 SKIPZ JUMP ISP_VJ2,* JUMP VJ1 ISP_VJ2 JUMP VJ2 NATRAG IOF OBNOVA ION JUMP I 0 VJ1 CLEAR COMPL,* STORE OVJ1 ION RD1 OBRADA WR777 CLEAR STORE OVJ1 CL1,* JUMP NATRAG VJ2 ION RD2 OBRADA WR777 CL2 JUMP NATRAG OVJ 'DW 0,*GLAVNI ION NOP JUMP .-1 .+1@VJ5t*'W&&fV"b"&2RgVFp%52425"E4p$upddĢ2T$DDbUr%54Ed25T4"$24T4EdĢ $rBt`UrBtRB$"'WFp%52425"E4p$uTrdĢ%UD4"$24Tpdd2T$DDbUr%5âT $rBt`UrBtRB$$@TTTD`EP@tDU62ޢѶc#+1NORML-a#7-*z#-0#-*#--*Ae#m. Xg#+1@i#+1P"7,*z#-0 #ޢT6Ey6 #,*k#+1P"+1P"+1P"96(`P4d62 qqN*P0["[N*P["0x,*pF%c#+1PACK-a#3)2P\_ە]  TTT["96t0(56UNPACK3)#P\L#m. a#ɢ,*3)#0#ޢRY0xAe#m. g#K$#R5,*gѻ-*k3) p-a8*ɢ?96m0 ՘46201'4E6rN*PN*PѻNORMLN*P,*3)#0#H.P@tDq$#H.P@tDջqm. Xi_#H.@4c#+1 ^brsust,*pBIN. hex NBC BCD 2'k --------------------- 0000 0 0 0 0 0001 1 1 1 1 0010 2 2 2 2 0011 3 3 3 3 0100 4 4 4 4 0101 5 5 5 5 0110 6 6 6 6 0111 7 7 7 7 -------------------- 1000 8 8 8 -8 1001 9 9 9 -7 1010 A 10 - -6 1011 B 11 - -5 1100 C 12 - -4 1101 D 13 - -3 1110 E 14 - -2 1111 F 15 - -1 --------------------- IEEE 32: |P 1|K 8|F 23| (X)10=[(-1)^P]*1,F*[2^E] E=K-(127)10 IEEE 64: |P 1|K 11|F 52| (X)10=[(-1)^P]*1,F*[2^E] E=K-(1023)10 BCD: (532)10=0101 0011 0010 (1 dec. znam.=4 bita NBC koda) pakirani BCD: (235)10=00000010 00110101 (2 dec. znam.=8 bita NBC-a) nepakirani BCD: (235)10=00000000 00000010 00000011 00000101 (1 dec. zanm.=8 bita NBC-a) zbrajanje BCD-a: dodaje se (6)10 = (0110)2 ako: 1) S> (9)10 2) prijenos zbrajanje 2'k: -2 br. != predz. ne uzrok. preljev -2 b.r == predz. moze uzrok. preljev -preljev: pred. preibrojnika ==, predznak zbroja != A-L operacije: CARRY=C(n) OPERFLOW=C(n) XOR C(n-1) SIGN ZERO --------------------- |greska| NBC | 2'k | --------------------- |zbr. +| C=1 | ov=1 | --------------------- |odz. -| C=0 | ov=1 | --------------------- Usporedba brojeva NBC x-y ------- Gledamo zastavice za x=>y ==> x-y=>0 ==> u NBC opsegu je ==> nema greske ==> carry = 1 x x-y < 0 ==> izvan BC opsega je ==> greska==> carry = 0 dvojni kompl. x-y ------ Gledamo zastavice za x=>y ==> x-y => 0 ==> rez je poz ==> najvisi bit rez. je 0 ==> sign = 0 x x-y < 0 ==> rez je neg ==> najvisi bit rez je 1 ==> SIGN = 1 ALI!!! Ako dodje do greske (OFL = 1), tada je sign komplementiran. 03`L0TE48F'w"F'&%gW&FcB&Wwc"W#c⢠p&wFF"FFF"F#FpRFҢ %wc"F'&%gVc¢@&Ww#c¢"WCc⢠p&wF"6F#FF"6FCƦFpRFҢ0%wc"FFVF6c¢#cCc⢠p&wF6GfǦV26Gf6VF'gF"6#C&Ww0'6"6FVVFC3'WVFpRFҢ@%w"F"4D'&F6c¢c#cp&wFF"FFF"@'vF&R"4DF#FpRFҢP"F"&VFF'&cc¢#c⢠r&wFF"FFBFRBVB&WwW&FF"WWFFRWFǦFFBVBWFǦF#ƦFrRFҢ`F'wBfV"F"&VFF֦6%gâ@&Ww"W#r&wFF'gW&FFFFRB&WwW&FFBBF""&6VFF6ҦV6GRǖVf6&f6"F6GfǦVFFBVB'&&B&WwW&F"WWFFW&BfB2gWVVF#2'WV"WWFFFrRFҢp%wBVƦ" F"&&6GW6VFFV6梀"W#6GF3⢠r&wFFRR'gW&FFF22C&WwW&F&6Gf2&'F""&6V"Rf6"FBVƦV斶&2&'"2GfR斦"FF2W'2V7FVWFBVƖFWƦFf6"FfBVƦV斶6&WB&&FF2V"W6GV'&&B2ǖVFV6FW&6F32'W֖6GFFRRז"WWFF"6F榖"FFBVƦV2"WWFFF#&Vr2'W֖Fr&wBW6GF6pBvBSpBvrRF&6VV'v&f'v&"FBBBVƦV斶2GfRR"Wv6G&FrR2g&V֖6VRǖVfR"Wv6G&BVƖFWƦVR2 Wv6G'WR2g&V2WV7fFVWF2F▦VvV7V0bW6F2R"WWFFB'W&6GfFFvf&V7"FRP'g&V2W6GfǦf6"F"WWFFRB&Ww2ǖVFV6"FRF76GW2W'fFWGV&2W"FF6&V2WR6GFR'v&V2WVV7VvFVB'W&6"W6GFW'&F`'VF6G'VBvFV4FfV2&fǦ2W6V6Gf6V'V6'&&VGWb'VF6GF"FB'W&2GfFR"WWFFBV&6GW2GfǦV"WWFFPR"Wv6G&Ff6V'V6F"WҢ%wWVV"V'VBVf"& $2WWVRBTV6VF R"4BVǦ 梠r&wF"&2WW疦FBV"6"&F"6BVǦ"&FBVWVҦV6G"&V֦6BVf62ǖҦV6GBV6"62榖"&6Rffv2VB'W&Fr2'W֖F2&"&RffvV–"&6"6b'F&Fr&wpBvRrRFҢUVV"V֦6VDr&wFFFWVFBV"6VFWV榦F"6BVǦ"F&FrFfBV6&6GFDrfW6fVFr&b'FF&Fr&wpBvRrRFҢ%WFg&'▦FB452VT"&Rc"F"&f63斦"URCcr&wFBVF&6֦F"B"&6֦F6G"WƖ&'W66"W碠FFƦFFƦFFƦFFV6VGB"FRǖVf&FBVF22֣2W'B6V榖FBrtBF6FFBFBV6rtrbtF6F2b%Fb'VF6G'VFV2W'2DVז2rsrsFFF¦F6BVBFC‚ƦFr&wpBv22#BB#rRFҢ%w'WFg&'Vc F""&R▦FB67V"$0WF&CcfW0'W֖FWcf6W¢3c斦W碠r&wFBVF&6֦F"B"&6֦FƂCRFFF¦FcR斦B"F2&2WbW6FBF&FF2BF2rsrs6&FF2sBF2srtrbt6FBV2'W֖456BV2ǦVFV6"'"'¦"'"'¦"'"'¦"'"'B"FRGV6BfǦ2gWVVFr&wpBvpBv$#rRFҢ#%w'fW6 &RVG&F"VV6 R"4Vc FFFBVǦfW6"&2W2'W֖䢠r&wF6"F"6RBBVǦ"FfW6"&2&V"&榖FBF&BV6b'F2WBW6G"&FƖ2'W֖rfW6Vv66Gf2BW6G&梠&WBFVrFfF2'W֖"WWFFFr&wpBv"Rr"BbrRFҢ32Et҃'6VF32'W֖Fr%V66V0Gvr&wpfF&W7Ʀ2FƦF¦FFFƦ2Ʀ2Ʀ2Ʀ6¦W7ƦW7"WFrRFҢC@d"&R"4Db& $2WRVF"&"&&RBVW2WF6"&"UFV2'W֖FWPҖVWF梀"&҂"&&"&@V"GW"F"&F"&&FBV62'2fF"vFvBVƖ2V&&2BfF"&FVזF2'6BF66BFVזFǂBLOK,*pAritmeticka sredina 'org 0 ld (2000),0 ld ix,1000 ld b,0 petlja ld a,(ix+0) ld e,a ld d,0 ld hl,(zbroj) add hl,de ld (zbroj),hl inc ix inc b ld a,b cp 7 jp z,nast jp petlja nast ld a,l srl a srl a srl a ld l,a ld b,0 ld a,0 broji ld c,%d32 ld a,(2000) add a,c ld (2000),a inc b ld a,b cp h jp z,dalje jp broji dalje ld a,l ld e,a ld a,(2000) add a,e ld (2000),a halt zbroj 'dw 0,0 'org 1000 'dw .... ;podatci 'end -------------------- Najmanji cl. bloka 'org 0 ld (2000),0 ld ix,1000 ld b,0 ld a,(ix+0) ld c,a inc ix inc b najmanji ld a,c cp 0 jp p,c_poz jp n,c_neg c_poz ld a,(x+0) cp 0 jp p,c_poz_a_poz jp n,c_poz_a_neg c_neg ld a,(x+0) cp 0 jp p,c_neg_a_poz jp n,c_neg_a_neg c_poz_a_poz ld a,(ix+0) cp c jp n,promjena jp nastavi c_poz_a_neg jp promjena c_neg_a_poz jp nastavi c_neg_a_neg ld a,(ix+0) cpl iac ld d,a ld a,c cpl iac cp d jp n,promjena jp nastavi promjena ld a,(ix+0) ld c,a nastavi inc ix inc b ld a,b cp %h10ff jp z,kraj jp najmanji kraj halt 'end 00D54F'Ɩ&"&'gWFVFbP2gVFS`%0G'rVV&2WW6RR2D5%wPF'W&'WF"&VF"&R6WVR2D5VF&@cF&'WB&Ʀ'WF'wF&V&FW0֖梠rRW0F7rRWBF&2D5VB0F7rRWR0F7&rRWb0F76rRWrFBBb'VV6Ɩ6VF"'WFB&6V"FWVV"Wv6G'"'WF6"FFƖ6"&6FF&W6F'v&V"VG2F7'WFbWF&FR"2WFW2D5VG2F7R2VFW&4FFRBSVG2F7B5SRpfrf疦r&w"'WFB&Ɩ6rBv"F&W6F'vrBv2BF&W62r&w2'WFF'v&֦6ƖRgW6"&6VF6RvV7'f6V'WF"WFf'F'WFvF'vrRFҢ 2W7Gf"FBЄ2D52"V6ЦV&WV2W6Җ0F2U62WR6WVPVҦV6GЖ2F#㢠r&w0F7rRWB0F7rRWR0F7&rRWb0F76rRWrFBBb'VV6F"FWVV"Wv6G'"'WF6"FFF6GfǦV2gb'6FF"FVG2F7'WFbWF&FR"VG2F7BBV&"Sc4FB%vvdfFRB#SVG2F7B5#SFR"VG2F7S2VFW&4FFRB#SVG2F7B5#SFR"VG2F7&&S2VFW&4FFRBbVG2F7&&B5cFR"VG2F766S2VFW&4FFRBbVG2F766B5cRpfrfrf'v&֦r&w"'WFB&Ɩ6rBv2F7rBvrBv2F7rBv2rBv2F7&rBvBrBv2F76rBvR'WFF'v&֖r&w2'WFF6RgW62WR"WFr&wB'WF"6RgW6ҖFb'F2WR"WFr&wR'WF26"RgW62FWFb'FҖVGWR"WFrRF&SMIR*|AUDIT,*1 Prg. za rac. y(x)=35(x+5). Pomocu njega izracunaj y(x), 0<=x<=100 i spremiti ih na adrese 1000+. X ide u potprg. preko mem. lok. x 'org 0 poc clear store x petlja jms y_od_x store i tabl isz tabl isz x isz brojac jump petlja halt tabl 'dw 1000 brojac 'dw -101 y_od_x 'dw 0 clear add m_35 store brojac2 clear mnoz add x add b_5 isz brojac2 jump mnoz jump i y_od_x x 'dw 0 m_35 'dw -35 b_5 'dw 5 brojac 'dw 0 'end -------------------- 2 Potprg. za rac. y(x)=10x+1. U gl. prg. izrac. y(31) i y(141). X i Y se prenose iza jms naredbe 'org 0 jms potp 'dw 31 'dw 0 jms potp 'dw 141 'dw 0 halt potp 'dw 0 clear clearl add i potp rotl rottl iac isz potp store i potp isz potp jump i potp -------------------- 3 U mem je upisan niz od 3 ASCII znaka koji prestavljaju zapis br. u bazi 6. Najvisa znam. je na 1. lokac. Pretvorite ovaj zapis u NBC broj. clear opet add i ascii add korekcija jms puta_6 isz ascii isz brojac jump opet add i ascii add korekcija store nbc puta_6 'dw 0 store pom clearl rotl add pom rotl jump i puta_6 ascii 'dw 0 nbc 'dw 0 'org 100 'dw 62,63,65 /U bazi 6 brojac 'dw -2 korekcija 'dw -60 -------------------- 4 Pocevsi od lok. 100 nalazi se blok podat. koji sadrzi iskljucivo cijele poz. br. Br. podat. je nepoznat, ali zavrsava sa -1. Prg. koji odredjuje blok podataka tako da se na poc. nalaze svi parni br., a iza njih svi neparni br. prebr clear add i kraj iac skipz skip jump sort isz kraj jump prebr sort clear compl add pocetak store pocetak petlja1 isz pocetak clear add pocetak compl iac add kraj skipz skip jump gotovo celar add i pocetak rotr skipl jump petlja1 petlja2 clear compl add kraj store kraj compl iac add pocetak skipz skip jump gotovo clear add i kraj rotr skipl skip jump petlja2 clear add i pocetak store pom clear add i kraj store i pocetak clear add pom store i kraj jump petlja 1 gotovo 'dw 100 pocetak 'dw 100 pom 'dw 0 -------------------- 5 Pretvara BCD u NBC clear opet add i bcd jms puta_10 isz bcd isz brojac jump opet add i bcd store nbc halt brojac 'dw -3 pita_10 'dw 0 store pom clearl rottl add pom rotl jump i puta_10 bcd 'dw 100 nbc 'dw 0 'org 100 'base D 'dw 7,2,1,9 'end -------------------- 6 Prekid u prekidu push 'dw 0 store tmp clear compl add sp store sp clear add tmp store i sp jump i push pop 'dw 0 clear add i sp isz sp nop jump i pop -------------------- 7 Prg. iza postojece rijeci upisuje obrnutu rijec. (npr. Ivica0>>acivI0) 'org 0 clear citaj jms push clear add i rijec isz rijec skip rijec skipz jump citaj pisi jms pop store i rijec isz rijec skipz jump pisi halt 'org 100 'dw 111,126,111 'dw 103,101,0 rijec 'dw 100 (...ima jos...)0@4}@Բ&F2V7Ƣ'WVFFF0bRV"6@VB'V6Ƣ0U2R"&PV"VFF&Bss¢PƦV7"$R"V0WBVB@'W&6V7Wv⢰F2WrFfBWV"ƢV7GfF2UTFF&WƦ梠p'F&rRWcbp'%&FrRWc#bpErRWc3p&wpf2V&FFF&r'F&2V&FF"&Fr'%&FrE2V&FF&2Ǧ6FF6VF2G&W"&62V&WFǦFF6VF6"&6VWFǦ2G&W"WWFF2V&FF2GFW72V2FF&rBv" &FrBv&rBvss6VFrBv &6rBv WWFFrBv0GFW7rBvVrBvp&wrBvVrf疦2G&WV2V&2G&W2GFW7FFVVrRFҢ UWFFWҦV&Wb 6RV6FWR"V 6bUƖ6"VҦV6G6F&2ҦV6GR62gFF¢6ƦV7R'WF梠V7GfǦ'6p&w22#2V&FF&FBr'2V&FFr'#2V&r2G&GB2#V"2f'7B2#VFF'W&V'WFfFVFB–2V'V'gvFFW6"'ƦVFVf'RgW6FF&"Wv6G&"&&rBv#sssrBvsscsspRFҢ&F2V70rRWc0#rRWc#p'rRWc#p'#rRWc##prRWc3 GrRWcC0GrRWcSp&wpBv22#Vp&w22#2V&FF&r'2V&FFr'#2V&rVF&rBv#sssrBvsscsspRFҢ'v&֖&'V60rRWcprRWc3 GrRWcC0GrRWcSp&wb0G&G22V&FF&2G&W&2V&FF2G&W"&rf2V2V&"G22G&W&6&6"&Vf2GF&rBv&rBv3rBvsss &rBvpRFҢ'WF'V60rRWcprRWc3 GrRWcC0GrRWcSp&wpBv2G&W2V&"G22G&W&6&2V&FF6"&V&rBv3'rBvrBvsssrBvrBv &rBv0G&G22V&FF&2G&W&2V&FF2G&W"&rVFpRFƨMACRO,*P*Macro Macro naredba za izracunavanje aps. vrijednosti broja. Broj je u akumulatoru. 'org 100 abs 'macro skipn jump .+3 compl iac 'endmacro /GLAVNI PROGRAM poc clear add broj abs store abroj halt broj 'dw 000020 abroj 'dw 000000 'end@U$EDVVR"sǦp&w0V&0V&ǦFF FǦ0G&W0V&0V&ǦFF"0Ǧ FǦ0G&W%0V&0V&ǦFFFF%FFBf60V&FF"0Ǧ6FF0G&W"W0V& FǦ0G&Wr&W6FҢ %&V"B66G0V&0V&ǦFF"Ʀ0Ǧ6FFƦ0G&W"Ǧ0V& FǦ0G&WVF'0V&0V&ǦFF"0ǦFFFFVF'0G&W"0V& FǦ0G&W'V6Ң0DVV"B66G0V&0V&ǦFFƦFF"Ʀ0G&W"Ǧ0V& FǦFFFF"0&W"0V& FǦ0G&W'V6Ң@%&F"&B@"W"VGVR"s'W6 $2WRVFF&$4WFǦ2V&2V&ǦFF"ǦFF"&2G&W"Ǧ2V&"FǦFF"2G&W"6"&6"&6VWFǦF rBv rBv &rBv &6rBvpRF sǦWFǦ2V&2V&ǦFF"ǦFF"&2G&W"Ǧ2V&"FǦ2G&WVF'2V&FF"&2VVv2V&2G&Wb6V6GfVv2V&2Ǧ2G&Wb6V6Gf6Gf2V&FF"FFb6FFVF'2G&W"6"&6"&66WFǦFVF'rBv`6rBv rBv rBv &6rBv &ҢP@d2W6WV2"'&&VWV2"֦p&w#VF2V&Ǧ2V&FF"FǦ2G&WB"FǦ"FǦFFB2G&WF@rBvpRFP6G'&Vp&w#V2V&FF2G&W2VF2V&FF62VFV"2G&WF0VFrBvrBVsssccpRFPREKID,*P+1 Na SMIR su spojene 2 uvj VJ: vj10 na adr 10 i vj20 na adr 20. Prek. jed vj30 na adr 30. Smir cita pod. s vj10 i izracunava f-ju SIGN od ucit.podat te salje vrijedn. na vj20. Kada dodje prekid, na vj30 treba poslati podatak koliko je do sada ukupn podat primlj od vj10. rd_10 'equ 06 010 5 cl_10 'equ 06 010 4 skp_10 'equ 06 010 2 wr_20 'equ 06 020 6 cl_20 'equ 06 020 4 skp_20 'equ 06 020 2 wr_30 'equ 06 030 6 cl_30 'equ 06 030 4 skp_30 'equ 06 030 2 'org 0 'dw 0 store aku clear clearl add brojac wr_30 cl_30 ion jump i 0 'org 100 glavni clear clearl ion skp_10 jump .-1 rd_10 cl_10 store podatak isz brojac skp_20 jump .-1 clear add podatak skipn jump .+5 clear add minus_1 wr_20 cl_20 clear add podatak skipz jump .+5 clear add nula wr_20 cl_20 clear add podatak skipp jump .+5 clear add jedan wr_20 cl_20 jump glavni halt podatak 'dw 0 brojac 'dw 0 minus_1 'dw %D-1 nula 'dw 0 jedan 'dw 0 aku 'dw 0 'end -------------------- 2 SMIR cita podatke s vj10. Ako je primlj br. poz. -> salje se na bezuv vj20, ako je neg. -> zanemaruje se. Vj30 radi u prekidnom modu. Kada SMIR primi prekid s vj30, salje na nju br. poz. podat poslanih s vj10 na vj20. rd_10 'equ 06 010 5 cl_10 'equ 06 010 3 skp_10 'equ 06 010 2 wr_20 'equ 06 020 6 skp_30 'equ 06 030 2 cl_30 'equ 06 030 4 wr_30 'equ 06 030 6 'org 0 jump glavni store aku clear clearl add broj_pod wr_30 cl_30 add aku ion jump i 0 glavni clear clearl ion skp_10 jump .-1 rd_10 cl_10 skipp skip wr_20 skipp skip isz broj_pod jump glavni halt aku 'dw 0 broj_pod 'dw 0 'end -------------------- 3 Prg koji ce na pisacu ispisati porku POZDRAV nakon sto se pritis neka tipka. U slucaju zahtjeva PC se sprema u mjesto 0, a izvodi se naredba na mjestu 1. wrtty 'equ 060016 skptty 'equ 060012 cltty 'equ 060014 skptipk 'equ 060022 cltipk 'equ 060024 /poc adr. prek. potp. 'org 0 'dw 0 jump servis /glavni program 'org 200 clear clearl add broj store brlo clear add ablok store blok clear cltty cltipk ion nop jump .-1 servis store spasi /obrda prekida clear rotl store link clear skptipk skip jump tipkov skptty skip jump ttyp jump natrag tipkov cltipk clear iac store tipka jump natrag ttyp clear add tipka skipz skip jump natrag add i blok wrtty cltty clear isz blok isz brlo jump natrag halt natrag add link rotr add spasi ion jump i 0 spasi 'dw 0 link 'dw 0 broj 'dw 177771 brlo 'dw 0 ablok 'dw 000400 blok 'dw 0 tipka 'dw 0 'org 400 / P O Z D R A V 'dw 120, 117, 132, 104, 122, 101, 126 'end -------------------- 4 Prg. uvj. prijen. prenosi se na lin. s adr 10(8), 100(8) znak. iz polja mem. s poc adr 2000(8), do zaust prg. To nadzire poseb sklop, ako je nesto neispr. sklop trazi ponavlj znaka dajuci zahtjev za prekid. Napisite potprg. za ponavlj znaka. skp10 'equ 060102 cl10 'equ 060104 wr10 'equ 060106 'org 100 pocet clear add m100 store count clear add a2000 store po ion out isz po isz count skip jump halt clear add i po skp10 jump .-1 wr10 cl10 jump out halt halt count 'dw 0 m100 'dw 177677 /-101 po 'dw 0 a2000 'dw 001777 'end Rjesenje: 'org 0 'dw 0 clear compl add po store po clear compl add count store count clear cl10 ion jump i 0 'end -------------------- 5 Tri vanjske jed. 31, 32,33 spojene na prek lin. rac. Svaki uredj sprema pod. u svoj blok mem. Nakon sto pojed. jed posalju 100(10) pod. treba ih iskljuciti. go31 'equ 060311 go32 'equ 060321 go33 'equ 060331 skp31 'equ 060312 skp32 'equ 060322 skp33 'equ 060332 rd31 'egu 060313 rd32 'egu 060323 rd33 'egu 060333 cl31 'equ 060314 cl32 'equ 060324 cl33 'equ 060334 stop32 'equ 060315 stop32 'equ 060325 stop32 'equ 060335 'org 0 'dw 0 jump ulaz 'org 200 clear add m100 store broj1 store broj2 store broj3 clear add ab1 store pob1 clear add ab2 store pob2 clear add ab3 store pob3 clear go31 go32 go33 ion nop jump .-1 halt m100 'dw 177634 /-100(10) broj1 'dw 0 broj2 'dw 0 broj3 'dw 0 ab1 'dw 001000 /b1 ab2 'dw 001144 /b2 ab3 'dw 001310 /b3 pob1 'dw 0 pob2 'dw 0 pob3 'dw 0 ak 'dw 0 link 'dw 0 ulaz store ak clear rotl store link skp31 skip jump ulaz1 skp32 skip jump ulaz2 skp33 skip jump ulaz3 izlaz clear add link rotr add ak ion jump i 0 ulaz1 clear rd31 cl31 store i pob1 isz pob1 isz broj1 skip stop31 jump izlaz ulaz2 clear rd 32 (... i tako dalje... ) -------------------- 6 Izvodjenje prg SMIR-a traje jedan sat. Nakon prekida brisu se regist, a mem ostaje. bezuvj. prekid sa skokom na lok. 0 koji cuva registre. 'org 0 'dw 0 store ak clear rotl store link halt ak 'dw 0 link 'dw 0 'org 20 /inicijalizac. inic clear add link rotr clear add ak jump i 0 'end2@P5D "6"Fӄb&WBF'6¢VF'2FB'V@2V7BFVBB4BR7ҢP5&WF&"&VfҢ$4גpVF6Gf6VגR$47WvVVVp&W6V2&'Ǔג㣐g"47WvVp&W62&'@fגҢpVF6Gf6Vג WVf6"F"WV2vǓג WVVvf6"F"WV2tĔBFVBp&W6Vd¢@FV2v榰VVF&Ң%v&֦rBv2V&FF2ǦFF62G&W֦2V&FFFF6FF֦2V&FF2Ǧ6FF2ǦVVu&Vr&W6Vu&2VeW6VeW6p&W62VeW6VeW6eW62V&FFVeW62V&FFVrBv6rBvrssssVJ,*1 Ucit podat; VJ ima broj 3 skp3 'equ 060032 rd3 'equ 060035 cl3 'equ 060034 'org 500 ulaz 0 skp3 jump .-1 clear rd3 cl3 jump ulaz 'end -------------------- Pisanje podataka vanjska jed. je 4 skp4 'equ 060042 cl4 'equ 060044 wr4 'equ 060046 'org 520 izlaz 'dw 0 skp4 jump .-1 wr4 cl4 jump izlaz 'end -------------------- 2 Zvuk zvona 5 puta 'org 530 zvono 'dw 0 clear add m5 store count clear add k207 jms izlaz jms kas isz count jump .-3 jump zvono m5 'dw 177773 /-5 k007 'dw 000007 count 'dw 0 'end -------------------- 3 Prg. koji treba ispisivati bin sadrz. mj. AC, bit po bit (lij->des). Za ispit. bin vrij. svakog od 16(10) bin mj. korist link L. Stampac je na 33(8), "0"=60(8), "1"=61(8) wr33 'equ 060336 skp33 'equ 060332 cl33 'equ 060334 'org 20 po clear clearl add ac rotl store ac clear add asc skipl jump .+2 iac skp33 jump .-1 wr33 cl33 isz count jump po halt asc 'dw 000060 count 'dw 177760 ac 'dw 010101 'end -------------------- 4 Def. sadrz. mjest m tako da se s term primaju okt. br u ASCII kodu i pretv. u binar. Adr. ul jed term. je 1. skptty 'equ 060012 cltty 'equ 060014 rdtty 'equ 060015 'org 20 skptty jump .-1 clear rdtty cltty and m store broj halt m 'dw 0 broj 'dw 0 'end -------------------- 5 Prg ispis sadrz 100(8) mj iz tabl 2000(8) uz uvjet: osim ispisne jed na rac je spojena tipka, a pritiskom se ispisuje jedan podat iz tabl. Ispisna tabl. je 1. Tipka je na adr. 2. cltty 'equ 060014 wrtty 'equ 060016 skptipka 'equ 060022 skptty 'equ 060012 'org 400 clear cltty wrttty add A2000 store pox clear add M100 store count B skptipka jump .-1 skptty jump .-1 clear add i pox wrtty cltty isz pox isz count jump B halt A2000 'dw 002000 pox 'dw 0 M100 'dw 177634 count 'dw 0 'end -------------------- 6 Potprg koji ce na izl. jed. ispisati text NASLOV: za slanje koristite preth. potprg. 'org 23 izlaz 'equ 520 /adr potprogr. iz preth nas 'dw 0 clear add mb store count clear go add an jms izlaz /definiran prije clear isz go /adr. modifikacija isz count jump go add mb /popr. naredbu na add go /mjestu go zbog slijedeceg store go /poziva potprograma clear jump i nas / ASCII kod za "NASLOV:" an 'dw 000116 aa 'dw 000101 as 'dw 000123 al 'dw 000114 ao 'dw 000117 av 'dw 000126 adt 'dw 000072 mb 'dw 177771 /-7 count 'dw 0 'end