arquitetura de computadores software programa ------------------- ------------------...

44
ARQUITETURA DE COMPUTADORES SOFTWARE PROGRAMA ------------- ------ ------------- ----- ------------- ------ SEQUENCIA DE INSTRUÇÕES TIPOS DE INSTRUÇÕES MOVIMENTAÇÃO DE DADOS ARITMETICAS E LOGICAS DESVIO CHAMADA E RETORNO DE ROTINAS

Upload: internet

Post on 17-Apr-2015

109 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: ARQUITETURA DE COMPUTADORES SOFTWARE PROGRAMA ------------------- ------------------ ------------------- SEQUENCIA DE INSTRUÇÕES TIPOS DE INSTRUÇÕES MOVIMENTAÇÃO

ARQUITETURA DE COMPUTADORES

SOFTWARE

PROGRAMA

-------------------

------------------

-------------------

SEQUENCIA DE INSTRUÇÕES

TIPOS DE INSTRUÇÕESMOVIMENTAÇÃO DE DADOS

ARITMETICAS E LOGICAS

DESVIO

CHAMADA E RETORNO DE ROTINAS

Page 2: ARQUITETURA DE COMPUTADORES SOFTWARE PROGRAMA ------------------- ------------------ ------------------- SEQUENCIA DE INSTRUÇÕES TIPOS DE INSTRUÇÕES MOVIMENTAÇÃO

ARQUITETURA DE COMPUTADORES

SISTEMAS

EMBUTIDOS OU DEDICADOS

CPU

MEM

E/S

PROGRAMAFIRMWARE

MAQUINA A SER CONTROLADA

NÃO VOLATIL

Page 3: ARQUITETURA DE COMPUTADORES SOFTWARE PROGRAMA ------------------- ------------------ ------------------- SEQUENCIA DE INSTRUÇÕES TIPOS DE INSTRUÇÕES MOVIMENTAÇÃO

ARQUITETURA DE COMPUTADORES

SISTEMAS

PROPOSITO GERAL

CPU

MEM

E/S

BIOS

PROGRAMAS

FLASH, NÃO VOLATIL

MEMORIA SEMICONDUTORA

ESTATICA, DINAMICA, VOLATIL

DISCO RIGIDO

SIST. OPERACIONAL

APLICATIVOS

REDE

MODEM

TECLADO

MONITOR

MOUSE

Page 4: ARQUITETURA DE COMPUTADORES SOFTWARE PROGRAMA ------------------- ------------------ ------------------- SEQUENCIA DE INSTRUÇÕES TIPOS DE INSTRUÇÕES MOVIMENTAÇÃO

ARQUITETURA DE COMPUTADORES

APLICATIVOS

GERAÇÃO

BAIXO NIVEL

PROGRAMA EDITADO EM LING. ASSEMBLY*

PROGRAMA ASSEMBLER

CODIGO DE MAQUINA

* NESTA LINGUAGEM,CADA COMANDO CORRESPONDE A UM CODIGO DE MAQUINA

Page 5: ARQUITETURA DE COMPUTADORES SOFTWARE PROGRAMA ------------------- ------------------ ------------------- SEQUENCIA DE INSTRUÇÕES TIPOS DE INSTRUÇÕES MOVIMENTAÇÃO

ARQUITETURA DE COMPUTADORES

APLICATIVOS

GERAÇÃO

ALTO NIVEL

PROGRAMA EDITADO, (POR

EXEMPLO),

EM LING. C*

PROGRAMA COMPILADOR C

CODIGO DE MAQUINA

* NESTA LINGUAGEM,CADA COMANDO CORRESPONDE A VARIOS CODIGOS DE MAQUINA

Page 6: ARQUITETURA DE COMPUTADORES SOFTWARE PROGRAMA ------------------- ------------------ ------------------- SEQUENCIA DE INSTRUÇÕES TIPOS DE INSTRUÇÕES MOVIMENTAÇÃO

ARQUITETURA DE COMPUTADORES

INSTRUÇÕES

MOVIMENTAÇÃO DE DADOS

ARITMETICAS LOGICAS

DESVIO

CHAMADA DE ROTINA

RETORNO DE ROTINA

MANIPULAÇÃO DE PILHA

ENTRADA E SAIDA

ESPECIAIS

Page 7: ARQUITETURA DE COMPUTADORES SOFTWARE PROGRAMA ------------------- ------------------ ------------------- SEQUENCIA DE INSTRUÇÕES TIPOS DE INSTRUÇÕES MOVIMENTAÇÃO

ARQUITETURA DE COMPUTADORES

MOVIMENTAÇÃO DE DADOS – ENTRE REG`s

CS DS ES

BX

FC

B.END

B.DADOS

R.END

R.DADOS

UNID.

DE

INTERF.

MEMORIA

RDWR

20

8 BITS

16 BITS

+X16

SS RASC1 T3

= , +1, -1

IP SP SI DI RASC2

CX DX T1 T2 IRAX

ALU

UNID. DE CONTROLE

B. 1

16

8

16

8

820 BITS

1 BIT

B. 2

B. 3B. 4

MOV BX,AX

Page 8: ARQUITETURA DE COMPUTADORES SOFTWARE PROGRAMA ------------------- ------------------ ------------------- SEQUENCIA DE INSTRUÇÕES TIPOS DE INSTRUÇÕES MOVIMENTAÇÃO

ARQUITETURA DE COMPUTADORES

MOV. DE DADOS – ENTRE REG E MEMORIA

CS DS ES

BX

FC

B.END

B.DADOS

R.END

R.DADOS

UNID.

DE

INTERF.

MEMORIA

RDWR

20

8 BITS

16 BITS

+X16

SS RASC1 T3

= , +1, -1

IP SP SI DI RASC2

CX DX T1 T2 IRAX

ALU

UNID. DE CONTROLE

B. 1

16

8

16

8

820 BITS

1 BIT

B. 2

B. 3B. 4

MOV CX,[BX]

Page 9: ARQUITETURA DE COMPUTADORES SOFTWARE PROGRAMA ------------------- ------------------ ------------------- SEQUENCIA DE INSTRUÇÕES TIPOS DE INSTRUÇÕES MOVIMENTAÇÃO

ARQUITETURA DE COMPUTADORES

MOV. DE DADOS – DADO IMEDIATO

CS DS ES

BX

FC

B.END

B.DADOS

R.END

R.DADOS

UNID.

DE

INTERF.

MEMORIA

RDWR

20

8 BITS

16 BITS

+X16

SS RASC1 T3

= , +1, -1

IP SP SI DI RASC2

CX DX T1 T2 IRAX

ALU

UNID. DE CONTROLE

B. 1

16

8

16

8

820 BITS

1 BIT

B. 2

B. 3B. 4

MOV CL,37H

Page 10: ARQUITETURA DE COMPUTADORES SOFTWARE PROGRAMA ------------------- ------------------ ------------------- SEQUENCIA DE INSTRUÇÕES TIPOS DE INSTRUÇÕES MOVIMENTAÇÃO

ARQUITETURA DE COMPUTADORES

ARITMETICAS E LOGICAS

CS DS ES

BX

FC

B.END

B.DADOS

R.END

R.DADOS

UNID.

DE

INTERF.

MEMORIA

RDWR

20

8 BITS

16 BITS

+X16

SS RASC1 T3

= , +1, -1

IP SP SI DI RASC2

CX DX T1 T2 IRAX

ALU

UNID. DE CONTROLE

B. 1

16

8

16

8

820 BITS

1 BIT

B. 2

B. 3B. 4

ADD AL,BL

Page 11: ARQUITETURA DE COMPUTADORES SOFTWARE PROGRAMA ------------------- ------------------ ------------------- SEQUENCIA DE INSTRUÇÕES TIPOS DE INSTRUÇÕES MOVIMENTAÇÃO

ARQUITETURA DE COMPUTADORES

DESVIO – CONDICIONAL E INCONDICIONAL

INSTRUÇÕES

FLAG DE CARRY (FC) ALTERADO

JP C NHNL

NHNL

FC=1

JMP XHXL

FC=0

XHXL

Page 12: ARQUITETURA DE COMPUTADORES SOFTWARE PROGRAMA ------------------- ------------------ ------------------- SEQUENCIA DE INSTRUÇÕES TIPOS DE INSTRUÇÕES MOVIMENTAÇÃO

ARQUITETURA DE COMPUTADORES

CHAMADA DE ROTINA / RETORNO DE ROTINA

INSTRUÇÕES

CALL NHNL

NHNL

RET

NA CHAMADA DA ROTINA O ENDEREÇO DE RETORNO DEVE SER PRESERVADO

Page 13: ARQUITETURA DE COMPUTADORES SOFTWARE PROGRAMA ------------------- ------------------ ------------------- SEQUENCIA DE INSTRUÇÕES TIPOS DE INSTRUÇÕES MOVIMENTAÇÃO

ARQUITETURA DE COMPUTADORES

LINGUAGEM C X LINGUAGEM ASSEMBLY

CONDIÇÃO INICIAL

AH ALVAR1

BHVAR4

BLVAR3

CHVAR2

CL DH DL

VAR1 = VAR1 + VAR2 + VAR3 + VAR4;

C SOMA DE VARIAVEIS

ADD AL,CH

ADD AL,BL

ADD AL,BH

A

OBS: POR SIMPLICIDADE, NÃO FOI LEVADO EM CONTA OS CARRY´s GERADOS PELAS SOMAS

Page 14: ARQUITETURA DE COMPUTADORES SOFTWARE PROGRAMA ------------------- ------------------ ------------------- SEQUENCIA DE INSTRUÇÕES TIPOS DE INSTRUÇÕES MOVIMENTAÇÃO

ARQUITETURA DE COMPUTADORES

LINGUAGEM C X LINGUAGEM ASSEMBLY

CONDIÇÃO INICIAL

AHVAR1

ALVAR3

BH BL CHVAR2

CL DH DL

VAR1 = VAR1 + VAR2;

VAR3 = VAR3 – VAR1;

C SOMA E SUBTRAÇÃO DE VARIAVEIS

ADD AH,CH

SUB AL,AH

A

Page 15: ARQUITETURA DE COMPUTADORES SOFTWARE PROGRAMA ------------------- ------------------ ------------------- SEQUENCIA DE INSTRUÇÕES TIPOS DE INSTRUÇÕES MOVIMENTAÇÃO

ARQUITETURA DE COMPUTADORES

LINGUAGEM C X LINGUAGEM ASSEMBLY

CONDIÇÃO INICIAL

AHTEMP

AL BHVAR1

BLVAR2

CHVAR3

CLVAR4

DHVAR5

DL

VAR5 = (VAR1 + VAR2) – (VAR3 + VAR4);

C SOMA E SUBTRAÇÃO DE VARIAVEIS, OBEDECENDO A PRECEDENCIA. OBS: AS VARIAVEIS DEVEM SER PRESERVADAS

MOV DH,BH

ADD DH,BL

MOV AH,CH

ADD AH,CL

SUB DH,AH

A

Page 16: ARQUITETURA DE COMPUTADORES SOFTWARE PROGRAMA ------------------- ------------------ ------------------- SEQUENCIA DE INSTRUÇÕES TIPOS DE INSTRUÇÕES MOVIMENTAÇÃO

CPU

ARQUITETURA DE COMPUTADORES

LINGUAGEM C X LINGUAGEM ASSEMBLY

ESTRUTURA DE DADOS

ESCALARES

VETOR

REGISTRADOR

DADOS

MEMORIAREG

DADOS NA MEM. EM END´s CONSECUTIVOS

CPU

Page 17: ARQUITETURA DE COMPUTADORES SOFTWARE PROGRAMA ------------------- ------------------ ------------------- SEQUENCIA DE INSTRUÇÕES TIPOS DE INSTRUÇÕES MOVIMENTAÇÃO

ARQUITETURA DE COMPUTADORES

LINGUAGEM C X LINGUAGEM ASSEMBLY

CONDIÇÃO INICIAL

AH AL BXBASE DO VETOR

CHVAR1

CL DH DL

VAR1 = VAR[12] + VAR[8] + VAR1;

C SOMA DE ELEMENTOS DE VETOR COM ESCALAR

ADD CH,[BX][12]

ADD CH,[BX][8]

A

Page 18: ARQUITETURA DE COMPUTADORES SOFTWARE PROGRAMA ------------------- ------------------ ------------------- SEQUENCIA DE INSTRUÇÕES TIPOS DE INSTRUÇÕES MOVIMENTAÇÃO

ARQUITETURA DE COMPUTADORES

LINGUAGEM C X LINGUAGEM ASSEMBLY

CONDIÇÃO INICIAL

AH AL BXBASE DO VETOR

CHVAR1

CL DH DL SII : INDICE

VAR1 = VAR1 + VAR[I];

C SOMA DE ELEMENTO DE VETOR COM ESCALAR OBS:

INDICE É UMA VARIAVEL

ADD CH,[BX][SI]

A

Page 19: ARQUITETURA DE COMPUTADORES SOFTWARE PROGRAMA ------------------- ------------------ ------------------- SEQUENCIA DE INSTRUÇÕES TIPOS DE INSTRUÇÕES MOVIMENTAÇÃO

ARQUITETURA DE COMPUTADORES

LINGUAGEM C X LINGUAGEM ASSEMBLY

CONDIÇÃO INICIAL

AHI

ALJ

BHF

BLG

CH CLH

DH DL

IF (I = = J) GOTO L1;

F = G + H;

L1: F = G – H;

C DESVIO CONDICIONAL

CMP AH,AL

JP NZ L1

A

LABEL OU ROTULO

I = J FZ =1

I J FZ = 0

MOV BH,BL

ADD BH,CL

JMP L2

L1: MOV BH,BL

SUB BH,CL

L2:

Page 20: ARQUITETURA DE COMPUTADORES SOFTWARE PROGRAMA ------------------- ------------------ ------------------- SEQUENCIA DE INSTRUÇÕES TIPOS DE INSTRUÇÕES MOVIMENTAÇÃO

ARQUITETURA DE COMPUTADORES

LINGUAGEM C X LINGUAGEM ASSEMBLY

CONDIÇÃO INICIAL

AHI

ALJ

BHF

BLG

CH CLH

DH DL

IF (I= = J) F = G + H; ELSE F = G - H;

C IF THEN ELSE

CMP AH,AL

JP NZ L1

MOV BH,BL

ADD BH,CL

AJMP L2

L1: MOV BH,BL

SUB BH,CL

L2:

Page 21: ARQUITETURA DE COMPUTADORES SOFTWARE PROGRAMA ------------------- ------------------ ------------------- SEQUENCIA DE INSTRUÇÕES TIPOS DE INSTRUÇÕES MOVIMENTAÇÃO

ARQUITETURA DE COMPUTADORES

LINGUAGEM C X LINGUAGEM ASSEMBLY

CONDIÇÃO INICIAL

AXJ

BXEND. BASE

CXH

DH DLG

SII

LOOP:G = G + A[I];

I = I + J;

IF(I != H) GOTO LOOP;

C LOOP COM ELEM. DE VETOR INDEXADO

ADD DL,[BX][SI]

ADD SI,AX

A

CMP SI,CX

JP NZ LOOP

Page 22: ARQUITETURA DE COMPUTADORES SOFTWARE PROGRAMA ------------------- ------------------ ------------------- SEQUENCIA DE INSTRUÇÕES TIPOS DE INSTRUÇÕES MOVIMENTAÇÃO

ARQUITETURA DE COMPUTADORES

LINGUAGEM C X LINGUAGEM ASSEMBLY

CONDIÇÃO INICIAL

AXJ

BXEND. BASE

CX DH DLK

SII

WHILE (SAVE[I] = = K)

I = I + J;

C LOOP WHILE

DLOOP:

CMP [BX][SI],DL

JP NZ SEGUE

ADD SI,AX

AJMP DLOOP

SEGUE:

Page 23: ARQUITETURA DE COMPUTADORES SOFTWARE PROGRAMA ------------------- ------------------ ------------------- SEQUENCIA DE INSTRUÇÕES TIPOS DE INSTRUÇÕES MOVIMENTAÇÃO

ARQUITETURA DE COMPUTADORES

LINGUAGEM C X LINGUAGEM ASSEMBLY

CONDIÇÃO INICIAL

AHF

ALI

BX CHJ

CLH

DH DLTEMP

SWITCH(K) {

CASE 0 : F = I + J; BREAK

CASE 1 : F = J + H; BREAK CASE 2 : F =J - H; BREAK

CASE 3 : F = I - J; BREAK }

C SWITCH CASE

L2 (2BYTES)

L1 (2BYTES)

L0 (2BYTES)

L3 (2BYTES)

END BASE DA TAB DE DESVIO MEMORIA

SIk

Page 24: ARQUITETURA DE COMPUTADORES SOFTWARE PROGRAMA ------------------- ------------------ ------------------- SEQUENCIA DE INSTRUÇÕES TIPOS DE INSTRUÇÕES MOVIMENTAÇÃO

ARQUITETURA DE COMPUTADORES

LINGUAGEM C X LINGUAGEM ASSEMBLY

SUB DX,DX ; TEMP =0

ADD SI, DX ; SE K < 0 -> FS =1

JP S D_EXITSWITCH

MOV DX,4

CMP SI,DX ; SE K < 4 -> FC = 1

JP NC D_EXITSWITCH

JMP [BX] [ 2 * SI]

L0:

MOV AH,AL

ADD AH,CL

JMP D_EXITSWITCH

A L1:

MOV AH,CH

ADD AH,CL

JMP D_EXITSWITCH

L2:

MOV AH,CH

SUB AH,CL

JMP D_EXITSWITCH

L3:

MOV AH,AL

SUB AH,CH

JMP D_EXITSWITCH

D_EXITSWITCH:

Page 25: ARQUITETURA DE COMPUTADORES SOFTWARE PROGRAMA ------------------- ------------------ ------------------- SEQUENCIA DE INSTRUÇÕES TIPOS DE INSTRUÇÕES MOVIMENTAÇÃO

ARQUITETURA DE COMPUTADORES

SUPORTE A FUNÇÕES PELO HARDWARE

FUNÇÃO OU SUB-ROTINA: CODIGO REUTILIZAVEL

PROGR. FICA MAIS INTELIGIVELOCUPAÇÃO DE MEM. DIMINUEPROGR. FICA MAIS LENTO

MEMORIA

PROGRAMA

CALL FUNÇÃO1

PILHA (STACK) LIFO (LAST IN FIRST OUT)

TOPO

END. RET. FUNÇÃO1

MEMORIA

FUNÇÃO1

CALL FUNÇÃO2

RET

1 MEMORIA

FUNÇÃO2

RET

2

34

XXXXXXXXXX

2END. RET. PROGR1

3

4

Page 26: ARQUITETURA DE COMPUTADORES SOFTWARE PROGRAMA ------------------- ------------------ ------------------- SEQUENCIA DE INSTRUÇÕES TIPOS DE INSTRUÇÕES MOVIMENTAÇÃO

ARQUITETURA DE COMPUTADORES

SUPORTE A FUNÇÕES PELO HARDWARE

LOCALIZAÇÃO DA LIFO

CPU MEMORIA

LIFOLIFO

MAIS COMUM

LOCALIZAÇÃO DO REG MARCADOR DE TOPO

CPU

TOPO

CPU

NOME DO REG MARCADOR DE TOPO

STACK POINTER (SP)

Page 27: ARQUITETURA DE COMPUTADORES SOFTWARE PROGRAMA ------------------- ------------------ ------------------- SEQUENCIA DE INSTRUÇÕES TIPOS DE INSTRUÇÕES MOVIMENTAÇÃO

ARQUITETURA DE COMPUTADORES

SP NA CPU (8080 – SIMPLIFICADA)

PC DC SP

RA VI IR

A B

T1 T2

ALU

FC

UNID. DE CONTROLE

REG´s

B.END

B.DADOS

R.END

R.DADOS

UNID. DE INTERFACE

MEMORIA

RDWR

16

8

8 BITS

16 BITS

CONTR. CONEXÃO

1 BIT

Page 28: ARQUITETURA DE COMPUTADORES SOFTWARE PROGRAMA ------------------- ------------------ ------------------- SEQUENCIA DE INSTRUÇÕES TIPOS DE INSTRUÇÕES MOVIMENTAÇÃO

ARQUITETURA DE COMPUTADORES

SP NA CPU (8088 – SIMPLIFICADA)

CS DS ES

BX

FC

REG´s

B.END

B.DADOS

R.END

R.DADOS

UNID.

DE

INTERF.

MEMORIA

RDWR

20

8 BITS

16 BITS

+X16

SS RASC1 T3

= , +1, -1

IP SP SI DI RASC2

CX DX T1 T2 IRAX

ALU

UNID. DE CONTROLE

B. 1

16

8

16

8

820 BITS

1 BIT

B. 2

B. 3B. 4

Page 29: ARQUITETURA DE COMPUTADORES SOFTWARE PROGRAMA ------------------- ------------------ ------------------- SEQUENCIA DE INSTRUÇÕES TIPOS DE INSTRUÇÕES MOVIMENTAÇÃO

ARQUITETURA DE COMPUTADORES

INSTRUÇÕES DE CHAMADA E RETORNO DE ROTINA

CHAMADA

CALL NHNL

RETORNO

RET

Page 30: ARQUITETURA DE COMPUTADORES SOFTWARE PROGRAMA ------------------- ------------------ ------------------- SEQUENCIA DE INSTRUÇÕES TIPOS DE INSTRUÇÕES MOVIMENTAÇÃO

ARQUITETURA DE COMPUTADORES

LINGUAGEM C X LINGUAGEM ASSEMBLY

CONDIÇÃO INICIAL

AHF

AL BH BLG

CHH

CLI

DHJ

DLG

SPX

INT EXEMPLO (INT G, INT H, INT I, INT J)

{

INT F;

F = (G + H) – ( I + J);

RETURN F

}

C FUNÇÃO NÃO RECURSIVAPUSH DX

PUSH CX

ADD DL, CH

ADD CL, DH

SUB DL, CL

MOV AH,DL

POP CX

POP DX

RET

A

Page 31: ARQUITETURA DE COMPUTADORES SOFTWARE PROGRAMA ------------------- ------------------ ------------------- SEQUENCIA DE INSTRUÇÕES TIPOS DE INSTRUÇÕES MOVIMENTAÇÃO

ARQUITETURA DE COMPUTADORES

LINGUAGEM C X LINGUAGEM ASSEMBLY

CHAMADA DA FUNÇÃO

EXEMPLO (G, H, I,J)

C FUNÇÃO NÃO RECURSIVA

CALL EXEMPLO

A

Page 32: ARQUITETURA DE COMPUTADORES SOFTWARE PROGRAMA ------------------- ------------------ ------------------- SEQUENCIA DE INSTRUÇÕES TIPOS DE INSTRUÇÕES MOVIMENTAÇÃO

ARQUITETURA DE COMPUTADORES

INSTRUÇÕES DE MANIPULAÇÃO DE PILHA

ARMAZENAR NA PILHA

PUSH REG (16 bits)

RETIRAR DA PILHA

POP REG (16 bits)

USO : PRESERVAR O CONTEUDO DE REGISTRADORES DO PROGRAMA CHAMADOR QUE TAMBEM SÃO UTILIZADOS PELA ROTINA CHAMADA

OBS:

POP´s NA ORDEM INVERSA DOS PUSH´s

Page 33: ARQUITETURA DE COMPUTADORES SOFTWARE PROGRAMA ------------------- ------------------ ------------------- SEQUENCIA DE INSTRUÇÕES TIPOS DE INSTRUÇÕES MOVIMENTAÇÃO

ARQUITETURA DE COMPUTADORES

PASSAGEM DE PARAMETROS PELA PILHA

QUANDO O NUMERO DE PARAMETROS É MAIOR DO QUE O NUMERO DE REGISTRADORES DA CPU, O PROGRAMA CHAMADOR COLOCA OS PARAMETROS NA PILHA E

ARMAZENA NO REGISTRADOR BP( BASE POINTER) DA CPU O ENDEREÇO DA PILHA RELATIVO AO 1O PARAMETRO

PILHA (STACK) LIFO(LAST IN FIRST OUT)

END. 1O PARAMETRO.

END. RET PROGR. SP

BP

Page 34: ARQUITETURA DE COMPUTADORES SOFTWARE PROGRAMA ------------------- ------------------ ------------------- SEQUENCIA DE INSTRUÇÕES TIPOS DE INSTRUÇÕES MOVIMENTAÇÃO

ARQUITETURA DE COMPUTADORES

BP NA CPU (8088 – SIMPLIFICADA)

CS DS ES

BX

FC

REG´s

B.END

B.DADOS

R.END

R.DADOS

UNID.

DE

INTERF.

RDWR

20

8 BITS

16 BITS

+X16

SS RASC1 T3

= , +1, -1

IP SP SI DI RASC2

CX DX T1 T2 IRAX

ALU

UNID. DE CONTROLE

B. 1

16

8

16

8

820 BITS

1 BIT

B. 2

B. 3B. 4

BP

Page 35: ARQUITETURA DE COMPUTADORES SOFTWARE PROGRAMA ------------------- ------------------ ------------------- SEQUENCIA DE INSTRUÇÕES TIPOS DE INSTRUÇÕES MOVIMENTAÇÃO

AH

ARQUITETURA DE COMPUTADORES

LINGUAGEM C X LINGUAGEM ASSEMBLY

CONDIÇÃO INICIAL

BH BL CHTEMP

CLN

DHJ

DLFACT

SPX

INT FACT (INT N)

{

IF ( N< 1) RETURN (1)

ELSE RETURN (N X FACT(N-1);

}

C FUNÇÃO RECURSIVA:

FATORIAL

FACT:

PUSH CX

PUSH AX

MOV CH,1

CMP CL,CH

JP NC DESVIO

MOV DL,1

POP AX

POP CX

RET

A

ALTEMP1

DESVIO:

SUB CL,1

CALL FACT

ADD CL,1

MOV AL,CL

MUL DL

MOV DL,AL

POP AX

POP CX

RET

Page 36: ARQUITETURA DE COMPUTADORES SOFTWARE PROGRAMA ------------------- ------------------ ------------------- SEQUENCIA DE INSTRUÇÕES TIPOS DE INSTRUÇÕES MOVIMENTAÇÃO

ARQUITETURA DE COMPUTADORES

LINGUAGEM C X LINGUAGEM ASSEMBLY

OBS:

N 1

CMP CL,CH ; N <1 FC =1

MUL DL ; AX AL x DL

Page 37: ARQUITETURA DE COMPUTADORES SOFTWARE PROGRAMA ------------------- ------------------ ------------------- SEQUENCIA DE INSTRUÇÕES TIPOS DE INSTRUÇÕES MOVIMENTAÇÃO

ARQUITETURA DE COMPUTADORES

EXERCICIO 11

PREENCHA OS QUADROS ABAIXO A MEDIDA QUE A ROTINA FACT ESTIVER SENDO EXECUTADA PARA N=3, DESDE A SUA CHAMADA.

OBS: FACT(0)= 1, FACT(1) = 1x FACT(0) = 1, FACT(2) = 2x FACT(1) = 2, FACT(3) = 3x FACT(2) = 6

CL =3 DL = FACT SP =X

Page 38: ARQUITETURA DE COMPUTADORES SOFTWARE PROGRAMA ------------------- ------------------ ------------------- SEQUENCIA DE INSTRUÇÕES TIPOS DE INSTRUÇÕES MOVIMENTAÇÃO

ARQUITETURA DE COMPUTADORES

EXERCICIO 11 CONTINUAÇÃO

CALL FACT

CL = 3

PUSH CX

PUSH AX

MOV CH,1

CH = 1

CMP CL,CH

FC =

JNC DESVIO

SUB CL,1

CL =

XX-2X-4X-6X-8X-10X-12X-14X-16X-18X-20X-22X-24

LIFO

SP = X

Page 39: ARQUITETURA DE COMPUTADORES SOFTWARE PROGRAMA ------------------- ------------------ ------------------- SEQUENCIA DE INSTRUÇÕES TIPOS DE INSTRUÇÕES MOVIMENTAÇÃO

ARQUITETURA DE COMPUTADORES

EXERCICIO 11 CONTINUAÇÃO

CALL FACT

CL =

PUSH CX

PUSH AX

MOV CH,1

CH = 1

CMP CL,CH

FC =

JNC DESVIO

SUB CL,1

CL =

XX-2X-4X-6X-8X-10X-12X-14X-16X-18X-20X-22X-24

LIFO

SP =

Page 40: ARQUITETURA DE COMPUTADORES SOFTWARE PROGRAMA ------------------- ------------------ ------------------- SEQUENCIA DE INSTRUÇÕES TIPOS DE INSTRUÇÕES MOVIMENTAÇÃO

ARQUITETURA DE COMPUTADORES

EXERCICIO 11 CONTINUAÇÃO

CALL FACT

CL =

PUSH CX

PUSH AX

MOV CH,1

CH = 1

CMP CL,CH

FC =

JNC DESVIO

SUB CL,1

CL =

XX-2X-4X-6X-8X-10X-12X-14X-16X-18X-20X-22X-24

LIFO

SP =

Page 41: ARQUITETURA DE COMPUTADORES SOFTWARE PROGRAMA ------------------- ------------------ ------------------- SEQUENCIA DE INSTRUÇÕES TIPOS DE INSTRUÇÕES MOVIMENTAÇÃO

ARQUITETURA DE COMPUTADORES

EXERCICIO 11 CONTINUAÇÃO

CALL FACT

CL =

PUSH CX

PUSH AX

MOV CH,1

CH= 1

CMP CL,CH

FC =

JNC DESVIO

MOV DL,1

DL = 1

XX-2X-4X-6X-8X-10X-12X-14X-16X-18X-20X-22X-24

LIFO

SP =

POP AX

POP CX

RET

Page 42: ARQUITETURA DE COMPUTADORES SOFTWARE PROGRAMA ------------------- ------------------ ------------------- SEQUENCIA DE INSTRUÇÕES TIPOS DE INSTRUÇÕES MOVIMENTAÇÃO

ARQUITETURA DE COMPUTADORES

EXERCICIO 11 CONTINUAÇÃO

ADD CL,1

CL =

MOV AL,CL

AL =

MUL DL

AL =

MOVDL,AL

DL =

XX-2X-4X-6X-8X-10X-12X-14X-16X-18X-20X-22X-24

LIFO

SP =

POP AX

POP CX

CL =

RET

Page 43: ARQUITETURA DE COMPUTADORES SOFTWARE PROGRAMA ------------------- ------------------ ------------------- SEQUENCIA DE INSTRUÇÕES TIPOS DE INSTRUÇÕES MOVIMENTAÇÃO

ARQUITETURA DE COMPUTADORES

EXERCICIO 11 CONTINUAÇÃO

ADD CL,1

CL =

MOV AL,CL

AL =

MUL DL

AL =

MOVDL,AL

DL =

XX-2X-4X-6X-8X-10X-12X-14X-16X-18X-20X-22X-24

LIFO

SP =

POP AX

POP CX

CL =

RET

Page 44: ARQUITETURA DE COMPUTADORES SOFTWARE PROGRAMA ------------------- ------------------ ------------------- SEQUENCIA DE INSTRUÇÕES TIPOS DE INSTRUÇÕES MOVIMENTAÇÃO

ARQUITETURA DE COMPUTADORES

EXERCICIO 11 CONTINUAÇÃO

ADD CL,1

CL =

MOV AL,CL

AL =

MUL DL

AL =

MOVDL,AL

DL =

XX-2X-4X-6X-8X-10X-12X-14X-16X-18X-20X-22X-24

LIFO

SP =

POP AX

POP CX

CL =

RET