ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚
АнтистрСссовый сСрвис

Π˜Π·ΡƒΡ‡Π΅Π½ΠΈΠ΅ структурной ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ систСмы ΠΊΠΎΠΌΠ°Π½Π΄ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ² сСмСйства МК51

Лабораторная Ρ€Π°Π±ΠΎΡ‚Π°ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

MOV A, @R0; ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ (эталонный) эл-Ρ‚ — Π½Π° Π°ΠΊΠΊΡƒΠΌΡƒΠ»ΡΡ‚ΠΎΡ€Π΅. Π—Π°ΠΏΠΈΡΡŒ Π² ΡΡ‚Π΅ΠΊ значСния, записанного ΠΏΠΎ Π°Π΄Ρ€Π΅ΡΡƒ ad. ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ элСмСнтов массива. Π‘Ρ‡Π΅Ρ‚Ρ‡ΠΈΠΊ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΉ. ОбмСн Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ аккумулятором ΠΈ Π°Π΄Ρ€Π΅ΡΠΎΠΌ ad. Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. НС ΠΈΠ·ΠΌΠ΅Π½ΡΠΉΡ‚Π΅ Π΅Π³ΠΎ !!! —-; Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ рСгистры ΠΈ ΡΡ‡Π΅ΠΉΠΊΠΈ памяти. Π”Π°Π½Π½Ρ‹Π΅———————————————————-; N — адрСс Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ элСмСнта массива. Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ——————————————-; ΠšΠΎΠ½Π΅Ρ†… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

Π˜Π·ΡƒΡ‡Π΅Π½ΠΈΠ΅ структурной ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ систСмы ΠΊΠΎΠΌΠ°Π½Π΄ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ² сСмСйства МК51 (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

Лабораторная Ρ€Π°Π±ΠΎΡ‚Π° № 1

ΠœΠΈΠΊΡ€ΠΎΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€Π½Ρ‹Π΅ систСмы

" Π˜Π·ΡƒΡ‡Π΅Π½ΠΈΠ΅ структурной ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ ΡΠΈΡΡ‚Π΅ΠΌΡ‹ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ² сСмСйства МК51″

Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ» ЧСркасов А.О.

Москва — 2012 Π³.

Π—Π°Π΄Π°Π½ΠΈΠ΅ Найти наибольший элСмСнт массива, располоТСнного Π²ΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ памяти, ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² ΡΡ‚Π΅ΠΊΠ΅.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ рСгистры ΠΈ ΡΡ‡Π΅ΠΉΠΊΠΈ памяти

РСгистр ΠΈΠ»ΠΈ ячСйка памяти

НазначСниС

R0 (0000h)

АдрСс Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ элСмСнта массива. Π’ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ содСрТит адрСс Π½Π°Ρ‡Π°Π»Π° массива — 0010h.

R1 (0001h)

ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ элСмСнтов массива. Π‘Ρ‡Π΅Ρ‚Ρ‡ΠΈΠΊ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΉ.

R2 (0002h)

РСгистр для Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ хранСния Π΄Π°Π½Π½Ρ‹Ρ… (элСмСнта массива, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π² Π΄Π°Π½Π½ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ вСдСтся Ρ€Π°Π±ΠΎΡ‚Π°).

0008h

Наибольший элСмСнт массива Π΄Π°Π½Π½Ρ‹Ρ…, записанный Π² ΡΡ‚Π΅ΠΊ послС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

0010h-0013h

Π”Π°Π½Π½Ρ‹Π΅.

Алгоритм Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ΠΈ

n — адрСс Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ элСмСнта массива

m — количСство элСмСнтов

d0…dm — элСмСнты массива ОписаниС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄

MOVRn, #data

n = 0−7

Π—Π°ΠΏΠΈΡΡŒ Π² Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ Rn Π΄Π°Π½Π½Ρ‹Ρ… #data.

MOV ad, #data

Π—Π°ΠΏΠΈΡΡŒ ΠΏΠΎ Π°Π΄Ρ€Π΅ΡΡƒ ad Π΄Π°Π½Π½Ρ‹Ρ… #data.

MOVA, @Rn

n = 0−1

Π—Π°ΠΏΠΈΡΡŒ ΠΈΠ· Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ памяти Π΄Π°Π½Π½Ρ‹Ρ… (Π’ΠŸΠ”) Π² Π°ΠΊΠΊΡƒΠΌΡƒΠ»ΡΡ‚ΠΎΡ€ Π΄Π°Π½Π½Ρ‹Ρ…, располоТСнных ΠΏΠΎ Π°Π΄Ρ€Π΅ΡΡƒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТится Π² Ρ€Π΅Π³ΠΈΡΡ‚Ρ€Π΅ Rn.

INC Rn

n = 0−7

ΠŸΡ€ΠΈΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹ ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ, записанным Π½Π° Ρ€Π΅Π³ΠΈΡΡ‚Ρ€Π΅ Rn.

DEC Rn

n = 0−7

Π’Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹ ΠΈΠ· Π΄Π°Π½Π½Ρ‹Ρ…, записанных Π½Π° Ρ€Π΅Π³ΠΈΡΡ‚Ρ€Π΅ Rn.

XCH A, ad

ОбмСн Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ аккумулятором ΠΈ Π°Π΄Ρ€Π΅ΡΠΎΠΌ ad.

JZ rel

ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΏΠΎ Π°Π΄Ρ€Π΅ΡΡƒ ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‚ΠΊΠ΅ rel, Ссли Π½Π° Π°ΠΊΠΊΡƒΠΌΡƒΠ»ΡΡ‚ΠΎΡ€Π΅ ноль.

MOV ad, @Rn

n = 0−7

Π—Π°ΠΏΠΈΡΡŒ ΠΏΠΎ ΠΏΡ€ΡΠΌΠΎΠΌΡƒ адрСсу Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Π’ΠŸΠ”, адрСс ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… записан Π² Ρ€Π΅Π³ΠΈΡΡ‚Ρ€Π΅ Rn.

SUBB A, ad

Π’Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅ с Π·Π°Π΅ΠΌΠΎΠΌ ΠΈΠ· Π°ΠΊΠΊΡƒΠΌΡƒΠ»ΡΡ‚ΠΎΡ€Π° значСния, записанного Π² Π’ΠŸΠ” ΠΏΠΎ Π°Π΄Ρ€Π΅ΡΡƒ ad.

JBC bit, rel

ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΏΠΎ Π°Π΄Ρ€Π΅ΡΡƒ ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‚ΠΊΠ΅ rel, Ссли установлСн Π±ΠΈΡ‚ bit, с ΠΎΡ‡ΠΈΡΡ‚ΠΊΠΎΠΉ этого Π±ΠΈΡ‚Π°.

SJMP rel

массив ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° стСк БСзусловный ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΏΠΎ ΠΌΠ΅Ρ‚ΠΊΠ΅ rel.

PUSH ad

Π—Π°ΠΏΠΈΡΡŒ Π² ΡΡ‚Π΅ΠΊ значСния, записанного ΠΏΠΎ Π°Π΄Ρ€Π΅ΡΡƒ ad.

Код ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

; //———————————————————————————————//

; // ОписаниС: Lab. Work (ASM Version) //

; // Copyright: MIREA, 1998 — 2000 //

; // ΠŸΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€: МК 51 //

; // ВСрсия: 1.0 //

; // АссСмблСр: A51 v. 6.02 //

; // Π”Π°Ρ‚Π°: XX.XX.2001 //

; // ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ: Π€Π°ΠΉΠ»-Π·Π°Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° //

; //——————————————————————————————-//

; —- Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. НС ΠΈΠ·ΠΌΠ΅Π½ΡΠΉΡ‚Π΅ Π΅Π³ΠΎ !!! —-;

NAME LAB_DEMO

USING 0; Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±Π°Π½ΠΊ рСгистров 0

Jmp Start; Начало ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

ORG 03h

LJmp Ext0Srv; АдрСс ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° EXT INT 0

ORG 0BH; АдрСс ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° TIMER INT 0

LJmp Time0Srv ;

ORG 13H; АдрСс ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° EXT INT 1

LJmp Ext1Srv ;

ORG 1BH; АдрСс ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° TIMER INT 1

LJmp Time1Srv ;

ORG 23H; АдрСс ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° прСрывания ΠΎΡ‚

LJmp RiTiSrv; ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡ€Ρ‚Π°

; —- ΠšΠΎΠ½Π΅Ρ† Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° —-;

;————— Π—Π΄Π΅ΡΡŒ Π²Π²ΠΎΠ΄ΠΈΡ‚Π΅ ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ————-;

;————— Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ——————————————-;

Start:MOV R0, #0010h; ΠΠ°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ адрСс массива

MOV R1, #0004h; Кол-Π²ΠΎ эл-Ρ‚ΠΎΠ²

;————— Π”Π°Π½Π½Ρ‹Π΅———————————————————-;

MOV 0010h, #0Ah

MOV 0011h, #0Bh

MOV 0012h, #07h

MOV 0013h, #0Fh

;————— ΠšΠΎΠ½Π΅Ρ† Π΄Π°Π½Π½Ρ‹Ρ…———————————————;

MOV A, @R0; ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ (эталонный) эл-Ρ‚ — Π½Π° Π°ΠΊΠΊΡƒΠΌΡƒΠ»ΡΡ‚ΠΎΡ€Π΅

;————— ΠšΠΎΠ½Π΅Ρ† ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ—————————-;

;————— Π“Π»Π°Π²Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ»———————————————;

Loop:INC R0; Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ адрСс эл-Ρ‚Π°

DEC R1; Π”Π΅ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ»-Π²Π° эл-Ρ‚ΠΎΠ²

XCH A, 0001h; ОбмСн аккумулятора ΠΈ R1 (эталонный эл-Ρ‚ Π½Π° R1)

JZ EndLoop; Если Π½Π° Π°ΠΊΠΊΡƒΠΌΡƒΠ»ΡΡ‚ΠΎΡ€Π΅ ноль (эл-Ρ‚Ρ‹ массива ΠΊΠΎΠ½Ρ‡ΠΈΠ»ΠΈΡΡŒ) — ΠΊΠΎΠ½Π΅Ρ† ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

XCH A, 0001h; ОбмСн аккумулятора ΠΈ R1 (эталонный эл-Ρ‚ Π½Π° A)

MOV 0002h, @R0; Π—Π°ΠΏΠΈΡΡŒ Π² R2 слСд. эл-Ρ‚Π°, адрСс ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π½Π° R0

XCH A, 0002h; ОбмСн аккумулятора ΠΈ R2 (эталонный эл-Ρ‚ Π½Π° R2)

SUBB A, 0002h; Π’Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ элСмСнта эталонного

XCH A, 0002h; ОбмСн аккумулятора ΠΈ R2 (эталонный эл-Ρ‚ Π½Π° A)

JBC cy, Loop; Если Π΅ΡΡ‚ΡŒ пСрСнос (эл-Ρ‚ мСньшС эталонного) — ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ элСмСнту

MOV A, @R0; Π˜Π½Π°Ρ‡Π΅ — записываСм Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² Π°ΠΊΠΊΡƒΠΌΡƒΠ»ΡΡ‚ΠΎΡ€

sjmp Loop; ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ ΠΊ ΡΠ»Π΅Π΄. эл-Ρ‚Ρƒ

EndLoop:PUSH 0001h; Π—Π°ΠΏΠΈΡΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° Π² ΡΡ‚Π΅ΠΊ

sjmp EndlessLoop

EndlessLoop:sjmp EndlessLoop; БСсконСчный Ρ†ΠΈΠΊΠ»

;————— ΠšΠΎΠ½Π΅Ρ† Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π°—————————;

;————— ΠšΠΎΠ½Π΅Ρ† ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹———————————-;

; ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ.

Ext1Srv: RETI

Time0Srv: RETI

Time1Srv: RETI

RiTiSrv: RETI

Ext0Srv: RETI

RetIE0: RETI

END

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ