Você está na página 1de 8

Lista 2.

1) A)DS=AAH=10101|0|10 ->

Offset=50H, mas não serve de nada nesse exercício.

Do DS, tiramos o bit Ti=0, logo a tabela usada será a GDT

B)DS=F7H=11110|1|11 ->LDT

Offset=100H, mas não serve de nada nesse exercício.

Do DS, tiramos o bit Ti=1, logo a tabela usada será a LDT

2) Como é o endereço 30 e a tabela é a LDT, um possível DS é:

DS=0000000011110 | 1 | 00

Onde os primeiros 13 bits seriam o endereço 30 e o bit Ti=1

(Apenas o nível de privilegio poderia ser diferente)

Offset= AFH

Do desenho tiramos:

00011111=1FH

00011000=18H

Base=1F180000H

Endereço Físico=Base+Offset=1F1800AFH

Não existe falha, pois Offset< Limite (Limite=00000000000011111111=FFH) e


RPL<DPL

3) Offset=AFH

Endereço Linear=Base+Offset=100055AAH

Base=100055AAH-AFH

Base=100054FBH
A base deveria ser igual a que foi calculada.

4) Nesse caso, RPL>DPL e assim seria negado o acesso ao descritor de segmento.

5) Do enunciado, tiramos que :

Para a instrução dada, Offset=EBP=ABH

E que o valor de do endereço físico é C8H. Como esse sistema usa apenas
segmentação, o endereço físico será igual ao linear, logo:

Base+Offset=C8H

Base+ABH=C8H

Os valores de AX e DS foram dados no enunciado, mas não são necessários para a


construção do Segmento. Os dados importantes para segmento são:

Base=1DH

Do enunciado tiramos que Limite=B0H

Para o DPL, seria ideal criar com privilegio baixo possivel(11) para garantir que será
lido independente do RPL.

Lista 2.2

1)

· Busca da 1ª instrução:

CS=8=1| 0 |00 àEndereço 1 da GDT

Offset<Lim? àOk

Endereço Fisico = Base+Offset(EIP)=2000H+200H=2200H

Atualiza EIP: EIP=EIP+5

EAX=500H

· Busca da 2ª instrução:
Endereço Fisico = Base+Offset(EIP)=2000H+205H=2205H

Offset<Lim? àOk

Atualiza EIP: EIP=EIP+5

EBX=100H

· Busca da 3ª instrução:

Endereço Fisico = Base+Offset(EIP)=2000H+20AH=220AH

Offset<Lim? àOk

Atualiza EIP: EIP=EIP+1

· Acesso a Memória para a instrução 3:

DS=20=10|1|00 à Endereço 2 da LDT

Offset<Lim? àOk

Endereço Fisico = Base+Offset(EBX)=3100+100H=3200H

· Busca da 4ª instrução:

Endereço Fisico = Base+Offset(EIP)=2000H+20BH=220BH

Offset<Lim? àOk

Atualiza EIP: EIP=EIP+1

Atualiza EBX: EBX=EBX+EAX

· Busca da 5ª instrução:

Endereço Fisico = Base+Offset(EIP)=2000H+20CH=220CH

Offset<Lim? àOk

Atualiza EIP: EIP=EIP+1

· Acesso a Memória para a instrução 5:

DS=20=10|1|00 à Endereço 2 da LDT

Offset(EBX)<Lim? àNão à Falha!!!


2)

· Busca da 1ª instrução:

CS=8=1| 0 |00 àEndereço 1 da GDT

Offset<Lim? àOk

Endereço Linear = Base+Offset(EIP)=2000H+200H=2200H

Atualiza EIP: EIP=EIP+5

EAX=500H

·
Busca da 2ª instrução:

Endereço Linear = Base+Offset(EIP)=2000H+205H=2205H

Offset<Lim? àOk

Atualiza EIP: EIP=EIP+5

EBX=100H
· Busca da 3ª instrução:

Endereço Linear = Base+Offset(EIP)=2000H+20AH=220AH

Offset<Lim? àOk

Atualiza EIP: EIP=EIP+1

·
Acesso a Memória para a instrução 3:
DS=20=10|1|00 à Endereço 2 da LDT

Offset<Lim? àOk

Endereço Linear = Base+Offset(EBX)=3100+100H=3200H

· Busca da 4ª instrução:

Endereço Linear = Base+Offset(EIP)=2000H+20BH=220BH

Offset<Lim? àOk

Atualiza EIP: EIP=EIP+1

Atualiza EBX: EBX=EBX+EAX


· Busca da 5ª instrução:

Endereço Linear = Base+Offset(EIP)=2000H+20CH=220CH

Offset<Lim? àOk

Atualiza EIP: EIP=EIP+1


· Acesso a Memória para a instrução 5:

DS=20=10|1|00 à Endereço 2 da LDT

Offset(EBX)<Lim? àNão à Falha!!!