Автор: Andy
« : 23 Января 2013, 00:55:43 » Чувствуется программистская смекалка
Mirror:
For I = 1 To 4
Cik = 9 - I
Swap Weekly(i) , Weekly(cik)
Next I
Return
Dim N As Byte
Dim K As Byte
Dim Cik As Byte
Dim Weekly( As Byte
Mirror:
Cik = 8
For J = 1 To 4
K = Weekly(j)
Weekly(j) = Weekly(cik)
Weekly(cik) = K
Decr Cik
Next
Return
Mirror:
push r31
For J = 0 To 7
Nm = A_week.j
ldi r31,{Nm}
push r31
Next
For J = 0 To 7
pop r31
sts {Nm} ,r31
A_week.j = Nm
Next
pop r31
Return
Y = Rev[X]
function Rev(B:Byte):Byte;
var
i: Integer;
begin
Result := 0;
for i := 0 to 7 do
Result := Result or (((B and (1 shl i)) shr i) shl (7-i));
end;
// ---------------------------
Y := Rev(X);
$regfile = "m48def.dat"
$crystal = 4000000
$baud = 19200
Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
Dim X As Byte
Dim Y As Byte
Dim I As Byte
Dim Ix As Byte
Dim K As Byte
X = 77 \'будет 178
Gosub Rev
Print Y
End
Rev:
Y = 0
For I = 0 To 7
K = 1
Shift K , Left , I
K = K And X
Shift K , Right , I
Ix = 7 - I
Shift K , Left , Ix
Y = Y Or K
Next I
Return