Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Сложить содержимое ячейки внутренней памяти OPER1 и регистра R0, сумму поместить в ячейку внутренней памяти SUM.



Сложить содержимое ячейки внутренней памяти OPER1 и регистра R0, сумму поместить в ячейку внутренней памяти SUM.

1.

NAME ZAD1

2.

MOV A,OPER1

3.

ADD A,R0

4.

MOV SUM,A

5.

END

 

Сложить содержимое регистров R0 и R1, сумму поместить в ячейку внутренней памяти SUM.

1.

NAME ZAD2

2.

MOV A,R0

3.

ADD A,R1

4.

MOV SUM,A

5.

END

 

Вычесть из содержимого ячейки First внешней памяти данных содержимое ячейки внутренней памяти с адресом 0x35h, результат поместить в ячейку внешней памяти данных Second.

1.

NAME ZAD3

2.

MOV DPTR,#First

3.

MOV R0,#35h

4.

MOVX A,@DPTR

5.

SUBB A,@R0

6.

MOV DPTR,#Second

7.

MOVX @DPTR,A

8.

END

 

Перейти к метке DEST, если содержимое ячейки внутренней памяти данных с адресом OPER1 меньше содержимого ячейки внутренней памяти данных с адресом OPER2.

1.

NAME ZAD4

2.

MOV A,OPER1

3.

SUBB A,OPER2

4.

JC DEST

5.

END

 

Перейти к метке DEST, если содержимое ячейки внутренней памяти данных с адресом OPER1 больше содержимого ячейки внутренней памяти данных с адресом OPER2.

1.

NAME ZAD5

2.

MOV A,OPER1

3.

SUBB A,OPER2

4.

JNC DEST

5.

END

 

Перейти к метке DEST, если содержимое регистра R3 меньше содержимого ячейки внутренней памяти данных с адресом OPER2.

1.

NAME ZAD6

2.

MOV A,R3

3.

SUBB A,OPER2

4.

JC DEST

5.

END

 

Перейти к метке DEST, если A содержит положительное число.

1.

NAME ZAD7

2.

MOV 10h,A

3.

SUBB A,#0

4.

CJNE A,10h,NEXT

5.

LJMP DEST

 

NEXT:

6.

END

 

Перейти к метке DEST, если A содержит четное число.

1.

NAME ZAD8

2.

ANL A,#01h

3.

JZ DEST

4.

END

 

Перейти к метке DEST, если регистр R5 содержит отрицательное число.

1.

NAME ZAD9

2.

MOV 10h,R5

3.

MOV A,R5

4.

SUBB A,#0

5.

CJNE A,10h,DEST

6.

END

Переслать 5 байт из внутренней памяти данных в другую область этого же сегмента памяти. Начальный адрес первого байта – 0x20h надо переслать в ячейки, начиная с адреса 0x40h.

1.

NAME ZAD10

2.

MOV R0,#20h

3.

MOV R1,#40h

4.

MOV R2,#5

5.

M1: MOV A,@R0

6.

MOV @R1,A

7.

INC R0

8.

INC R1

9.

DJNZ R2,M1

10.

END

 

Переслать все байты массива чисел во внешней памяти с начальным адресом ADDR1 и количеством элементов, содержащихся в R5 в другую область внешней памяти с начальным адресом ADDR2.

1.

NAME ZAD11

2.

MOV DPTR,#ADDR1

3.

MOV R0,DPH

4.

MOV R1,DPL

5.

MOV DPTR,#ADDR2

6.

MOV R2,DPH

7.

MOV R3,DPL

8.

M1: MOV DPH,R0

9.

MOV DPL,R1

10.

MOVX A,@DPTR

11.

INC DPTR

12.

MOV R0,DPH

13.

MOV R1,DPL

14.

MOV DPH,R2

15.

MOV DPL,R3

16.

MOVX @DPTR,A

17.

INC DPTR

18.

MOV R2,DPH

19.

MOV R3,DPL

20.

DJNZ R5,M1

21.

END

 

Переслать 5 байт из внешней памяти данных во внутреннюю. Начальный адрес 1го байта – 0x0000h, переслать надо в область, начиная с адреса 0x20h.



1.

NAME ZAD12

2.

MOV DPTR,#0

3.

MOV R0,#20h

4.

MOV R1,#5

5.

M1: MOVX A,@DPTR

6.

MOV @R0,A

7.

INC DPTR

8.

INC R0

9.

DJNZ R1,M1

10.

END

 

Переслать 10 байт из внутренней памяти данных во внешнюю. Начальный адрес 1го байта – 0x20h. Надо переслать, начиная с адреса 0x2000h.

1.

NAME ZAD13

2.

MOV DPTR,#2000h

3.

MOV R0,#20h

4.

MOV R1,#10

5.

M1: MOV A,@R0

6.

MOVX @DPTR,A

7.

INC DPTR

8.

INC R0

9.

DJNZ R1,M1

10.

END

 

Подсчитать количество ненулевых элементов в байтовом массиве внутренней памяти данных, адрес начала которого содержится в R0, а количество элементов – в R3.

1.

NAME ZAD16

2.

MOV R5,#0

3.

M1: MOV A,@R0

4.

CJNE A,#0,M2

5.

LJMP M3

6.

M2: INC R5

7.

M3: INC R0

8.

DJNZ R3,M1

9.

END

 

 

Переслать 10 байт из памяти команд во внешнюю память данных. Начальный адрес 1го байта – метка ARRAY1, переслать надо, начиная с адреса 0x2000h.

1.

NAME ZAD14

2.

MOV DPTR,#ARRAY1

3.

MOV R0,DPH

4.

MOV R1,DPL

5.

MOV DPTR,#2000h

6.

MOV R2,DPH

7.

MOV R3,DPL

8.

MOV R4,#10

9.

M1: MOV DPH,R0

10.

MOV DPL,R1

11.

MOV A,#0

12.

MOVC A,@A+DPTR

13.

INC DPTR

14.

MOV R0,DPH

15.

MOV R1,DPL

16.

MOV DPH,R2

17.

MOV DPL,R3

18.

MOVX @DPTR,A

19.

INC DPTR

20.

MOV R2,DPH

21.

MOV R3,DPL

22.

DJNZ R4,M1

23.

END

 

Переслать массив двухбайтных чисел из внешней памяти во внутреннюю. Адрес исходного массива – 0x2000h, пересылать нужно, начиная с адреса 0x20h. Количество элементов массива хранится в регистре R3.

1.

NAME ZAD15

2.

MOV DPTR,#2000h

3.

MOV R0,#20h

4.

M1: MOVX A,@DPTR

5.

MOV @R0,A

6.

INC DPTR

7.

INC R0

8.

MOVX A,@DPTR

9.

MOV @R0,A

10.

INC DPTR

11.

INC R0

12.

DJNZ R3,M1

13.

END

 

Подсчитать количество элементов, равных #0FFh, в байтовом массиве внутренней памяти данных, адрес начала которого содержится в R1, а количество элементов – в R3.

1.

NAME ZAD17

2.

MOV R5,#0

3.

M1: MOV A,@R1

4.

CJNE A,#0FFh,M2

5.

INC R5

6.

M2: INC R0

7.

DJNZ R3,M1

8.

END

 

Подсчитать количество элементов, равных #0FFFFh, в массиве двухбайтовых чисел внутренней памяти, адрес начала которого содержится в R0.

1.

NAME ZAD18

2.

MOV R5,#0

3.

MOV R3,#COUNT

4.

M1: MOV A,@R0

5.

CJNE A,#0FFh,M2

6.

INC R0

7.

LJMP M3

8.

M2: INC R0

9.

LJMP M4

10.

M3: MOV A,@R0

11.

CJNE A,#0FFh,M4

12.

INC R5

13.

M4: INC R0

14.

DJNZ R3,M1

15.

END


Подсчитать количество элементов, равных #0FFh, в массиве чисел внешней памяти, адрес начала которого содержится в паре ячеек внутренней памяти ADDR1, ADDR1+1, а количество элементов – в регистре R3.

1.

NAME ZAD19

2.

MOV R0,#ADDR1

3.

MOV A,@R0

4.

MOV DPH,A

5.

INC R0

6.

MOV A,@R0

7.

MOV DPL,A

8.

M1: MOVX A,@DPTR

9.

CJNE A,#0FFh,M2

10.

INC R5

11.

M2: INC DPTR

12.

DJNZ R3,M1

13.

END

 

Загрузить элемент из таблицы во внешней памяти программ в аккумулятор. Базовый адрес таблицы содержится в ячейках внутренней памяти BASE, BASE+1, а номер выбираемого элемента – в A.

1.

NAME ZAD20

2.

MOV R0,#BASE

3.

MOV R1,A

4.

MOV A,@R0

5.

MOV DPH,A

6.

INC R0

7.

MOV A,@R0

8.

MOV DPL,A

9.

MOV A,R1

10.

MOVC A,@A+DPTR

11.

END

 

Загрузить элемент в таблицу во внешней памяти данных из регистра R5. Базовый адрес таблицы содержится в ячейках внутренней памяти BASE, BASE+1, а номер – в ячейке NUMB.

1.

NAME ZAD21

2.

MOV R0,#BASE

3.

MOV R1,#NUMB

4.

MOV A,@R0

5.

MOV DPH,A

6.

INC R0

7.

MOV A,@R0

8.

MOV DPL,A

9.

MOV A,@R1

10.

ADD A,DPL

11.

MOV DPL,A

12.

MOV A,DPH

13.

ADDC A,#0

14.

MOV DPH,A

15.

MOV A,R5

16.

MOVX @DPTR,A

17.

END

 

Сравнить поразрядно содержимое A и величины VAL и установить в 1 несовпадающие разряды, прочие – оставить без изменения.

1.

NAME ZAD22

2.

MOV R1,A

3.

XRL A,VAL

4.

MOV R2,A

5.

MOV A,R1

6.

ORL A,R2

7.

END

 

Инвертировать разряды 3, 5, 7 аккумулятора.

1.

NAME ZAD23

2.

MOV R2,A

3.

CPL A

4.

ANL A,#01010100b

5.

MOV R3,A

6.

MOV A,R2

7.

ANL A,#10101011b

8.

ORL A,R3

9.

END

 

Перейти к метке DEST, если разряды 4, 5, 6 порта P2 равны 5­­10 (1012).

1.

NAME ZAD24

2.

MOV A,P2

3.

ANL A,#01110000b

4.

CJNE A,#01010000b,M1

5.

LJMP DEST

6.

M1: END

 

Установить разряды порта P0 2, 3, 4 равными 610 (1102) с сохранением содержимого остальных разрядов.

1.

NAME ZAD25

2.

ANL P0,#11100011b

3.

ORL P0,#00001100b

4.

END

 

Проверить все биты в порту P1. Если какой-либо бит равен 1, то обнулить соответствующий регистр, если же в бите ноль, – то регистр установить равным #0FFh.

1.

NAME ZAD26

2.

MOV R0,#0FFh

3.

MOV R1,#0FFh

4.

MOV R2,#0FFh

5.

MOV R3,#0FFh

6.

MOV R4,#0FFh

7.

MOV R5,#0FFh

8.

MOV R6,#0FFh

9.

MOV R7,#0FFh

10.

JNB P1.0,M1

11.

MOV R0,#0

12.

M1: JNB P1.1,M2

13.

MOV R1,#0

14.

M2: JNB P1.2,M3

15.

MOV R2,#0

16.

M3: JNB P1.3,M4

17.

MOV R3,#0

18.

M4: JNB P1.4,M5

19.

MOV R4,#0

20.

M5: JNB P1.5,M6

21.

MOV R5,#0

22.

M6: JNB P1.6,M7

23.

MOV R6,#0

24.

M7: JNB P1.7,M8

25.

MOV R7,#0

26.

M8: END

 

Перейти к метке DEST, если разряд 5 порта P0 равен 0.

1.

NAME ZAD27

2.

JNB P0.5,DEST

3.

END

 

Увеличить содержимое регистров R4, R5 (16ти разрядное число) на 3 с проверкой возможного переполнения младшего разряда.

1.

NAME ZAD28

2.

MOV DPH,R4

3.

MOV DPL,R5

4.

INC DPTR

5.

INC DPTR

6.

INC DPTR

7.

MOV R4,DPH

8.

MOV R5,DPL

9.

END

 

Сдвинуть вправо 16ти разрядное число на 1 разряд.

1.

NAME ZAD29

2.

CLR C

3.

MOV A,R3

4.

RRC A

5.

MOV R3,A

6.

MOV A,R4

7.

RRC A

8.

MOV R4,A

9.

END

 

Заполнить область внешней памяти, начиная с ADDR1, содержимым регистра R3 в количестве, равном содержимому регистра R4.

1.

NAME ZAD30

2.

MOV DPTR,#ADDR1

3.

MOV A,R3

4.

M1: MOVX @DPTR,A

5.

INC DPTR

6.

DJNZ R4,M1

7.

END

 

Умножить содержимое A на 4, не используя операцию умножения.

1.

NAME ZAD31

2.

RL A

3.

RL A

4.

END

Разделить содержимое A на 2, не используя операцию деления.

1.

NAME ZAD32

2.

RR A

3.

END

 

Подсчитать сумму чисел в однобайтном массиве во внутренней памяти данных. Массив начинается с ячейки BEG, количество элементов указано в R5, сумма должна быть помещена в ячейки с адресами SUM и SUM+1.

1.

NAME ZAD33

2.

MOV R0,#BEG

3.

MOV R1,#SUM

4.

MOV @R1,#0

5.

INC R1

6.

MOV @R1,#0

7.

DEC R1

8.

CLR C

9.

M1: MOV A,@R1

10.

ADDC A,@R0

11.

MOV @R1,A

12.

INC R1

13.

MOV A,@R1

14.

ADDC A,#0

15.

MOV @R1,A

16.

DEC R1

17.

INC R0

18.

DJNZ R5,M1

19.

END

 

Найти максимальный элемент в таблице, содержащей байтовые числа. Таблица содержится в памяти программ, начиная с адреса TABL. Количество ее элементов указано в R6. Максимальный элемент разместить в R7, а адрес этого элемента – в R4, R5.

1.

NAME ZAD34

2.

MOV DPTR,#TABL

3.

MOV A,#0

4.

MOVC A,@A+DPTR

5.

MOV R7,A

6.

MOV R4,DPH

7.

MOV R5,DPL

8.

INC DPTR

9.

DEC R6

10.

M1: MOV A,#0

11.

MOVC A,@A+DPTR

12.

MOV R3,A

13.

SUBB A,R7

14.

JC M2

15.

MOV A,R3

16.

MOV R7,A

17.

MOV R4,DPH

18.

MOV R5,DPL

19.

M2: INC DPTR

20.

DJNZ R6,M1

21.

END

 

Найти минимальный элемент в таблице, содержащей байтовые числа. Таблица содержится в памяти данных, начиная с адреса TABL. Количество ее элементов указано в R6. Минимальный элемент разместить в R6, а адрес этого элемента – в R2, R3.

1.

NAME ZAD35

2.

MOV DPTR,#TABL

3.

MOVX A,@DPTR

4.

MOV R7,A

5.

MOV R2,DPH

6.

MOV R3,DPL

7.

INC DPTR

8.

DEC R6

9.

M1: MOVX A,@DPTR

10.

MOV R1,A

11.

SUBB A,R7

12.

JNC M2

13.

MOV A,R1

14.

MOV R7,A

15.

MOV R2,DPH

16.

MOV R3,DPL

17.

M2: INC DPTR

18.

DJNZ R6,M1

19.

MOV A,R7

20.

MOV R6,A

21.

END

 

 


Дата добавления: 2015-11-04; просмотров: 35 | Нарушение авторских прав




<== предыдущая лекция | следующая лекция ==>
1.Регистрация аккаунта флейм | В якій з форм фінансової звітності розраховують показник прибутковості акцій акціонерного товариства – форма № 2 «Звіт про фінансові результати» розділ 3

mybiblioteka.su - 2015-2024 год. (0.124 сек.)