Re: instrução halt
[Prévia] [Próxima] [Prévia por assunto] [Próxima por assunto]
[Índice cronológico] [Índice de assunto]

Re: instrução halt



Leonidas O Brandao writes:
> É isso mesmo, este é o truque mais "limpo" para fazer isso e a razão é a
> seguinte: 
> 
>  a instrução "AC <- cEE" é a tradução de algum comando "var <- expr", e
>  como as instruções ocupam os end. de memória mais baixo (no nosso modelo
>  de comp.) => é impossível sobrar a posição de memória 00 p/ ser usada por
>  alguma variável ! 
> 

não seria mais limpo que a instrução halt fosse uma instrução negativa?
Por exemplo, -1? Assim deixava possível a instrução AC <- c00

Digo isso pq estava experimentando escrever diversos programas
diretamente em "código de máquina", para calcular números de fibonacci,
raízes quadradas, etc. Como a máquina não tem instruções para carregar
valores literais no acumulador, uma maneira que encontrei para carregar
o valor literal 1 no acumulador foi:
    AC <- c00
    AC <- cAC / c00
E isso naturalmente não funcionou (sim, no programa em questão c00 != 0)

Também estava escrevendo alguns programas auto-modificantes, isto é,
o programa modifica as próprias instruções, para conseguir coisas como
indireção de ponteiros. Nesses casos também é muito conveniente poder
ler (e modificar) o quê está na posição 00!

Mas tem razão, do ponto de vista de programas compilados não faz sentido
uma instrução como AC <- c00.

> Notem que sugeri: alocar memória dos endereços mais "alto" primeiro.
> 
> OK ?
> 
> []s
> Leônidas
> 
>  --------------------------------------------------------------------------
>  Leônidas de Oliveira Brandão  -  Computer Science Dep. of IME-USP (Brazil)
>  leo@ime.usp.br - http://www.ime.usp.br/~leo - +55 (011) 3091 [6298 | 6135] 
>  Interessado em Matemática?  Visite o "iMatica":   http://www.matematica.br
> 
 Bruno Takahashi C de Oliveira   <btco@linux.ime.usp.br>