|
@@ -30,53 +30,90 @@ begin
|
|
writeln('cmpbyte error 2 for (',i,',',j,',',k,')');
|
|
writeln('cmpbyte error 2 for (',i,',',j,',',k,')');
|
|
halt(2);
|
|
halt(2);
|
|
end;
|
|
end;
|
|
|
|
+ if comparebyte(b[k+4],a[j],i+1)>0 then
|
|
|
|
+ begin
|
|
|
|
+ writeln(b[k+4+i],' ',a[j+i]);
|
|
|
|
+ writeln('cmpbyte error 3 for (',i,',',j,',',k,')');
|
|
|
|
+ halt(3);
|
|
|
|
+ end;
|
|
|
|
|
|
if (i and 1 = 0) then
|
|
if (i and 1 = 0) then
|
|
begin
|
|
begin
|
|
if compareword(a[j],b[k+4],i shr 1)<>0 then
|
|
if compareword(a[j],b[k+4],i shr 1)<>0 then
|
|
begin
|
|
begin
|
|
- writeln('cmpword error 3 for (',i,',',j,',',k,')');
|
|
|
|
- halt(3);
|
|
|
|
|
|
+ writeln('cmpword error 4 for (',i,',',j,',',k,')');
|
|
|
|
+ halt(4);
|
|
end;
|
|
end;
|
|
if compareword(a[j],b[k+4],i shr 1 + 1)<0 then
|
|
if compareword(a[j],b[k+4],i shr 1 + 1)<0 then
|
|
begin
|
|
begin
|
|
- writeln('cmpword error 4 for (',i,',',j,',',k,')');
|
|
|
|
- halt(4);
|
|
|
|
|
|
+ writeln('cmpword error 5 for (',i,',',j,',',k,')');
|
|
|
|
+ halt(5);
|
|
|
|
+ end;
|
|
|
|
+ if compareword(b[k+4],a[j],i shr 1 + 1)>0 then
|
|
|
|
+ begin
|
|
|
|
+ writeln('cmpword error 6 for (',i,',',j,',',k,')');
|
|
|
|
+ halt(6);
|
|
end;
|
|
end;
|
|
end
|
|
end
|
|
else
|
|
else
|
|
- if compareword(a[j],b[k+4],(i+1) shr 1)<0 then
|
|
|
|
- begin
|
|
|
|
- writeln('cmpword error 5 for (',i,',',j,',',k,')');
|
|
|
|
- halt(5);
|
|
|
|
- end;
|
|
|
|
|
|
+ begin
|
|
|
|
+ if compareword(a[j],b[k+4],(i+1) shr 1)<0 then
|
|
|
|
+ begin
|
|
|
|
+ writeln('cmpword error 7 for (',i,',',j,',',k,')');
|
|
|
|
+ halt(7);
|
|
|
|
+ end;
|
|
|
|
+ if compareword(b[k+4],a[j],(i+1) shr 1)>0 then
|
|
|
|
+ begin
|
|
|
|
+ writeln('cmpword error 8 for (',i,',',j,',',k,')');
|
|
|
|
+ halt(8);
|
|
|
|
+ end;
|
|
|
|
+ end;
|
|
|
|
|
|
if (i and 3 = 0) then
|
|
if (i and 3 = 0) then
|
|
begin
|
|
begin
|
|
if comparedword(a[j],b[k+4],i shr 2)<>0 then
|
|
if comparedword(a[j],b[k+4],i shr 2)<>0 then
|
|
begin
|
|
begin
|
|
- writeln('cmpdword error 6 for (',i,',',j,',',k,')');
|
|
|
|
- halt(6);
|
|
|
|
|
|
+ writeln('cmpdword error 9 for (',i,',',j,',',k,')');
|
|
|
|
+ halt(9);
|
|
end;
|
|
end;
|
|
if comparedword(a[j],b[k+4],i shr 2 + 1)<=0 then
|
|
if comparedword(a[j],b[k+4],i shr 2 + 1)<=0 then
|
|
begin
|
|
begin
|
|
writeln(comparedword(a[j],b[k+4],i shr 2+1));
|
|
writeln(comparedword(a[j],b[k+4],i shr 2+1));
|
|
- writeln(pdword(@a[j])^,' ',pdword(@b[k+4])^);
|
|
|
|
- writeln(pdword(@a[j+i])^,' ',pdword(@b[k+4+i])^);
|
|
|
|
- writeln(pdword(@a[j+i+4])^,' ',pdword(@b[k+4+i+4])^);
|
|
|
|
- writeln('cmpdword error 7 for (',i,',',j,',',k,')');
|
|
|
|
- halt(7);
|
|
|
|
|
|
+ writeln(unaligned(pdword(@a[j])^),' ',unaligned(pdword(@b[k+4])^));
|
|
|
|
+ writeln(unaligned(pdword(@a[j+i])^),' ',unaligned(pdword(@b[k+4+i])^));
|
|
|
|
+ writeln(unaligned(pdword(@a[j+i+4])^),' ',unaligned(pdword(@b[k+4+i+4])^));
|
|
|
|
+ writeln('cmpdword error 10 for (',i,',',j,',',k,')');
|
|
|
|
+ halt(10);
|
|
|
|
+ end;
|
|
|
|
+ if comparedword(b[k+4],a[j],i shr 2 + 1)>=0 then
|
|
|
|
+ begin
|
|
|
|
+ writeln(comparedword(b[k+4],a[j],i shr 2+1));
|
|
|
|
+ writeln(unaligned(pdword(@b[k+4])^),' ',unaligned(pdword(@a[j])^));
|
|
|
|
+ writeln(unaligned(pdword(@b[k+4+i])^),' ',unaligned(pdword(@a[j+i])^));
|
|
|
|
+ writeln(unaligned(pdword(@b[k+4+i+4])^),' ',unaligned(pdword(@a[j+i+4])^));
|
|
|
|
+ writeln('cmpdword error 11 for (',i,',',j,',',k,')');
|
|
|
|
+ halt(11);
|
|
end;
|
|
end;
|
|
end
|
|
end
|
|
else
|
|
else
|
|
- if comparedword(a[j],b[k+4],(i+3) shr 2)<0 then
|
|
|
|
- begin
|
|
|
|
- writeln(comparedword(a[j],b[k+4],(i+3) shr 2));
|
|
|
|
- writeln(pdword(@a[j])^,' ',pdword(@b[k+4])^);
|
|
|
|
- writeln(pdword(@a[j+(i+3) shr 2-1])^,' ',pdword(@b[k+4+(i+3) shr 2-1])^);
|
|
|
|
- writeln('cmpdword error 8 for (',i,',',j,',',k,')');
|
|
|
|
- halt(8);
|
|
|
|
- end;
|
|
|
|
|
|
+ begin
|
|
|
|
+ if comparedword(a[j],b[k+4],(i+3) shr 2)<0 then
|
|
|
|
+ begin
|
|
|
|
+ writeln(comparedword(a[j],b[k+4],(i+3) shr 2));
|
|
|
|
+ writeln(unaligned(pdword(@a[j])^),' ',unaligned(pdword(@b[k+4])^));
|
|
|
|
+ writeln(unaligned(pdword(@a[j+(i+3) shr 2-1])^),' ',unaligned(pdword(@b[k+4+(i+3) shr 2-1])^));
|
|
|
|
+ writeln('cmpdword error 12 for (',i,',',j,',',k,')');
|
|
|
|
+ halt(12);
|
|
|
|
+ end;
|
|
|
|
+ if comparedword(b[k+4],a[j],(i+3) shr 2)>0 then
|
|
|
|
+ begin
|
|
|
|
+ writeln(comparedword(b[k+4],a[j],(i+3) shr 2));
|
|
|
|
+ writeln(unaligned(pdword(@b[k+4])^),' ',unaligned(pdword(@a[j])^));
|
|
|
|
+ writeln(unaligned(pdword(@b[k+4+(i+3) shr 2-1])^),' ',unaligned(pdword(@a[j+(i+3) shr 2-1])^));
|
|
|
|
+ writeln('cmpdword error 13 for (',i,',',j,',',k,')');
|
|
|
|
+ halt(13);
|
|
|
|
+ end;
|
|
|
|
+ end;
|
|
end;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
|