PDA

View Full Version : RAM: Random Access Machine


gokan
17-06-2004, 18:21
Salve ragazzi, sto studiando qualcosa su questa sorta di assembler, volevo qualche informazione su come implementare un ciclo for in questo linguaggio.
Ad esempio, supponiamo che io voglia calcolare x=2^(2^n).Ho capito, come funziona il ciclo while,scritto in pseudo-codice diventa:

read (n)
x=2;
while n>0 do
begin
x=x*x;
n=n-1;
end;
write(x);

In linguaggio RAM:

//R1=n ed R2=x

READ R1
LOAD =2
STORE R2
LOAD R1
while: JZERO endwhile
LOAD R2
MULT R2
LOAD R1
SUB =1
STORE R1
JUMP while
endwhile:WRITE R2
HALT


Adesso vorrei scrivere lo stesso codice usando il for,mi date una mano?

read (n)
x=2;
for i=1 to n do
begin
x=x*x;
end;
write(x);

gokan
18-06-2004, 18:17
Ho risolto, grazie lo stesso per le visite :sofico: