ah temp arquitetura de computadores linguagem c x linguagem assembly condiÇÃo inicial...

32
AH TEMP ARQUITETURA DE COMPUTADORES LINGUAGEM C X LINGUAGEM ASSEMBLY CONDIÇÃO INICIAL BH BL CH CL DH DL SP X DI BASE DE X VOID STRCPY( CHAR X[ ], CHAR Y[ ]) { INT I; I=0; WHILE (X[I] = Y[I] != 0) I = I + 1; } C COPIA DE STRING STRCPY: PUSH AX SUB AL,AL VOLTA: MOV AH,[SI] CMP AH,AL JP Z FIM MOVS JMP VOLTA FIM: POP AX RET AL TEMP1 SI BASE DE Y A [DI] <- [SI] DI <- DI + 1 SI <- SI + 1

Upload: internet

Post on 17-Apr-2015

106 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: AH TEMP ARQUITETURA DE COMPUTADORES LINGUAGEM C X LINGUAGEM ASSEMBLY CONDIÇÃO INICIAL BHBLCHCLDHDLSP X DI BASE DE X VOID STRCPY( CHAR X[ ], CHAR Y[ ])

AHTEMP

ARQUITETURA DE COMPUTADORES

LINGUAGEM C X LINGUAGEM ASSEMBLY

CONDIÇÃO INICIAL

BH BL CH CL DH DL SPX

DIBASE DE X

VOID STRCPY( CHAR X[ ], CHAR Y[ ])

{

INT I;

I=0;

WHILE (X[I] = Y[I] != 0)

I = I + 1;

}

C

COPIA DE STRING

STRCPY:

PUSH AX

SUB AL,AL

VOLTA:

MOV AH,[SI]

CMP AH,AL

JP Z FIM

MOVS

JMP VOLTA

FIM:

POP AX

RET

ALTEMP1

SIBASE DE YA

[DI] <- [SI]DI <- DI + 1SI <- SI + 1

Page 2: AH TEMP ARQUITETURA DE COMPUTADORES LINGUAGEM C X LINGUAGEM ASSEMBLY CONDIÇÃO INICIAL BHBLCHCLDHDLSP X DI BASE DE X VOID STRCPY( CHAR X[ ], CHAR Y[ ])

ARQUITETURA DE COMPUTADORES

EXERCICIO 12

1. “COMPILE” USANDO APENAS UMA INSTRUÇÃO DE DESVIO

AXJ

CONDIÇÃO INICIAL

BXBASE DO VETOR

CHTEMP

CL DH DLK

SP DISII

WHILE (SAVE[I] = = K)

I = I + J;

C

A

Page 3: AH TEMP ARQUITETURA DE COMPUTADORES LINGUAGEM C X LINGUAGEM ASSEMBLY CONDIÇÃO INICIAL BHBLCHCLDHDLSP X DI BASE DE X VOID STRCPY( CHAR X[ ], CHAR Y[ ])

ARQUITETURA DE COMPUTADORES

EXERCICIO 12 – CONTINUAÇÃO

1. “COMPILE” A FUNÇÃO

AH

CONDIÇÃO INICIAL

BXBASE DO VETOR

CH CL DH DL SP DIK

SI

SWAP ( INT V[ ], INT K )

{

INT TEMP;

TEMP = V[K]

V[K] = V[K +1]

V[K+1] = TEMP;

}

C

A

AL

Page 4: AH TEMP ARQUITETURA DE COMPUTADORES LINGUAGEM C X LINGUAGEM ASSEMBLY CONDIÇÃO INICIAL BHBLCHCLDHDLSP X DI BASE DE X VOID STRCPY( CHAR X[ ], CHAR Y[ ])

ARQUITETURA DE COMPUTADORES

EXERCICIO 12 – CONTINUAÇÃO

1. “COMPILE” A FUNÇÃO

AH

CONDIÇÃO INICIAL

BXBASE DO VETOR

CXN

DH DL SP DIJ

SII

SORT ( INT V[ ], INT N )

{

INT I,J;

FOR (I = 0; I < N; I = I +1)

{

FOR ( J = I –1, J 0 && V[J] > V[J+1], J = J-1)

{

SWAP (V,J)

}

}

}

C

A

ALTEMP

Page 5: AH TEMP ARQUITETURA DE COMPUTADORES LINGUAGEM C X LINGUAGEM ASSEMBLY CONDIÇÃO INICIAL BHBLCHCLDHDLSP X DI BASE DE X VOID STRCPY( CHAR X[ ], CHAR Y[ ])

ARQUITETURA DE COMPUTADORES

CPU ACESSANDO INSTRUÇÕES E DADOS

ESPAÇO ENDEREÇAVEL1 M BYTES

SEGMENTO DE 64K BYTES

END. INICIAL DO SEGMENTO

TIPOS DE SEGMENTOS

CODIGO DADOSPILHA EXTRA DE DADOS

OBS: OS SEGMENTOS PODEM SER SUPERPOSTOS , OU NÃO.

Page 6: AH TEMP ARQUITETURA DE COMPUTADORES LINGUAGEM C X LINGUAGEM ASSEMBLY CONDIÇÃO INICIAL BHBLCHCLDHDLSP X DI BASE DE X VOID STRCPY( CHAR X[ ], CHAR Y[ ])

ARQUITETURA DE COMPUTADORES

CPU ACESSANDO INSTRUÇÕES E DADOS

CODIGO DADOSPILHA EXTRA DE DADOS

END. INICIAL DO SEGMENTO

CODIGO DADOSPILHA EXTRA DE DADOS

CS DSSS ESX 16 X 16 X 16 X 16

OFFSET NO SEGMENTO

IP SP

BP

DIBX

SI

DI

DESL

Page 7: AH TEMP ARQUITETURA DE COMPUTADORES LINGUAGEM C X LINGUAGEM ASSEMBLY CONDIÇÃO INICIAL BHBLCHCLDHDLSP X DI BASE DE X VOID STRCPY( CHAR X[ ], CHAR Y[ ])

ARQUITETURA DE COMPUTADORES

FLAGS DE STATUS

ALU

C

O

A

Z

S

P

Page 8: AH TEMP ARQUITETURA DE COMPUTADORES LINGUAGEM C X LINGUAGEM ASSEMBLY CONDIÇÃO INICIAL BHBLCHCLDHDLSP X DI BASE DE X VOID STRCPY( CHAR X[ ], CHAR Y[ ])

ARQUITETURA DE COMPUTADORES

REGISTRADORES VISIVEIS PELO PROGRAMADOR

AX

H L BX

H L CX

H L DX

H L

BP SP IP SI DI

CS DS SS ES

Page 9: AH TEMP ARQUITETURA DE COMPUTADORES LINGUAGEM C X LINGUAGEM ASSEMBLY CONDIÇÃO INICIAL BHBLCHCLDHDLSP X DI BASE DE X VOID STRCPY( CHAR X[ ], CHAR Y[ ])

ARQUITETURA DE COMPUTADORES

OUTROS FLAGS

D

I

T

DIREÇÃO

INTERRUPÇÃO

TRAP

D =0 MOVSB

D =1 MOVSB

[DI] <- [SI]DI <- DI + 1SI <- SI + 1

[DI] <- [SI]DI <- DI - 1SI <- SI - 1

Page 10: AH TEMP ARQUITETURA DE COMPUTADORES LINGUAGEM C X LINGUAGEM ASSEMBLY CONDIÇÃO INICIAL BHBLCHCLDHDLSP X DI BASE DE X VOID STRCPY( CHAR X[ ], CHAR Y[ ])

ARQUITETURA DE COMPUTADORES

FORMATO DAS INSTRUÇÕES

10 BYTE

20 BYTE

30 BYTE

40 BYTE

50 BYTE

60 BYTE

CODIGO DA INSTRUÇÃO

BYTE DE ENDEREÇAMENTO

DADO IMEDIATO (DIL)

DADO IMEDIATO (DIH)

END. IMEDIATO (EIL)

END. IMEDIATO (EIH)

DADO IMEDIATO (DIL)

DADO IMEDIATO (DIH)

ADD AL,CL MOV [BX][SI][043A] , 1209

Page 11: AH TEMP ARQUITETURA DE COMPUTADORES LINGUAGEM C X LINGUAGEM ASSEMBLY CONDIÇÃO INICIAL BHBLCHCLDHDLSP X DI BASE DE X VOID STRCPY( CHAR X[ ], CHAR Y[ ])

ARQUITETURA DE COMPUTADORES

FORMATO DAS INSTRUÇÕES

10 BYTE CODIGO DA INSTRUÇÃO

CODIGO | D | W TAMANHO DOS OPERANDOS

0 : BYTE

1 : WORDSENTIDO DA MOVIMENTAÇÃO

MOV AL, CL E MOV CL, AL

TEM O MESMO CODIGO E O MESMO W

POREM D DIFERENTES

Page 12: AH TEMP ARQUITETURA DE COMPUTADORES LINGUAGEM C X LINGUAGEM ASSEMBLY CONDIÇÃO INICIAL BHBLCHCLDHDLSP X DI BASE DE X VOID STRCPY( CHAR X[ ], CHAR Y[ ])

ARQUITETURA DE COMPUTADORES

FORMATO DAS INSTRUÇÕES

20 BYTE BYTE DE ENDEREÇAMENTO

MOD REG R/M

_ _ _ _ _ _ _ _

R/M

000

001

010

011

100

101

110

111

MOD 00

[BX][SI]

[BX][DI]

[BP][SI]

[BP][DI]

[SI]

[DI]

[EIH][EIL]

[BX]

MOD 01

[BX][SI][EIL]

[BX][DI][EIL]

[BP][SI][EIL]

[BP][DI][EIL]

[SI][EIL]

[DI][EIL]

[BP][EIL]

[BX][EIL]

MOD 10

[BX][SI][EIHEIL]

[BX][DI][EIHEIL]

[BP][SI][EIHEIL]

[BP][DI][EIHEIL]

[SI][EIHEIL]

[DI][EIHEIL]

[BP][EIHEIL]

[BX][EIHEIL]

MOD 11

W=0 W=1

AL AX

CL CX

DL DX

BL BX

AH SP

CH BP

DH SI

BH DI

REG

W=0 W=1

AL AX

CL CX

DL DX

BL BX

AH SP

CH BP

DH SI

BH DI

INSTR OP1, OP2

D=0 MOD E R/M DEFINEM OP1

D=1 MOD E R/M DEFINEM OP2

Page 13: AH TEMP ARQUITETURA DE COMPUTADORES LINGUAGEM C X LINGUAGEM ASSEMBLY CONDIÇÃO INICIAL BHBLCHCLDHDLSP X DI BASE DE X VOID STRCPY( CHAR X[ ], CHAR Y[ ])

ARQUITETURA DE COMPUTADORES

EXERCICIO 13

SABENDO QUE O CAMPO CODIGO DA INSTRUÇÃOMOV É 100010, QUAIS OS CODIGOS DE MAQUINA DAS INSTRUÇÕES ABAIXO?

MOV AL,BL MOV AX,BX MOV [BX][03],AL

MOV AL,[BX][089A]

Page 14: AH TEMP ARQUITETURA DE COMPUTADORES LINGUAGEM C X LINGUAGEM ASSEMBLY CONDIÇÃO INICIAL BHBLCHCLDHDLSP X DI BASE DE X VOID STRCPY( CHAR X[ ], CHAR Y[ ])

ARQUITETURA DE COMPUTADORES

DEBUG – DEPURADOR SIMPLES

Page 15: AH TEMP ARQUITETURA DE COMPUTADORES LINGUAGEM C X LINGUAGEM ASSEMBLY CONDIÇÃO INICIAL BHBLCHCLDHDLSP X DI BASE DE X VOID STRCPY( CHAR X[ ], CHAR Y[ ])

ARQUITETURA DE COMPUTADORES

DEBUG – DEPURADOR SIMPLES

COMANDOS

Q SAIR DO DEBUG

R EXIBIR E ALTERAR CONTEUDO DE REGISTRADOR

A INSERIR INSTRUÇÕES EM ASSEMBLY NA MEMORIA

D LISTAR END´s DE MEM. E RESPECTIVOS CONTEUDOS

U TRANSFORMA COD. DE MAQUINA EM ASSEMBLY

E ENTRADA DE INSTRUÇÕES OU DADOS EM HEXADECIMALT EXECUÇÃO PASSO A PASSO E EXIBIÇÃO DOS REG´s

G EXECUÇÃO ATÉ UM PONTO DE PARADA E EXIBIÇÃO

Page 16: AH TEMP ARQUITETURA DE COMPUTADORES LINGUAGEM C X LINGUAGEM ASSEMBLY CONDIÇÃO INICIAL BHBLCHCLDHDLSP X DI BASE DE X VOID STRCPY( CHAR X[ ], CHAR Y[ ])

ARQUITETURA DE COMPUTADORES

DEBUG – DEPURADOR SIMPLES

COMANDO R

Page 17: AH TEMP ARQUITETURA DE COMPUTADORES LINGUAGEM C X LINGUAGEM ASSEMBLY CONDIÇÃO INICIAL BHBLCHCLDHDLSP X DI BASE DE X VOID STRCPY( CHAR X[ ], CHAR Y[ ])

ARQUITETURA DE COMPUTADORES

DEBUG – DEPURADOR SIMPLES

COMANDO A

Page 18: AH TEMP ARQUITETURA DE COMPUTADORES LINGUAGEM C X LINGUAGEM ASSEMBLY CONDIÇÃO INICIAL BHBLCHCLDHDLSP X DI BASE DE X VOID STRCPY( CHAR X[ ], CHAR Y[ ])

ARQUITETURA DE COMPUTADORES

DEBUG – DEPURADOR SIMPLES

COMANDO D

Page 19: AH TEMP ARQUITETURA DE COMPUTADORES LINGUAGEM C X LINGUAGEM ASSEMBLY CONDIÇÃO INICIAL BHBLCHCLDHDLSP X DI BASE DE X VOID STRCPY( CHAR X[ ], CHAR Y[ ])

ARQUITETURA DE COMPUTADORES

DEBUG – DEPURADOR SIMPLES

COMANDO U

Page 20: AH TEMP ARQUITETURA DE COMPUTADORES LINGUAGEM C X LINGUAGEM ASSEMBLY CONDIÇÃO INICIAL BHBLCHCLDHDLSP X DI BASE DE X VOID STRCPY( CHAR X[ ], CHAR Y[ ])

ARQUITETURA DE COMPUTADORES

DEBUG – DEPURADOR SIMPLES

COMANDO E

Page 21: AH TEMP ARQUITETURA DE COMPUTADORES LINGUAGEM C X LINGUAGEM ASSEMBLY CONDIÇÃO INICIAL BHBLCHCLDHDLSP X DI BASE DE X VOID STRCPY( CHAR X[ ], CHAR Y[ ])

ARQUITETURA DE COMPUTADORES

DEBUG – DEPURADOR SIMPLES

COMANDO T

Page 22: AH TEMP ARQUITETURA DE COMPUTADORES LINGUAGEM C X LINGUAGEM ASSEMBLY CONDIÇÃO INICIAL BHBLCHCLDHDLSP X DI BASE DE X VOID STRCPY( CHAR X[ ], CHAR Y[ ])

ARQUITETURA DE COMPUTADORES

DEBUG – DEPURADOR SIMPLES

COMANDO G

Page 23: AH TEMP ARQUITETURA DE COMPUTADORES LINGUAGEM C X LINGUAGEM ASSEMBLY CONDIÇÃO INICIAL BHBLCHCLDHDLSP X DI BASE DE X VOID STRCPY( CHAR X[ ], CHAR Y[ ])

ARQUITETURA DE COMPUTADORES

INSTRUÇÕES

ANEXO-1

Page 24: AH TEMP ARQUITETURA DE COMPUTADORES LINGUAGEM C X LINGUAGEM ASSEMBLY CONDIÇÃO INICIAL BHBLCHCLDHDLSP X DI BASE DE X VOID STRCPY( CHAR X[ ], CHAR Y[ ])

ARQUITETURA DE COMPUTADORES

EXERCICIO 13

1. FAÇA UM PROGRAMA PARA SOMAR 2 NUMEROS DE 16 BITS, UM ARMAZENADO A PARTIR DO ENDEREÇO 0020:0A00 E OUTRO APARTIR DO ENDEREÇO 0040:0AE1.

2. FAÇA UM PROGRAMA PARA VERIFICAR SE O BIT 3 DO ENDEREÇO DE MEMORIA OOO4:5271 ESTÁ EM NIVEL 1 OU EM NIVEL 0

3. FAÇA UM PROGRAMA PARA SOMAR OS CONTEUDOS DOS ENDEREÇOS DE MEMORIA 0020:8012, 0020:8013, 0020:8014, 0020:8015, LEVANDO EM CONTA APENAS OS 8 BITS MENOS SIGNIFICATIVOS DA SOMA. O RESULTADO DEVE SER ARMAZENADO EM COMPLEMENTO A 2 NO ENDEREÇO 0020:8016.

Page 25: AH TEMP ARQUITETURA DE COMPUTADORES LINGUAGEM C X LINGUAGEM ASSEMBLY CONDIÇÃO INICIAL BHBLCHCLDHDLSP X DI BASE DE X VOID STRCPY( CHAR X[ ], CHAR Y[ ])

ARQUITETURA DE COMPUTADORES

EXERCICIO 13 – CONTINUAÇÃO

4. FAÇA UM PROGRAMA PARA MULTIPLICAR 2 NUMEROS SEM SINAL DE 8 BITS, UM ARMAZENADO A PARTIR DO ENDEREÇO 0140:CC00 E OUTRO APARTIR DO ENDEREÇO 0140:CD01. O RESULTADO DEVE SER ARMAZENADO NOS ENDEREÇOS 0140:CE01 E 0140:CE02.

O PROGRAMA DEVE USAR O ALGORITMO DE SOMAS SUCESSIVAS E O RESULTADO PARCIAL DEVE SER ARMAZENADO NOS ENDEREÇOS 0230:0401 E 0230:0402.

Page 26: AH TEMP ARQUITETURA DE COMPUTADORES LINGUAGEM C X LINGUAGEM ASSEMBLY CONDIÇÃO INICIAL BHBLCHCLDHDLSP X DI BASE DE X VOID STRCPY( CHAR X[ ], CHAR Y[ ])

AMBIENTE

ARQUITETURA DE COMPUTADORES

ENTRADA E SAIDA (E/S) (I/O)

DISPOSITIVOS DE ENTRADA E SAIDA POSSIBILITAM A COMUNICAÇÃO DA CPU COM O AMBIENTE

CPU

MEMORIA

ENTRADA ESAIDA

COMPUTADOR

Page 27: AH TEMP ARQUITETURA DE COMPUTADORES LINGUAGEM C X LINGUAGEM ASSEMBLY CONDIÇÃO INICIAL BHBLCHCLDHDLSP X DI BASE DE X VOID STRCPY( CHAR X[ ], CHAR Y[ ])

ARQUITETURA DE COMPUTADORES

ENTRADA E SAIDA (E/S) (I/O)

ENTRADA E SAIDA : CONTROLADOR DE E/S E DISPOSITIVO DE E/S

CPU

MEMORIA

ENTRADA E SAIDA

COMPUTADOR

AMBIENTE

CONTROLADORES DISPOSITIVOS

Page 28: AH TEMP ARQUITETURA DE COMPUTADORES LINGUAGEM C X LINGUAGEM ASSEMBLY CONDIÇÃO INICIAL BHBLCHCLDHDLSP X DI BASE DE X VOID STRCPY( CHAR X[ ], CHAR Y[ ])

ARQUITETURA DE COMPUTADORES

ENTRADA E SAIDA (E/S) (I/O)

CONTROLADOR DE E/S: INTERFACE COM A CPU

CPU

MEM

ENTRADA E SAIDA

COMPUTADOR

AMBIENTE

CONTROLADORES DISPOSITIVOSINTERFACEREG

REG

REG

Page 29: AH TEMP ARQUITETURA DE COMPUTADORES LINGUAGEM C X LINGUAGEM ASSEMBLY CONDIÇÃO INICIAL BHBLCHCLDHDLSP X DI BASE DE X VOID STRCPY( CHAR X[ ], CHAR Y[ ])

ARQUITETURA DE COMPUTADORES

ENTRADA E SAIDA (E/S) (I/O)

MODOS DE IMPLEMENTAR E/S 1. E/S MAPEADA COMO MEMORIA ENDEREÇO DE MEMORIA ATRIBUIDO A ENDEREÇO DE REGISTRADOR DA INTERFACE DO CONTROLADOR DE E/S COM A

CPU

CPU

MEM

ENTRADA E SAIDA

COMPUTADOR

AMBIENTE

CONTROLADORES DISPOSITIVOSINTERFACEREG

REG

REG

Page 30: AH TEMP ARQUITETURA DE COMPUTADORES LINGUAGEM C X LINGUAGEM ASSEMBLY CONDIÇÃO INICIAL BHBLCHCLDHDLSP X DI BASE DE X VOID STRCPY( CHAR X[ ], CHAR Y[ ])

INTERFACE E/S

ARQUITETURA DE COMPUTADORES

ENTRADA E SAIDA (E/S) (I/O)

MODOS DE IMPLEMENTAR E/S 1. E/S MAPEADA COMO MEMORIA IMPLEMENTAÇÃO

RD WR

CPU

RD WR

MEM

#CS

REGLD

BARRAMENTO DE DADOS

REG0E

BARRAMENTO DE ENDEREÇOSXXXXXH

COMPARADOR

AND

AND

Page 31: AH TEMP ARQUITETURA DE COMPUTADORES LINGUAGEM C X LINGUAGEM ASSEMBLY CONDIÇÃO INICIAL BHBLCHCLDHDLSP X DI BASE DE X VOID STRCPY( CHAR X[ ], CHAR Y[ ])

ARQUITETURA DE COMPUTADORES

EXERCICIO 14

“RETIRAR” O ENDEREÇO DE MEMORIA 0400:0002 PARA SELECIONAR UM CONJUNTO DE 8 LEDS E UM CONJUNTO DE 8 CHAVES QUE DEVEM SER CONECTADOS AO COMPUTADOR.

Page 32: AH TEMP ARQUITETURA DE COMPUTADORES LINGUAGEM C X LINGUAGEM ASSEMBLY CONDIÇÃO INICIAL BHBLCHCLDHDLSP X DI BASE DE X VOID STRCPY( CHAR X[ ], CHAR Y[ ])

INTERFACE E/S

ARQUITETURA DE COMPUTADORES

EXERCICIO 14 – SOLUÇÃO

RD WR

CPU

RD WR

MEM

#CS

REGLD

BARRAMENTO DE DADOS

3S0E

BARRAMENTO DE ENDEREÇOS04002H

COMPARADOR

AND

AND

INTERFACE E/S

DISPOSITIVOS E/S

VCC

.......

VCC

.......