Namų darbai

Mikroprocesoriai ir mikroprocesorinės sistemos

10   (1 atsiliepimai)
Mikroprocesoriai ir mikroprocesorinės sistemos 1 puslapis
Mikroprocesoriai ir mikroprocesorinės sistemos 2 puslapis
Mikroprocesoriai ir mikroprocesorinės sistemos 3 puslapis
Mikroprocesoriai ir mikroprocesorinės sistemos 4 puslapis
Mikroprocesoriai ir mikroprocesorinės sistemos 5 puslapis
Mikroprocesoriai ir mikroprocesorinės sistemos 6 puslapis
Mikroprocesoriai ir mikroprocesorinės sistemos 7 puslapis
Mikroprocesoriai ir mikroprocesorinės sistemos 8 puslapis
Mikroprocesoriai ir mikroprocesorinės sistemos 9 puslapis
Mikroprocesoriai ir mikroprocesorinės sistemos 10 puslapis
Mikroprocesoriai ir mikroprocesorinės sistemos 11 puslapis
Mikroprocesoriai ir mikroprocesorinės sistemos 12 puslapis
Mikroprocesoriai ir mikroprocesorinės sistemos 13 puslapis
Mikroprocesoriai ir mikroprocesorinės sistemos 14 puslapis
Mikroprocesoriai ir mikroprocesorinės sistemos 15 puslapis
Mikroprocesoriai ir mikroprocesorinės sistemos 16 puslapis
www.nemoku.lt
www.nemoku.lt
Aukščiau pateiktos peržiūros nuotraukos yra sumažintos kokybės. Norėdami matyti visą darbą, spustelkite peržiūrėti darbą.
Ištrauka

1. Šešiolikos skilčių mokomosios mikroprocesorinės sistemos tyrimas 1.1. Registrų ir atminties peržiūros ir modifikavimo rezultatai 1 lentelė. Bandymų su registrais rezultatai Registras Registro turinys pradinis po modifikavimo paspaudus "СБ " AX 4732 5778 5778 BX 5FF0 1234 1234 CX 7FF0 FFFF FFFF DX 0FA3 ABCD ABCD SP 1111 2222 1111 BP 3F32 0000 0000 SI 0000 2002 2002 DI 7793 CCC1 CCC1 FL 0000 FFFF 0000 CS 0000 4444 0000 SS 0000 1234 0000 DS 0000 9999 0000 ES 0000 0123 0000 2 lentelė. MPS atminties peržiūros ir modifikavimo rezultatai Ląstelės adresas (CS:XXXX) Komanda "БТ"išrinkti duomenys Komanda "СЛ" išrinkti duomenys pradiniai pakeisti pradiniai pakeisti 0000 : 0112 91 69 CF69 AAAA 0000 : 0100 C1 55 B1C1 BBBB 0000 : 0123 F1 DD AFDD CCC6 0000 : 0183 0F 11 FD11 DDDD 0000 : 0114 32 AB 3FAB 1234 0000 : 01F5 B0 BF 00FF ABCD F000 : 0010 FF Err FFFF Err F000 : F801 FF Err FFFF Err F000 : FA32 FF Err FFFF Err F000 : FFF3 FF Err FFFF Err F000 : FBB4 FF Err FFFF Err F000 : FFFF FF Err FFFF Err 1.2. Duomenų persiuntimo atmintyje rezultatai 3 lentelė. Duomenų persiuntimas atmintyje Pradiniai duomenys Komanda " (ПРС) (,) (,) (.)" persiųsti duomenys adresas duomenys adresas duomenys 0000:0100 00 0000:0120 00 0000:0101 11 0000:0121 11 0000:0102 22 0000:0122 22 0000:0103 33 0000:0123 33 1.3. Duomenų baito išvestis per prievadą Išvesties prievadas P1B programojamas taip: (BЫB Б) , . Išvedant duomenų baitą per prievadą P1B, renkama tokia komandų eilutė: (BЫB Б) , . Čia D3 yra duomenys. Įvykdžius komandą, diodų eilutėje dega diodai, atitinkantys šešioliktainio skaičiaus D3 dvejetainio kodo vienetus: 11010011. 1.4. Duomenų baito įvestis per prievadą Įvesties prievadas P2B įvedimui užsiprogramuoja automatiškai, įjungus MPS ir paspaudus „CБPOC”. Įvedant duomenis per prievadą P1B, renkama tokia komandų eilutė: (BB Б) , Displėjaus ekrane išvedami duomenys D3. 1.5. Displėjaus monitoriaus komandų valdymas Naudojantis displėjaus monitoriaus programa, MPS galima valdyti kompiuterio pagalba. mikrolab-86, V1.1 .X AX=59FF- 0650 // registrų peržiūrėjimas ir modifikavimas .X AX=0650- .S 0110, 8F- 99 //atminties peržiūrėjimas ir modifikavimas .S 0110, 99- .SW 0120, 5F22- AACC //šešiolikos skilčių atminties ląstelės peržiūrėjimas ir modifikavimas .SW 0120, AACC- .DW 0150,0165 // atminties bloko turinio išvestis šešiolikos skilčių operandais 0150 3365 9022 8F78 3FF1 AB72 1FF3 7090 CFB3 0160 6565 3BB0 CFF3 .M 0150, 0165, 0110 //duomenų atmintyje perkėlimas .DW 0150,0165 0150 3365 9022 8F78 3FF1 AB72 1FF3 7090 CFB3 0160 6565 3BB0 CFF3 .DW 0110,0125 0110 3365 9022 8F78 3FF1 AB72 1FF3 7090 CFB3 0120 6565 3BB0 CFF3 .O FFFC, E9 //duomenų išvestis per prievadą P1C .I FFFC, //duomenų baito įvestis per prievadą P1C E9 .G 0000= F3 0000,0002 //paleidžiama vartotojo programa BR@0000:0002 //kompiuteris įvykdo vartotojo programą Išvados Atlikdami laboratorinį darbą bandėme modifikuoti registrus ir atmintį. Kai kurių registrų turinys po klavišo “СБ” paspaudimo pasikeisdavo, kai kurių išlikdavo toks pats. Taip pat pilnai atmintis nebuvo modifikuojama. Vėliau sėkmingai įvykdėm duomenų persiuntimą atmintyje. Taip pat sėkmingai duomenis išvedėm (P1B) ir įvedėm per prievadą (P2B). Dar vėliau sujungėme Mikroprocesorių su kompiuteriu, per COM prievadą. Patikrinome displėjaus monitoriaus komandas. 2. Segmentinio atminties adresavimo principas 80x86 šeimos mikroprocesoriuose 2.1. Informacijos surašymas į gretimus kodo segmentus .X CS0000- //į segmentinio registro CS turinį įrašoma 0000 .S 0100, AF- 65 //į keturias atminties ląsteles įrašomi pasirinkti skaičiai .S 0101, B0- 33 .S 0102, 3B- CC .S 0103, F3- 78 .X CS0000- 0001 // į segmentinio registro CS turinį įrašoma 0001) .S 0100, AF- 65 // į keturias atminties ląsteles įrašomi pasirinkti skaičiai .S 0101, B0- 33 .S 0102, 3B- CC .S 0103, F3- 78 . mikrolab-86, V1.1 .D 0100,0114 //patikrinama 14 atminties ląstelių turinys 0100 65 33 CC 78 D5 EF 00 F0 65 F0 00 F0 1E 54 00 C0 0110 65 33 CC 78 D0 Kai informacija rašoma į atminties ląsteles su skirtingais segmentiniais adresais, pakeitus segmento adresą į pradinį, informacija, įrašyta į aukštesnį segmentą, persikelia per 1016 atminties ląstelių (vienas segmentas atitinka 1016 atminties ląstelių). 2.2. Informacijos surašymas į kodo, duomenų, dėklo ir papildomo duomenų segmentus mikrolab-86, V1.1 .X CS0000- //į segmentinius registrus įrašomi adresai .X DS0000- 0001 .X SS0000- 0002 .X ES0000- 0003 .S CS:0100, D0- AB //į segmentų adresus įrašomi skaičiai .S CS:0101, 6D- 55 .S CS:0102, 00- CC .S CS:0103, 1A- 99 .S DS:0100, 08- AB .S DS:0101, 46- 55 .S DS:0102, F0- CC .S DS:0103, EE- 99 .S SS:0100, 01- AB .S SS:0101, AB- 55 .S SS:0102, C5- CC .S SS:0103, FA- 99 .S ES:0100, 90- AB .S ES:0101, C0- 55 .S ES:0102, B3- CC .S ES:0103, 7E- 99 . mikrolab-86, V1.1 .D 0100,0134 //patikrinama 34 atminties ląstelių turinys 0100 AB 55 CC 99 D0 E7 00 F0 05 F0 00 F0 D0 E7 00 F0 0110 AB 55 CC 99 D0 E7 00 F0 D0 E7 00 F0 37 26 4E FD 0120 AB 55 CC 99 D0 E7 00 F0 D0 E7 00 F0 FC 04 70 00 0130 AB 55 CC 99 D0 Kiekvieną segmentinį registrą galima naudoti segmento nurodymui. Vienas segmento adresas skiria 1016 atminties ląstelių. 2.3. Perėjimas į kitą atminties segmentą mikrolab-86, V1.1 .S 0200, 5D- A1 (į atminties ląsteles įrašomi pasirinkti skaičiai) .S 0201, 89- B1 .S 0202, 70- C1 .S 0203, FF- D1 .X CS0000- 0001 (segmentinių registrų turiniai padidinami vienetu) .X DS0000- 0001 .X SS0000- 0001 .X ES0000- 0001 .D 0150,0250 (patikrinama atmintis nuo 150 iki 250 adreso) 0150 3C 1A 77 46 A2 9B D3 B0 04 EB C8 F6 05 40 74 09 0160 E8 5B 00 72 CE 72 2E EB BA F6 05 80 74 1F E8 57 0170 01 EB F2 83 7D 02 FF 74 0C F7 45 02 FF 3F 74 12 0180 85 55 02 74 0D B0 01 89 16 9B D3 EB 96 B8 01 00 0190 EB 03 B8 03 00 E8 E6 D8 EB 99 B8 0A 00 EB F6 A1 01A0 8E D3 3B 06 86 DE 73 02 F8 C3 F9 EB FC 50 53 8B 01B0 1E 8E D3 B8 C6 DB E8 28 FF 8B 37 5B 58 C3 57 8B 01C0 77 09 E8 F4 ED 33 C0 A3 92 D3 A3 94 D3 A3 96 D3 01D0 A3 98 D3 F6 05 08 0F 85 80 00 E8 86 00 A3 92 D3 01E0 E8 9F 00 72 78 E8 7B 00 A3 94 D3 E8 94 00 72 6D 01F0 A1 B1 C1 D1 96 D3 8A 04 3C 20 74 0C 3C 09 74 08 0200 3C 0D 74 04 3C 0A 75 55 A1 92 D3 83 3E 20 E1 00 0210 74 03 A1 94 D3 0B C0 74 44 A2 C1 E1 A1 94 D3 83 0220 3E 20 E1 01 72 08 A1 92 D3 74 03 A1 96 D3 0B C0 0230 74 2B A2 C2 E1 A1 96 D3 83 3E 20 E1 02 72 03 A1 0240 92 D3 3D 64 00 77 0B 3D 50 00 73 03 05 64 00 05 0250 6C Padidinus segmentinių registrų turinius vienetu, atminties ląstelių adresai sumažėjo 1016 vienetų. 2.4. Programos sudarymas ir vykdymas mikrolab-86, V1.1 .X AX0000- //patikrinamas AX registro turinys .S 0100, B1- 40 //į atminties ląsteles įrašoma programa .S 0101, AD- FF .S 0102, A5- E3 .S 0110, 0E- 40 .X BX0000- 0110 //į BX registrą įrašomas besąlyginės pereigos adresas 0110 .G 0000= 50 0100,0111 //paleidžiama programa BR@0100:0111 .X AX0002 // įvykdžius programą AX registro turinys padidėjo 2 vienetais mikrolab-86, V1.1 .M 0100, 0110, 0200 //programa perkeliama į kitą vietą .D 0200, 0210 0200 40 FF E3 86 DE 73 36 B8 C6 DB E8 E4 FF 8A 4F 02 0210 40 .M 0500, 0510,0100 //į ankstesnę programos vietą įrašoma konstanta .D 0100, 0110 0100 FF 64 10 A1 C2 BD 68 99 0C E1 57 CA 37 8D FC E0 4D 0110 EE .G 0004= 10 0200,0211 //programa neįvykdoma iki galo, nes programos vykdymas perkeliamas į 0110 adresą, kuriame nėra jokios komandos) .X AX0003 //registro AX turinys padidėjo tik vienetu, nes buvo įvykdytas tik vienas registro AX padidinimas vienetu mikrolab-86, V1.1 .M 0500, 0510,0100 // į ankstesnę programos vietą įrašoma konstanta .X CS0000- 0001 // segmentinių registrų turiniai padidinami vienetu .X DS0000- 0001 .X SS0000- 0001 .X ES0000- 0001 .X AX0000 .X BX0000- 0110 //į BX registrą įrašomas besąlyginės pereigos adresas 0110 .S 0100, C5- 40 //į atminties ląsteles įrašoma programa .S 0101, AA- FF .S 0102, D2- E3 .S 0110, B6- 40 .G 0200= 01 0100,0111 //paleidžiama programa BR@0100:0111 .X AX0002 (įvykdžius programą AX registro turinys padidėjo 2 vienetais) Padidinus segmentinių registrų turinius vienetu, programa buvo įvykdyta ir rezultatas nepakito. Taip yra todėl, kad programai kreipiantis į atmintį, šioje programoje nėra nurodyta segmento adreso, o kadangi pakito tik segmentiniai adresai, tai programa buvo įvykdyta. Išvados Atlikdami laboratorinį darbą išsiaiškinau segmentinį atminties adresavimo principą 80x86 šeimos mikroprocesoriuose. Pabandžiau įrašyti informaciją į kodo, dėklo duomenų segmentus. Įvykdžiau perėjimą į kitą atminties segmentą. Taip pat sudariau programą ir įvykdžiau. Susipažinau su komandų sintakse. Tai gana patogus būdas atlikti veiksmus su mikroprocesoriumi. 3. Operandų adresavimo būdai Adresas Komandų šešioliktainiai kodai Atliekamos funkcijos Operandai Vykdymo rezultatai Tiesioginis ir registrinis adresavimas 0100 0101 0102 0103 0104 0105 0106 0107 OKB: 8A AB:06 DispL:20 DispH:01 OKB:02 AB:06 DispL:30 DispH:01 MOV AL,[0120] [0120]=06 AX=0000 AX=000A ADD AL,[0130] [0130]=04 AX=0004 0100 OKB:91 XCHG CX,AX CX=1000 AX=3000 AX=1000 CX=3000 Šalutinis registrinis adresavimas ir tiesioginis operandas 0100 0101 0102 0103 0104 OKB:8A AB:07 OKB:05 DataL:11 DataH:11 MOV AL,[BX] BX=0200 [0200]=21 AX=1132 ADD AX,1111 AX=0021 0100 0101 0102 0103 0104 0105 OKB:8A AB:07 OKB:2A AB:06 DispL:00 DispH:03 MOV AL,[BX] BX=0200 [0200]=08 AX=0005 SUB AL,[0300] [0300]=03 Bazinis, indeksinis, bazinis – indeksinis ir santykinis adresavimo būdai 0100 0101 0102 0103 OKB:8B AB:87 DispL:00 DispH:02 MOV AX, [BX+0200] BX=0004 [0204]=21 [0205]=00 AX=0021 0100 0101 0102 0103 0104 0105 OKB:8A AB:9A DispL:00 DispH:01 OKB:F6 AB:E3 MOV BL, [BP+SI+0100] [0123]=02 BP=0003 SI=0020 AX=0010 MUL BL,AL AX=0008 Duomenų eilutės iš DS persiuntimas į segmentą ES 0100 0101 OKB:F3 OKB:A4 REPZ RSI=0110 RDI=0210 RCX=0004 [0110]=11 [0111]=22 [0112]=33 [0113]=44 [0210]=11 [0211]=22 [0212]=33 [0213]=44 MOVSB Dėklinis adresavimas 0100 0101 0102 0103 OKB:FF AB:36 DispL:31 DispH:01 PUSH [0131] SP=0220 [0131]=21 [0132]=34 [021E]=21 [021F]=34 0100 OKB:58 POP AX SP=0200 [0200]=23 [0201]=01 AX=0123 Išvados Atlikdami laboratorinį darbą susipažinau su skirtingais duomenų adresavimo būdais 80x86 šeimos mikroprocesoriuose. Susipažinau su tiesioginiu, registriniu, dėkliniu ir kt. Adresavimo būdais. Išmokau persiųsti duomenų eilutę iš segmento DS į ES. Supratau skirtumus tarp skirtingų adresavimo būdų, išsiaiškinau kiekvieno adresavimo būdo specifiką, sintaksę, pliusus ir minusus. 4. 80x86 šeimos mikroprocesorių programavimas 4.1. Programos „Debug” taikymas 4.1.1.Kai kurios programos Debug komandos Assemble 166C:0100 -A100 166C:0100 ADD AX,2222 166C:0103 -E100 166C:0100 05. 22. 22. -RAX AX 0000 :1111 -T=100 1 AX=3333 ; Dump -D100,115 166C:0100 05 22 22 02 65 FE BF 81-00 8B 36 92 DE 8B 44 FE 166C:0110 BE C6 DB 8B 74 09 Enter; -E100 AA AA AA AA AA AA AA -D100,110 166C:0100 AA AA AA AA AA AA AA 81-00 8B 36 92 DE 8B 44 FE 166C:0110 BE Fill -F100,110,55 -D100,110 166C:0100 55 55 55 55 55 55 55 55-55 55 55 55 55 55 55 55 UUUUUUUUUUUUUUUU 166C:0110 55 U -F100,110,"66" -D100,110 166C:0100 36 36 36 36 36 36 36 36-36 36 36 36 36 36 36 36 6666666666666666 Move -M100,110,200 -D200 166C:0200 36 36 36 36 36 36 36 36-36 36 36 36 36 36 36 36 6666666666666666 Register -RAX AX 0000 :1111 -RAX AX 1111 Trace -T=100 1 Unassemble -U100 166C:0100 057777 ADD AX,7777 4.1.2. Susumavimas dviejų atmintyje esančių 16 bitų operandų, taikant tiesioginį ir registrinį adresavimą. -E0120 06 // Operandas įrašomas į atmintį -E0130 04 // Operandas įrašomas į atmintį -E0100 106C:0100 BA.8A 42.06 86.20 E9.01 65.02 FE.06 BF.30 81.01 -U0100 0107 //Patikrinama ar teisingas šešioliktainis kodas 106C:0100 8A062001 MOV AL,[0120] 106C:0104 02063001 ADD AL,[0130] -R // Registrų turinio patikrinimas AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=106C ES=106C SS=106C CS=106C IP=0100 NV UP EI PL NZ NA PO NC 106C:0100 8A062001 MOV AL,[0120] DS:0120=06 -T=0100 2 // Programos paleidimas AX=0006 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=106C ES=106C SS=106C CS=106C IP=0104 NV UP EI PL NZ NA PO NC 106C:0104 02063001 ADD AL,[0130] DS:0130=04 AX=000A BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=106C ES=106C SS=106C CS=106C IP=0108 NV UP EI PL NZ NA PE NC 106C:0108 008B3692 ADD [BP+DI+9236],CL SS:9236=00 4.1.3. Keitimasis informacija tarp registrų CX ir AX, taikant tiesioginį ir registrinį adresavimą. -RAX AX 0000 :3000 // AX registrui priskiriama reikšmė -RCX CX 0000 :1000 // CX registrui priskiriama reikšmė -E0100 91 -U0100 0100 // Patikrinamas šešioliktainis kodas 106C:0100 91 XCHG CX,AX -R //Registrų turinio patikrinimas AX=3000 BX=0000 CX=1000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=106C ES=106C SS=106C CS=106C IP=0100 NV UP EI PL NZ NA PO NC 106C:0100 91 XCHG CX,AX -T=0100 1 //Programos paleidimas AX=1000 BX=0000 CX=3000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=106C ES=106C SS=106C CS=106C IP=0101 NV UP EI PL NZ NA PO NC 106C:0101 42 INC DX 4.1.4. 2 baitų tiesioginio operando sudėjimas su kaupiklio turiniu, taikant registrinį adresavimą ir tiesioginį operandą. RBX BX 0000 :0200 // Registrui BX priskiriama reikšmė -E0200 21 // Į 0200 atminties ląstelę įrašomas operandas -E0100 //Užrašomas programos šešioliktainis kodas 106C:0100 BA.8A 42.07 86.05 E9.11 65.11 -U0100 0104 // Šešioliktainio kodo patikrinimas 106C:0100 8A07 MOV AL,[BX] 106C:0102 051111 ADD AX,1111 -R // Registrų turinio peržiūra AX=0000 BX=0200 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=106C ES=106C SS=106C CS=106C IP=0100 NV UP EI PL NZ NA PO NC 106C:0100 8A07 MOV AL,[BX] DS:0200=21 -T=0100 2 // Programos paleidimas AX=0021 BX=0200 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=106C ES=106C SS=106C CS=106C IP=0102 NV UP EI PL NZ NA PO NC 106C:0102 051111 ADD AX,1111 AX=1132 BX=0200 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=106C ES=106C SS=106C CS=106C IP=0105 NV UP EI PL NZ NA PO NC 106C:0105 FEBF8100 ??? [BX+0081] DS:0281=B0 4.1.5. Iš atminties ląstelės turinio atėmimas kitos atminties ląstelės turinys, taikant registrinį adresavimą ir tiesioginį operandą. -RBX BX 0000 :0200 -E0200 08 // Atminties ląstelei 0200 priskiriamas operandas -E0300 03 // Atminties ląstelei 0300 priskiriamas operandas -E0100 // Rašomas programos šešioliktainis kodas 106C:0100 BA.8A 42.07 86.2A E9.06 65.00 FE.03 -U0100 0104 // Programos šešioliktainio kodo patikrinimas 106C:0100 8A07 MOV AL,[BX] 106C:0102 2A060003 SUB AL,[0300] -R // Registrų turinio patikrinimas AX=0000 BX=0200 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=106C ES=106C SS=106C CS=106C IP=0100 NV UP EI PL NZ NA PO NC 106C:0100 8A07 MOV AL,[BX] DS:0200=08 -T=0100 2 // Programos paleidimas AX=0008 BX=0200 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=106C ES=106C SS=106C CS=106C IP=0102 NV UP EI PL NZ NA PO NC 106C:0102 2A060003 SUB AL,[0300] DS:0300=03 AX=0005 BX=0200 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=106C ES=106C SS=106C CS=106C IP=0106 NV UP EI PL NZ NA PE NC 106C:0106 BF8100 MOV DI,0081 4.1.6. Operando persiuntimas iš atminties į kaupiklį, taikant bazinį, indeksinį, bazinį – indeksinį, santykinį adresavimo būdą. -RBX BX 0000 :0004 // Registrui priskiriama reikšmė -E0204 // Į atminties ląstelę įrašomas operandas 106C:0204 04.21 46.00 -E0100 // Rašomas programos šešioliktainis kodas 106C:0100 BA.8B 42.87 86.00 E9.02 -U0100 0103 // Programos šešioliktainio kodo patikrinimas 106C:0100 8B870002 MOV AX,[BX+0200] -R // Registrų turinio patikrinimas AX=0000 BX=0004 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=106C ES=106C SS=106C CS=106C IP=0100 NV UP EI PL NZ NA PO NC 106C:0100 8B870002 MOV AX,[BX+0200] DS:0204=0021 -T=0100 1 // Programos paleidimas AX=0021 BX=0004 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=106C ES=106C SS=106C CS=106C IP=0104 NV UP EI PL NZ NA PO NC 106C:0104 65 DB 65 4.1.7. Operando esančio kaupiklyje sandauga su operandu esančiu atmintyje, taikant bazinį, indeksinį, bazinį – indeksinį, santykinį adresavimo būdą. -RBP BP 0000 :0003 // Registrui BP priskiriama reikšmė -RSI SI 0000 :0020 // Registrui SI priskiriama reikšmė -RAX AX 0000 :0008 // Registrui AX priskiriama reikšmė -E0123 02 // Atminties ląstelei 0123 priskiriama reikšmė -E0100 // Užrašomas programos šešioliktainis kodas 106C:0100 BA.8A 42.9A 86.00 E9.01 65.F6 FE.E3 -U0100 0105 //Programos šešioliktainio kodo patikrinimas 106C:0100 8A9A0001 MOV BL,[BP+SI+0100] 106C:0104 F6E3 MUL BL -R // Registrų turinio patikrinimas AX=0008 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0003 SI=0020 DI=0000 DS=106C ES=106C SS=106C CS=106C IP=0100 NV UP EI PL NZ NA PO NC 106C:0100 8A9A0001 MOV BL,[BP+SI+0100] SS:0123=02 -T=0100 2 // Programos paleidimas AX=0008 BX=0002 CX=0000 DX=0000 SP=FFEE BP=0003 SI=0020 DI=0000 DS=106C ES=106C SS=106C CS=106C IP=0104 NV UP EI PL NZ NA PO NC 106C:0104 F6E3 MUL BL AX=0010 BX=0002 CX=0000 DX=0000 SP=FFEE BP=0003 SI=0020 DI=0000 DS=106C ES=106C SS=106C CS=106C IP=0106 NV UP EI PL NZ NA PO NC 106C:0106 BF8100 MOV DI,0081 4.1.8. Duomenų eilutės perkėlimas iš segmento ES į segmentą ES -RSI SI 0000 :0110 // Registrui SI priskiriama reikšmė -RDI DI 0000 :0210 // Registrui DI priskiriama reikšmė -RCX CX 0000 :0004 // Registrui CX priskiriama reikšmė -E0110 // Į atminties ląsteles įrašoma duomenų eilutė 106C:0110 BE.11 C6.22 DB.33 8B.44 -E0100 // Programos šešioliktainio kodo užrašymas 106C:0100 BA.F3 42.A4 -U0100 0101 // Programos šešioliktainio kodo patikrinimas 106C:0100 F3 REPZ 106C:0101 A4 MOVSB -R // Registrų turinio patikrinimas AX=0000 BX=0000 CX=0004 DX=0000 SP=FFEE BP=0000 SI=0110 DI=0210 DS=106C ES=106C SS=106C CS=106C IP=0100 NV UP EI PL NZ NA PO NC 106C:0100 F3 REPZ 106C:0101 A4 MOVSB -T=0100 4 // Programos paleidimas AX=0000 BX=0000 CX=0003 DX=0000 SP=FFEE BP=0000 SI=0111 DI=0211 DS=106C ES=106C SS=106C CS=106C IP=0100 NV UP EI PL NZ NA PO NC 106C:0100 F3 REPZ 106C:0101 A4 MOVSB AX=0000 BX=0000 CX=0002 DX=0000 SP=FFEE BP=0000 SI=0112 DI=0212 DS=106C ES=106C SS=106C CS=106C IP=0100 NV UP EI PL NZ NA PO NC 106C:0100 F3 REPZ 106C:0101 A4 MOVSB AX=0000 BX=0000 CX=0001 DX=0000 SP=FFEE BP=0000 SI=0113 DI=0213 DS=106C ES=106C SS=106C CS=106C IP=0100 NV UP EI PL NZ NA PO NC 106C:0100 F3 REPZ 106C:0101 A4 MOVSB AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0114 DI=0214 DS=106C ES=106C SS=106C CS=106C IP=0102 NV UP EI PL NZ NA PO NC 106C:0102 86E9 XCHG CH,CL -E0210 106C:0210 11. 22. 33. 44 4.1.9. Operando persintimas iš atminties į dėklą nurodytu adresu, taikant dėklinį adresavimą. -RSP SP FFEE :0220 // Dėklui SP priskiriama reikšmė -E0131 // Į atminties ląsteles įrašomas operandas 106C:0131 F3.21 A4.34 -E0100 // Programos šešioliktainio kodo užrašymas 106C:0100 BA.FF 42.36 86.31 E9.01 -U0100 0103 // Programos šešioliktainio kodo patikrinimas 106C:0100 FF363101 PUSH [0131] -R // Registrų turinio patikrinimas AX=0000 BX=0000 CX=0000 DX=0000 SP=0220 BP=0000 SI=0000 DI=0000 DS=106C ES=106C SS=106C CS=106C IP=0100 NV UP EI PL NZ NA PO NC 106C:0100 FF363101 PUSH [0131] DS:0131=3421 -T=0100 1 // Programos paleidimas AX=0000 BX=0000 CX=0000 DX=0000 SP=021E BP=0000 SI=0000 DI=0000 DS=106C ES=106C SS=106C CS=106C IP=0104 NV UP EI PL NZ NA PO NC 106C:0104 65 DB 65 -E021E 106C:021E 21. 34. 4.1.10. Operando persiuntimas iš dėklo į registrą, taikant dėklinį adresavimą. -RSP SP FFEE :0200 // Dėklui SP priskiriama reikšmė -E0200 // Į atminties ląsteles įrašomas operandas 106C:0200 4E.23 32.01 -E0100 58 // Programos šešioliktainio kodo užrašymas -U0100 0100 // Programos šešioliktainio kodo patikrinimas 106C:0100 58 POP AX -R // Registrų turinio patikrinimas AX=0000 BX=0000 CX=0000 DX=0000 SP=0200 BP=0000 SI=0000 DI=0000 DS=106C ES=106C SS=106C CS=106C IP=0100 NV UP EI PL NZ NA PO NC 106C:0100 58 POP AX -T=0100 1 AX=0123 BX=0000 CX=0000 DX=0000 SP=0202 BP=0000 SI=0000 DI=0000 DS=106C ES=106C SS=106C CS=106C IP=0101 NV UP EI PL NZ NA PO NC 106C:0101 42 INC DX 4.2. Sudaryti ir kvikdyti programą, dėstytojo nurodytam veiksmui atlikti: (A-B-C)*5. -E0300 // Atmintie ląstelėms priskiriamos reikšmės 106C:0300 3E.24 19.06 D8.14 -RBX BX 0000 :0301 // Registrui BX priskiriama reikšmė -RBP BP 0000 :0200 // Registrui BP priskiriama reikšmė -RSI SI 0000 :0002 // Registrui SI priskiriama reikšmė -RDI DI 0000 :0005 // Registrui DI priskiriama reikšmė -E0100 Programos šešioliktainio kodo užrašymas 106C:0100 BA.A0 42.00 86.03 E9.8A 65.0F FE.8A BF.92 81.00 106C:0108 00.01 8B.29 36.C8 92.29 DE.D0 8B.F7 44.E7 -U0100 010D Programos šešioliktainio kodo patikrinimas 106C:0100 A00003 MOV AL,[0300] 106C:0103 8A0F MOV CL,[BX] 106C:0105 8A920001 MOV DL,[BP+SI+0100] 106C:0109 29C8 SUB AX,CX 106C:010B 29D0 SUB AX,DX 106C:010D F7E7 MUL DI -R // Registrų turinio patikrinimas AX=0000 BX=0301 CX=0000 DX=0000 SP=FFEE BP=0200 SI=0002 DI=0005 DS=106C ES=106C SS=106C CS=106C IP=0100 NV UP EI PL NZ NA PO NC 106C:0100 A00003 MOV AL,[0300] DS:0300=24 -T=0100 6 AX=0024 BX=0301 CX=0000 DX=0000 SP=FFEE BP=0200 SI=0002 DI=0005 DS=106C ES=106C SS=106C CS=106C IP=0103 NV UP EI PL NZ NA PO NC 106C:0103 8A0F MOV CL,[BX] DS:0301=06 AX=0024 BX=0301 CX=0006 DX=0000 SP=FFEE BP=0200 SI=0002 DI=0005 DS=106C ES=106C SS=106C CS=106C IP=0105 NV UP EI PL NZ NA PO NC 106C:0105 8A920001 MOV DL,[BP+SI+0100] SS:0302=14 AX=0024 BX=0301 CX=0006 DX=0014 SP=FFEE BP=0200 SI=0002 DI=0005 DS=106C ES=106C SS=106C CS=106C IP=0109 NV UP EI PL NZ NA PO NC 106C:0109 29C8 SUB AX,CX AX=001E BX=0301 CX=0006 DX=0014 SP=FFEE BP=0200 SI=0002 DI=0005 DS=106C ES=106C SS=106C CS=106C IP=010B NV UP EI PL NZ AC PE NC 106C:010B 29D0 SUB AX,DX AX=000A BX=0301 CX=0006 DX=0014 SP=FFEE BP=0200 SI=0002 DI=0005 DS=106C ES=106C SS=106C CS=106C IP=010D NV UP EI PL NZ NA PE NC 106C:010D F7E7 MUL DI AX=0032 BX=0301 CX=0006 DX=0000 SP=FFEE BP=0200 SI=0002 DI=0005 DS=106C ES=106C SS=106C CS=106C IP=010F NV UP EI PL NZ NA PE NC 106C:010F FEBEC6DB ??? [BP+DBC6] SS:DDC6=89 Išvados Šiame laboratoriniame darbe susipažinau su mikroprocesoriumi i8086. Susipažinimui su šiuo procesoriumi buvo naudojami keli būdai: MMK, klavišinio monitoriaus programa (Terminal) ir MS DOS programa „Debug”. Visais atvejais buvo atliekami analogiški veiksmai: pirmu atveju su pačiu procesoriumi, antru atveju su procesoriumi, naudojanti kompiuterio pagalba ir trečiu atveju tik su kompiuteriu. Patogiausias yra 3 atvejis (MS DOS programa „Debug”), nes veiksmus galima atlikti pačiame kompiuteryje, nereikia nieko papildomo.

Daugiau informacijos...

Šį darbą sudaro 3548 žodžiai, tikrai rasi tai, ko ieškai!

★ Klientai rekomenduoja


Šį rašto darbą rekomenduoja mūsų klientai. Ką tai reiškia?

Mūsų svetainėje pateikiama dešimtys tūkstančių skirtingų rašto darbų, kuriuos įkėlė daugybė moksleivių ir studentų su skirtingais gabumais. Būtent šis rašto darbas yra patikrintas specialistų ir rekomenduojamas kitų klientų, kurie po atsisiuntimo įvertino šį mokslo darbą teigiamai. Todėl galite būti tikri, kad šis pasirinkimas geriausias!

Detali informacija
Darbo tipas
Lygis
Universitetinis
Failo tipas
Word failas (.doc)
Apimtis
16 psl., (3548 ž.)
Darbo duomenys
  • Programavimo namų darbas
  • 16 psl., (3548 ž.)
  • Word failas 168 KB
  • Lygis: Universitetinis
www.nemoku.lt Atsisiųsti šį namų darbą
Privalumai
Pakeitimo garantija Darbo pakeitimo garantija

Atsisiuntei rašto darbą ir neradai jame reikalingos informacijos? Pakeisime jį kitu nemokamai.

Sutaupyk 25% pirkdamas daugiau Gauk 25% nuolaidą

Pirkdamas daugiau nei vieną darbą, nuo sekančių darbų gausi 25% nuolaidą.

Greitas aptarnavimas Greitas aptarnavimas

Išsirink norimus rašto darbus ir gauk juos akimirksniu po sėkmingo apmokėjimo!

Atsiliepimai
www.nemoku.lt
Dainius Studentas
Naudojuosi nuo pirmo kurso ir visad randu tai, ko reikia. O ypač smagu, kad įdėjęs darbą gaunu bet kurį nemokamai. Geras puslapis.
www.nemoku.lt
Aurimas Studentas
Puiki svetainė, refleksija pilnai pateisino visus lūkesčius.
www.nemoku.lt
Greta Moksleivė
Pirkau rašto darbą, viskas gerai.
www.nemoku.lt
Skaistė Studentė
Užmačiau šią svetainę kursiokės kompiuteryje. :D Ką galiu pasakyti, iš kitur ir nebesisiunčiu, kai čia yra viskas ko reikia.
Palaukite! Šį darbą galite atsisiųsti visiškai NEMOKAMAI! Įkelkite bet kokį savo turimą mokslo darbą ir už kiekvieną įkeltą darbą būsite apdovanoti - gausite dovanų kodus, skirtus nemokamai parsisiųsti jums reikalingus rašto darbus.
Vilkti dokumentus čia:

.doc, .docx, .pdf, .ppt, .pptx, .odt