Aritmeticas

  • November 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Aritmeticas as PDF for free.

More details

  • Words: 1,275
  • Pages: 5
SENAI – Curso Microcontroladores 8051

INSTRUÇÕES ARITMÉTICAS As instruções aritméticas básicas fornecidas pelo MC8051 são as quatro operações básicas: adição, subtração, multiplicação e divisão que podem ser executados com operandos de 8 bits. No MC8051, estas instruções sempre envolvem o ACC(acumulador) que conterá um dos operandos, sendo o outro operando o conteúdo de um registrador, posição de memória ou, ainda, um dado imediato.

Soma de 8 bits A instrução ADD (do inglês add, somar) realiza a adição entre o conteúdo do acumulador, ACC e o conteúdo da posição da memória de dados interna ou uma constante. O resultado da adição é armazenado no acumulador. O endereçamento do pode ser de todos os modos possíveis (imediato, direto, indireto e registro). Sintaxe: ADD A, FLAGS INSTRUÇÃO

OPERANDO DESTINO

ADD

A,

OPERANDO FONTE

BYTES

MC

CY

AC

OV

Rn

1

1

X

X

X

direto

2

1

@Ri

1

1

#data

2

1

ADD A,Rn Soma o conteúdo de Rn(R0 A R7) com ACC o resultado da soma é gravado no ACC. ADD A,direto Soma o conteúdo da posição de memória com ACC o resultado da soma é gravado no ACC. ADD A,@Ri Soma o conteúdo da posição de memória indicada por Ri(R1 ou R0) com ACC o resultado da soma é gravado no ACC. ADD A,#data Soma o dado ao ACC e o resultado é gravado no ACC.

Unidade 3 – Software do microcontrolador 8051 Instruções aritméticas

1

SENAI – Curso Microcontroladores 8051

Soma de 8 bits com carry A instrução ADDC (em que C é do inglês carry, que significa levar, conduzir), leva em conta o “vai um” na operação de adição. A soma do conteúdo do ACC é realizada com o conteúdo de uma posição de memória de dados interna ou constante e mais a flag de carry. O resultado da soma é armazenado no ACC, e o endereçamento do pode ser de todos os modos (imediato, direto, indireto e registro). Esta instrução permite que adições com mais de 8 bits possam ser implementadas graças ao aproveitamento do flag de carry da operação. Sintaxe: ADDC A, FLAGS

INSTRUÇÃO

OPERANDO DESTINO

ADDC

A,

OPERANDO FONTE

BYTES

MC

CY

AC

OV

Rn

1

1

X

X

X

direto

2

1

@Ri

1

1

#data

2

1

ADDC A,Rn Soma o conteúdo de Rn(R0 a R7) ao ACC e com o flag carry. O resultado é gravado no ACC. ADDC A,direto Soma o conteúdo da posição de memória com o ACC e com o flag carry. O resultado é gravado no ACC. ADDC A,@Ri Soma o conteúdo da posição de memória indicado por Ri (R1 ou R0) com ACC e com o flag carry o resultado é gravado no ACC. ADDC A,#data Soma o dado “#data” e o flag carry ao ACC o resultado é gravado no ACC.

Ajuste decimal A instrução DA (do inglês decimal ajust) realiza o ajuste decimal do acumulador após operações de adição em BCD. Sintaxe: DA A FLAGS

INSTRUÇÃO

OPERANDO

BYTES

MC

CY

AC

OV

DA

A

3.11

4.11

5.1X

6.1X

7.1-

DA A Converte em BCD o conteúdo do ACC.

Unidade 3 – Software do microcontrolador 8051 Instruções aritméticas

2

SENAI – Curso Microcontroladores 8051

OBS: DA A não pode simplesmente converter um número hexadecimal para BCD nem se aplica à subtração ou multiplicação. O ajuste é valido apenas para as somas (ADD e ADDC). Existe uma única instrução.

Subtração de 8 bits com borrow A instrução SUBB (do inglês subtract, que corresponde a subtrair, e borrow, que corresponde a emprestar) realiza a subtração do conteúdo do acumulador, ACC, com um segundo operando e o resultado é gravado no acumulador. Temos 4 instruções de subtração com borrow. A subtração é feita entre o acumulador e o conteúdo de uma posição da memória de dados interna ou com uma constate e o flag de carry (BORROW). O resultado da subtração é gravado no ACC e o endereçamento do pode ser feito de todos os modos (imediato, direto, indireto e registro). O flag de carry (BORROW) é afetado conforme o resultado da operação. Sintaxe: SUBB A, FLAGS

INSTRUÇÃO

OPERANDO DESTINO

SUBB

A,

OPERANDO FONTE

BYTES

MC

CY

AC

OV

Rn

1

1

X

X

X

direto

2

1

@Ri

1

1

#data

2

1

SUBB A,Rn Subtrai do ACC o conteúdo de Rn (R0 a R7) e o “vem um” (borrow). O resultado é gravado no ACC. SUBB A,direto Subtrai do ACC o conteúdo da posição de memória e o “vem um” (borrow). O resultado é gravado no ACC. SUBB A,@Ri Subtrai do ACC o conteúdo da posição de memória indicado por Ri (R0 ou R1) e o “vem um” (se existir). O resultado é gravado no ACC. SUBB A,#data Subtrai do ACC o dado e o “vem um” (borrow), se este existir, e o resultado é gravado no ACC.

Incremento de 8 bits A instrução INC incrementa o operando de uma unidade. O endereçamento pode ser feito de todos os modos (imediato, direto, indireto e registro). Há 4 instruções para incremento. Sintaxe: INC

Unidade 3 – Software do microcontrolador 8051 Instruções aritméticas

3

SENAI – Curso Microcontroladores 8051

FLAGS

INSTRUÇÃO INC

OPERANDO

BYTES

MC

CY

AC

OV

A

1

1

X

X

X

Rn

2

1

direto

1

1

@Ri

2

1

INC A Soma 1 ao ACC. INC Rn Soma 1 ao conteúdo de Rn(R0 a R7) INC direto Soma 1 ao conteúdo da posição de memória. INC @RI Soma 1 ao conteúdo da memória indicado por Ri(R0 ou R1).

Decremento de 8 bits As instruções de decremento se parecem muito com as de incremento. Temos 4 instruções de decremento de 8 bits. A instrução DEC decrementa o operando de uma unidade. O endereçamento pode ser feito de todos os modos possíveis (imediato, direto, indireto e registro). Sintaxe: DEC FLAGS

INSTRUÇÃO DEC

OPERANDO

BYTES

MC

CY

AC

OV

A

1

1

X

X

X

Rn

1

1

direto

2

1

@Ri

1

1

DEC A Subtrai 1 ao ACC. DEC Rn Subtrai 1 ao conteúdo de Rn(R0 a R7). DEC direto Subtrai 1 ao conteúdo da posição de memória. DEC @RI Subtrai 1 ao conteúdo da memória indicado por Ri(R0 ou R1).

Unidade 3 – Software do microcontrolador 8051 Instruções aritméticas

4

SENAI – Curso Microcontroladores 8051

Incremento de 16 bits Para o incremento de 16 bits há apenas uma instrução e é bom lembrar que não temos instrução para decremento de 16 bits. A instrução INC incrementa o operando de uma unidade. O endereçamento somente pode ser feito no modo de registro. Sintaxe: INC FLAGS

INSTRUÇÃO

OPERANDO

BYTES

MC

CY

AC

OV

INC

DPTR

3.11

4.12

5.1-

6.1-

7.1-

INC DPTR Soma 1 ao registrador DPTR.

Multiplicação e divisão de 8 bits Tanto para multiplicação como para a divisão o resultado é conduzido para o mesmo registro. A instrução MUL realiza a multiplicação entre o acumulador ACC e o registrador B. Sintaxe: MUL AB FLAGS

INSTRUÇÃO

OPERANDO

BYTES

MC

CY

AC

OV

MUL

AB

3.11

4.14

5.10

6.1-

7.1X

MUL AB Multiplica o conteúdo do ACC pelo conteúdo do registrador B. O resultado é registrado em B(MSB) e ACC(LSB). A instrução DIV realiza a divisão entre o ACC e o registrador B. Sintaxe: DIV AB FLAGS

INSTRUÇÃO

OPERANDO

BYTES

MC

CY

AC

OV

DIV

AB

3.11

4.14

5.10

6.1X

7.1-

DIV AB Divide o conteúdo do acumulador ACC pelo conteúdo do registrador B. O quociente fica em A e o resto B. Tanto na multiplicação como na divisão as instruções necessitam de um tempo maior para executar as operações.

Unidade 3 – Software do microcontrolador 8051 Instruções aritméticas

5

Related Documents