Gabarito Listas P2

Propaganda
Lista 2.1
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!!!
Download