Re: instrução halt
- Subject: Re: instrução halt
- From: Bruno Takahashi C de Oliveira <btco@linux.ime.usp.br>
- Date: Thu, 3 Jul 2003 11:53:49 -0300
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>