Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практ 9-1.doc
Скачиваний:
1
Добавлен:
21.11.2019
Размер:
101.89 Кб
Скачать

5. Контрольні питання:

5.1.Яку розрядність має ОМК 1816ВЕ51?

5.2.Яку розрядність мають комірки резидентної пам'яті даних (РПД) ОМК 1816ВЕ51?

5.3. Як можна розмістити в РПД ОМК 1816ВЕ51двобайтне число?

5.4. Як можна, використовуючи ОМК 1816ВЕ51, виконати додавання двобайтних чисел?

5.5. Яка різниця між командами MOV A, 04H та MOV A, #04H? Який формат має кожна з команд?

5.6. Яка різниця між командами ADD A, #4DH та ADDC A, #4DH ? Який формат має кожна з команд?

5.7. Чим відрізняється директива ассемблера від команди ОМК?

6. ЗМІСТ ЗВІТУ:

6.1. Мета роботи.

6.2. Завдання.

6.3. Таблиця 1 заповнена згідно індивідуального завдання.

6.4. Письмові відповіді на контрольні питання.

ДОДАТОК 1.

Команда ADD A,< байт-джерело >

Ця команда складає вміст акумулятора А з вмістом байта-джерела, залишаючи результат в акумуляторі. З появою переносів з розрядів 7 й 3, встановлюються прапори переносу (С) і додаткового переносу (АС) відповідно, у противному випадку ці прапори скидаються. При додаванні цілих чисел без знака прапор переносу "С" указує на появу переповнення. Прапор переповнення (OV) встановлюється, якщо є перенос із біта 6 і немає переносу з біта 7, або є перенос із біта 7 і немає - з біта б, в інакшому випадку прапор OV скидається. При додаванні цілих чисел зі знаком прапор OV вказує на негативну величину, отриману при підсумовуванні двох позитивних операндів або на позитивну суму для двох негативних операндів.

Для команди додавання дозволені наступні режими адресації байта-джерела:

1) регістровий;

2) непрямий регістровий;

3) прямий;

4) безпосередній.

1) Асемблер: ADD A,Rn ; де n=0-7

Алгоритм: (A):=(A)+(Rn), де n=0-7

Приклад: (А)=СЗН, (R6)=0AAH

ADD A,R6 ; (A)=6DH, (R6)=AAH

(AC)=0, (0=1, (OV)=1

2) Асемблер: ADD A,@Rі ; де й=0,l

Алгоритм: (A) :=(A)+((Ri), де 1=0,1

Приклад: (А)=95Н, (Н1)=31Н, (ОЗП [31;)=4СН

ADD A,@Rl ;(A)=E1H, (ОЗП [31])=4СН,

3) Асемблер: ADD A,<dіrect>

Алгоритм: (A):=(A)+(dіrect)

Приклад: (А)=77Н, (ОЗП [90])"FFH

ADD A,90H ;(А)=76Н, (ОЗП [90])=FFH,

4) Асемблер: ADD A,<#data>

Алгоритм: (A):=(A)+#data

Приклад: (А)=09Н

ADD A,#0D3H ;(A)=DCH,

Команда ADDC А,<байт-джерело>

Ця команда ("додавання з переносом") одночасно складає вміст байта-джерела, прапор переносу й вміст акумулятора А, залишаючи результат в акумуляторі. При цьому прапори переносу й додаткового переносу встановлюються, якщо є перенос із біта 7 або біта 3, і скидаються в інакшому випадку. При додаванні цілих чисел без знака прапор переносу вказує на переповнення.

1) Асемблер: ADDC A,Rn ; де n=0-7

Алгоритм: (A):=(A)+(0+(Rn)

Приклад: (А)=В2Н, (R3)=99,

(С)=1

ADDC A,R3 ;(A)=4CH, (R3)=99,

(0=1, (АС)=0, (OV)=1

2) Асемблер: ADDC A,@Rі ; де й=0,1

Алгоритм: (A):=(A)+(C)+((Rі))

(С):=Х, (АС):=Х, (OV):=X, де Х=(0 або 1)

Приклад: (А)=D5H, (R0)=3АН,

(ОЗУ[3А))=1АН, (С)=1

ADDC A,@R0 ;(A)=F0H, (ОЗП[ЗА]=1АН),

(С)=0, (АС)=1, (ОV)=0

3) Асемблер: ADDC A,<dіrect>

Алгоритм: (A):=(A)+(C)+(dіrect)

(С):=Х, (АС):=Х, (OV):=X, де Х=(0 або 1)

Приклад: (А)=11Н, (03П[80])=DFH, (C):=1

ADDC A,80H ;(A)=F1H, (C)=0, (AC)=1, (OV)=0)

4) Асемблер: ADDC A,#data

Алгоритм: (A) :=(A)+(C)+(dіrect)

(С):=Х, (АС):=Х, (OV):=X, де Х=(0 або 1)

Приклад: (А)=55Н, (C)=0

ADDC A,#55H ;(А)=ААН, (C)=0, (АС)=0, (OV)=1

Команда MOV <байта-призначення>,<байта-джерела>

Команда пересилає байт, зазначений в другому операнді, в осередок, зазначений у першому операнді. Уміст байта джерела не змінюється. Ця команда на прапорці й інші регістри не впливає. Команда "MOV" допускає 15 комбінацій адресації джерела й байта-призначення.

1) Асемблер: MOV A,Rn ; де n=0-7

Алгоритм: (A):=(Rn)

Приклад: (A)=FAH, (R4)=93H

MOV A,R4 ;(A)=93H, (R4)=93H

2) Асемблер: MOV A,<dіrect>

Алгоритм: (A):=(dіrect)

Приклад: (А)=93Н, (ОЗП[40])=10Н, (R0)=40H

MOV A,40H ;(А)=10Н, (ОЗП[40])=10Н, (R0)=40H

3) Асемблер: MOV A,@Rі ; де й=0,1

Алгоритм: (A):=((Rі))

Приклад: (А)=10Н, (R0)=41H, (ОЗП[41])=0САН

MOV A,@R0 ;(A)=CAH, (R0)=41H, (ОЗП[41])=0САН

4) Асемблер: MOV A,#data

Алгоритм: (A):=<#data8>

Приклад: (А)=З9Н (11001001В)

MOV A,#37H ;(A)=37H (00110111B)

5) Асемблер: MOV Rn,A ; де n=0-7

Алгоритм: (Rn):=(A)

Приклад: (А)=38Н, (R0)=42H

MOV R0,A ;(A)=38H, (R0)=38H

6) Асемблер: MOV Rn,<dіrect> ; де n=0-7

Алгоритм: (Rn):=(dіrect)

Приклад: (R0)=39H, (P2)=0F2H

MOV R0,P2 ;(R0)=F2H

7) Асемблер: MOV Rn,#data ; де n=0-7

Алгоритм: (Rn):=<#data8>

Приклад: (R0)=0F5H

MOV R0,#49H ;(R0)=49H

8) Асемблер: MOV <dіrect>,A

Алгоритм: (dіrect):=(A)

Приклад: (P0)=FFH, (А)=4ВН

MOV P0,A ;(Р0)=4ВН, (А)=4ВН

9) Асемблер: MOV <dіrect>,Rn ; де n=0-7

Алгоритм: (dіrect):=(Rn)

Приклад: (PSW)=C2H, (R7)=57H

MOV PSW.R7 ;(PSW)=57H, (R7)=57H

10) Асемблер: MOV <dіrect>,<dіrect>

Алгоритм: (dіrect):=(dіrect)

Приклад: (ОЗП[45])=ЗЗН, (ОЗП148])=0DEH

MOV 48H,45H ;(ОЗП[45])=ЗЗН, (ОЗП[48])=ЗЗН

11) Асемблер: MOV <dіrect>,@Rі ; де і=0,1

Алгоритм: (dіrect):=((Rі))

Приклад: (R1)=49H, (ОЗП[49])=0ЕЗН

MOV 51H,@R1 ;(ОЗУ[51])=0ЕЗН, (ОЗП[49])=0ЕЗН

12) Асемблер: MOV <dіrect>,#data

Алгоритм: (dіrect):=<#data8>

Приклад: (ОЗП[5Р])=9ВН

MOV 5FH,#07H ;(ОЗП(5Р])=07Н

13) Асемблер: MOV @Rі,A ; де і=0,1

Алгоритм: ((Rі)):=(A)

Приклад: (R1)=48H, (ОЗП[48])=75Н, (A)=0BDH

MOV @R1,A ;(ОЗП(48])=0ВDН

14) Асемблер: MOV @Rі,<dlrect> ; де і=0,1

Алгоритм: ((Rі)):=(dіrect)

Приклад: (R0)=51H, (ОЗП[51])=0ЕЗН, (Р0)=0АС

MOV @R0,P0 ;(ОЗП[511)=0АСН

15) Асемблер: MOV @Rі,#data ; де і=0,1

Алгоритм: ((Rі)):=<#data8>

Приклад: (ОЗП[7Е])=67Н, (R1)=7EH

MOV @R1, #0A9H ;(ОЗП[7E])=0A9H,(Rl)=7EH

Приклади програм, написані для емулятора МК51( для мене):

Org 00h

Mov acc,#10h ; додавання двобайтних чисел з використанням знаку

; прапорця переносу

add a,#fh

MOV R0,A

Mov acc,#20h

addc A,#5h

MOV R1,A

nop

End

Org 00h

Mov acc,#10000001b ; додавання двобайтних двійкових чисел з використанням

; знаку прапорця переносу

add a,#10000000b

MOV R0,A

Mov acc,#10000110b

addc A,#00001000b

MOV R1,A

nop

End

Org 00h

mov 00h,#0Ah ; додавання двобайтних чисел з використанням

; знаку прапорця переносу та безпосередньої та прямої

;адресації

Mov acc,00h

mov 01h,#0Bh

Mov R7,00h

mov A,r7

nop

End

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]