Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Презентация 8051.pptx
Скачиваний:
0
Добавлен:
26.06.2025
Размер:
2.65 Mб
Скачать

Обращение к стеку

PUSH <direct>

(SP): = (SP) + 1, ((SP)): = (direct)

Пример: SP = 09h; DPTR = 1279h

PUSH DPL

PUSH DPH → SP = 0Bh; ОЗУ[0Ah] =79h; ОЗУ[0Bh] = 12h

Арифметические операции

ADD A, <байт_источник>

ADD A, Rn

(A): = (A) + (Rn) n = 0, ..., 7

Пример: A = C3h; R6 = AAh

ADD A, R6 → A = 6Dh; R6 = AAh; C = 1; AC = 0, OV = 1

ADD A, @Ri

(A): = (A) + ((Ri)) i = 0, 1

Пример: A = 95h; R1 = 35h; ОЗУ[35h] = 4Ch ADD A, @R1 → A = E1h; C = 0; AC = 1; OV = 0

Арифметические операции

ADD A, <байт_источник>

ADD A, <direct>

(A): = (A) + (direct)

Пример: A = 77h; ОЗУ[90h] = FFh

ADD A, 090h → A = 76h; C = 1; AC = 1; OV = 0

ADD A, #data

(A): = (A) + #data

Пример: A = 09h

ADD A, #0D3h → A = DCh; C = 0; AC = 0; OV = 0

Арифметические операции

ADDC A, <байт_источник>

ADDC A, Rn

(A): = (A) + (C) + (Rn) n = 0, ..., 7

Пример: A = B2h; R3 = 99h, C = 1

ADDC A, R3 → A = 4Ch; C = 1; AC = 0; OV = 1

ADDC A, @Ri

(A): = (A) + (C) + ((Ri)) i = 0, 1

Пример: A = D5h; R0 = 3Ah; ОЗУ[3Ah] = 1Ah; C = 1 ADDC A, @R0 → A = F0h; C = 0; AC = 1; OV = 0

Арифметические операции

ADDC A, <байт_источник>

ADDC A, <direct>

(A): = (A) + (C) + (direct)

Пример: A = 11h; ОЗУ[80h] = DFh, C = 1 ADDC A, 080h → A = F1h; C = 0; AC = 1; OV = 0

ADDC A, #data

(A): = (A) + (C) + #data

Пример: A = 55h, C = 0

ADDC A, #055h → A = AAh; C = 0; AC= 0; OV = 1

Арифметические операции

DA A

(десятичная коррекция bin → bcd)

Пример:

1) A = 56h; R3 = 67h; C = 1 ADDC A, R3 → A = BDh; C = 0 DA A → A = 23h; C = 1

2) A = 30h; C = 0

ADD A, #099h → A = C9h; C = 0

DA A → A = 29h; C = 1

Арифметические операции

DEC <байт> – 1

DEC A

Пример: A = 11h; C = 1; AC = 1 DEC A → A = 10h; C = 1; AC = 1

DEC (Rn) n = 0, ..., 7

(Rn) = (Rn) – 1

Пример: R1 = 7Fh; ОЗУ[7Fh] = 40h; ОЗУ[7Eh] = 00h DEC @R1

DEC R1

DEC @R1 → R1 = 7Eh; ОЗУ[7Fh] = 3Fh; ОЗУ[7Eh] = FFh

Арифметические операции

DEC <байт> – 1

DEC <direct>

(direct): = (direct) – 1

Пример: SCON = A0h; C = 1; AC = 1 DEC SCON → SCON = 9Fh; C = 1; AC = 1

DEC @Ri

((Ri )) = ((Ri ) – 1)

Пример: R1 = 7Fh; ОЗУ[7Fh] = 40h; ОЗУ[7Eh] = 00h

DEC @R1

DEC R1

DEC @R1 → R1 = 7Eh; ОЗУ[7Fh] = 3Fh; ОЗУ[7Eh] = FFh

Арифметические операции

DIV AB

А: = целая часть Деление А / В → В: = остаток

(A): = ((A) / (B)) [15-8] (B): = ((A) / (B)) [7-0]

Пример: A = 251d = FBh = 11111011b B = 18d = 12h = 00010010b

DIV AB

A = 13d = 0Dh = 00001101b

B = 17d = 11h = 00010001b, т.к. 251 = (13 × 18) + 17 C = 0; OV = 0

Арифметические операции

INC <байт> +1

INC A

(A): = (A) + 1

Пример: A = 1Fh; AC = 0 INC A → A = 20h; AC = 0

INC (Rn)

(Rn): = (Rn) + 1 n = 0, ..., 7

Пример: R4 = FFh; C = 0, AC = 0 INC R4 → R4 = 00h; C = 0; AC = 0