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);
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);