Organização da Memória
Todos os bytes da memória são numerados de
Zero até a posição do último byte
O processador 8088 trabalha com palavras de 16
bits, ou seja, o valor máximo que o processador
pode indicar 65536 (216).
PERGUNTA
Como pode o processador fazer
referência a uma posição de memória
maior que 65535 ? Por exemplo 88.001
Organização da Memória
RESPOSTA:
1 - O 8088 divide a memória em conjuntos de bytes chamados
SEGMENTOS
2 – Cada SEGMENTO possui 65536 bytes (64K)
3 - O 8888 utiliza dois registradores para acessar a uma posição
de memória
- O primeira indica o segmento
- O segundo indica o deslocamento (offset) dentro do
segmento.
4 – Cada segmento inicia sempre em um byte com endereço
múltiplo de 16 bytes
5 – Pode ocorrer uma sobreposição de segmentos
Segmentação de Memória
Um endereço de Memória é representado como
SEGMENTO:DESLOCAMENTO
Ex. 5:3
O endereço físico é calculado: Número do Segmento * 16 +
deslocamento - 5 * 16 + 3 = 83, onde 83 é o endereço físico referenciado.
Segmentação de Memória
ENDEREÇO DE MEMÓRIA ONDE INICIA UM SEGMENTO É
OBTIDO DA SEGUINTE FORMA:
Número do Segmento * 16
Exemplo: 5 * 16 = 80
Segmentação de Memória
O endereço físico 83 também pode ser obtido das seguintes formas:
0:83 - 0 * 16 + 83 = 83
2:51 - 2 * 16 + 51 = 83
4:19 - 4 * 16 + 19 = 83
Organização da Memória
-d 0d62:0030
0D62:0030 06 00 02 00 00 00 24 00-62 6F 6D 20 64 69 61 20 ......$.bom dia
0D62:0040 62 72 61 73 69 6C 0A 0C-0D 24 72 20 61 20 63 6F brasil...$r a co
0D62:0050 6E 66 69 67 75 72 61 87-C6 6F 20 61 74 75 61 6C nfigura..o atual
0D62:0060 20 64 65 20 42 52 45 41-4B 2E 0D 0A 45 45 78 69 de BREAK...EExi
0D62:0070 62 65 20 6F 75 20 64 65-66 69 6E 65 20 6F 20 6E be ou define o n
0D62:0080 A3 6D 65 72 6F 20 64 61-20 70 A0 67 69 6E 61 20 .mero da p.gina
0D62:0090 64 65 20 63 A2 64 69 67-6F 20 61 74 69 76 61 2E de c.digo ativa.
0D62:00A0 0D 0A 0D 0A 43 48 43 50-20 5B 6E 6E 6E 5D 0D 0A ....CHCP [nnn]..
-d 0d65:0000
0D65:0000 06 00 02 00 00 00 24 00-62 6F 6D 20 64 69 61 20 ......$.bom dia
0D65:0010 62 72 61 73 69 6C 0A 0C-0D 24 72 20 61 20 63 6F brasil...$r a co
0D65:0020 6E 66 69 67 75 72 61 87-C6 6F 20 61 74 75 61 6C nfigura..o atual
0D65:0030 20 64 65 20 42 52 45 41-4B 2E 0D 0A 45 45 78 69 de BREAK...EExi
0D65:0040 62 65 20 6F 75 20 64 65-66 69 6E 65 20 6F 20 6E be ou define o n
0D65:0050 A3 6D 65 72 6F 20 64 61-20 70 A0 67 69 6E 61 20 .mero da p.gina
0D65:0060 64 65 20 63 A2 64 69 67-6F 20 61 74 69 76 61 2E de c.digo ativa.
0D65:0070 0D 0A 0D 0A 43 48 43 50-20 5B 6E 6E 6E 5D 0D 0A ....CHCP [nnn]..
Organização da memória
Os registradores CS, DS, ES e SS são utilizados para identificar os
segmentos
Os registradores IP, SP, BP, SI e DI indicam o deslocamento (offset)
dentro do segmento
O deslocamento inicia sempre em ZERO e vai até 65535.
Segmentação de Memória
SEGMENTO INÍCIO FIM
0
1
2
3
4
0
16
32
48
64
65535
65551
65567
65583
65599
Segmentação de Memória
PILHA - 100 BYTES
CÓDIGO - 352.830 BYTES
DADOS - 30.000
O ponto de carga do programa na memória depende do SO.
Vetor de Interrupção
Memória
O próximo Slide refere-se ao exerc04.asm compilado
Mapa de Memória
0D62:0000 B8650D
MOV AX,0D65
0D62:0003 8ED8
MOV DS,AX
0D62:0005 A10000
MOV AX,[0000]
0D62:0008 A10200
MOV AX,[0002]
0D62:000B A30400
MOV [0004],AX
0D62:000E 8306040030 ADD WORD PTR [0004],+30
0D62:0013 BA0400
MOV DX,0004
0D62:0016 B409
MOV AH,09
0D62:0018 CD21
INT 21
0D62:001A E80500
CALL 0022
0D62:001D B8004C
MOV AX,4C00
0D62:0020 CD21
0D62:0022 B406
0D62:0024 33C9
0D62:0026 BA4F18
0D62:0029 B000
0D62:002B B707
0D62:002D CD10
0D62:002F C3
INT 21
MOV AH,06
XOR CX,CX
MOV DX,184F
MOV AL,00
MOV BH,07
INT 10
RET
Download

gerenc_memoria