Notas de Aula - MAC 211 - Laborat�rio de Programa��o
Aula anterior (aula 7)
Aula 8 - 19/3/9
Segmenta��o de mem�ria
- No 80x86, com registradores de 16 bits, os ponteiros podem apontar para apenas 64KB de mem�ria.
- Para
permitir um endere�amento de mais mem�ria, a Intel resolveu esse
problema usando segmentos de mem�ria e registradores de segmentos.
- CS aponta para o segmento de c�digo
- DS para o segmento de dados
- SS para o segmento da pilha
- ES
� um registrador de segmento extra para manipular registradores de
segmento ou apontar para outro lugar de interesse do programador
- A mem�ria tinha tamanho m�ximo de 2^20, ou seja 16MB.
- Cada segmento � espa�ado de 16bytes.
- O endere�o f�sico real portanto � calculado atrav�s da seguinte forma:
- 16 * seletor + deslocamento
- Pode-se usar o formato completo seletor:deslocamento em v�rios comandos, por exemplo:
- MOV AX, [ES:DI]
- se o seletor n�o � especificado, um padr�o � assumido (p.ex. DS para dados, CS para c�digo e SS para pilha)
- A partir do 80386, os registradores passaram a ter 32 bits
- isso permite o endere�amento de at� 4 gigabytes, que passou a ser o tamanho de cada segmento.
- com segmentos t�o grandes, a necessidade de usar os registradores de segmentos explicitamente passou a ser menor.
Vamos ler um pouco de c�digo
-
Um uso peculiar de subrotinas: um programa eficiente para impress�o de
valores hexadecimais
-
Um programa recursivo em linguagem de montagem para resolver o problema
das torres de Hanoi
- explica��o do algoritmo utilizado e apar�ncia da pilha na recurs�o
- apresenta��o do c�digo de hanoi.s
e implementa��o do algoritmo.
- li��o de casa: montar e executar o printreg e o hanoi
Pr�xima aula (aula 9)
P�gina de MAC211
P�gina do Fabio
P�gina do DCC