Assembly x86/Registos: diferenças entre revisões

[edição não verificada][edição não verificada]
Conteúdo apagado Conteúdo adicionado
Sem resumo de edição
Sem resumo de edição
Linha 52:
| 7 || 6 || 5 || 4 || 3 || 2 || 1 || 0
|- style="background-color: #777777; color: white;"
| 0 || NT || colspan=2 | '''IOPL''' || OF || DF || IF || TF
| SF || ZF || 0 || AF || 0 || PF || 1 || CF
|}
 
Ao carregar um novo valor no EFLAGS, os bits que aparecem no esquema como 1 ou 0 devem ser carregados como tal, de modo a preservar a compatibilidade do software com gerações futuras da arquitectura.
 
Note-se que utilizar um método convencional para aceder a este registo produz um erro do montador (''assembler''), uma vez que o x86 não fornece nenhuma forma de aceder directamente ao registo das flags. Para modificar ou ler o eflags é necessário utilizar a instrução pushf (16 bits) ou pushaf (32 bits).
 
== O Apontador de Execução ==
O Apontador de execução, ou Instruction Pointer (genericamente conhecido na ciência da computação por Program Counter), do x86 é um registo interno que aponta para a '''próxima''' instrução a ser executada.
 
Como sempre, oO seu nome é EIP e a parte que contem os 16 bits menos significativos denomina-se IP. Note-seTal quecomo no caso do registo das flags, não é possível utilizar um método convencional para aceder aao esteApontador registode produzExecução. umEle errotem dode montadorser (''assembler''),introduzido umano vezstack quepor o x86 não fornece nenhuma formameio de acederuma directamenteinstrução aocall Apontadorou de Execuçãosemelhante.
 
[[Categoria:Assembly de x86|Registos]]