发布于 2005-03-03 17:06:47
0楼
在S7-300中只有双字循环移位,下面我写了个字节循环移位的FC(字移位的类似):
function fc100:void
var_input
in:byte; //要循环移位的源数据
n:int; //要移动的位数,正为左移,负为右移
end_var
var_output
out:byte; //结果保存
end_var
var_temp
tmp0:byte;
tmp1:int;
end_var
begin
l in;
t tmp0;
l n;
l 0;
==i;
jc exit;
jp left;
l n;
negi;
_001:t tmp1;
l tmp0;
srd 1;
t tmp0;
a <>0;
S L0.7;
l tmp1;
loop _001;
ju exit;
left:l n;
_002:t tmp1;
l tmp0;
push;
cad;
od;
sld 1;
t tmp0;
a <>0;
s L0.0;
l tmp1;
loop _002;
exit:l tmp0;
t out;
set;
save;
clr;
beu;
end_function
I can do it