ah temp arquitetura de computadores linguagem c x linguagem assembly condiÇÃo inicial...
TRANSCRIPT
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
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
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
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
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.
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
ARQUITETURA DE COMPUTADORES
FLAGS DE STATUS
ALU
C
O
A
Z
S
P
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
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
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
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
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
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]
ARQUITETURA DE COMPUTADORES
DEBUG – DEPURADOR SIMPLES
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
ARQUITETURA DE COMPUTADORES
DEBUG – DEPURADOR SIMPLES
COMANDO R
ARQUITETURA DE COMPUTADORES
DEBUG – DEPURADOR SIMPLES
COMANDO A
ARQUITETURA DE COMPUTADORES
DEBUG – DEPURADOR SIMPLES
COMANDO D
ARQUITETURA DE COMPUTADORES
DEBUG – DEPURADOR SIMPLES
COMANDO U
ARQUITETURA DE COMPUTADORES
DEBUG – DEPURADOR SIMPLES
COMANDO E
ARQUITETURA DE COMPUTADORES
DEBUG – DEPURADOR SIMPLES
COMANDO T
ARQUITETURA DE COMPUTADORES
DEBUG – DEPURADOR SIMPLES
COMANDO G
ARQUITETURA DE COMPUTADORES
INSTRUÇÕES
ANEXO-1
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.
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.
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
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
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
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
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
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.
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
.......