X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fsoftware%2Fmatita%2Fcontribs%2Fassembly%2Fparser%2Ftest1.cm;fp=helm%2Fsoftware%2Fmatita%2Fcontribs%2Fassembly%2Fparser%2Ftest1.cm;h=a53a879501b838c4ed87026776c17bb3d0db03ac;hb=b7aefa8f362d07bf9042f6879252345e69da07c8;hp=0000000000000000000000000000000000000000;hpb=0d6f208ea4728aa106d9cf0965cec853551b0b02;p=helm.git diff --git a/helm/software/matita/contribs/assembly/parser/test1.cm b/helm/software/matita/contribs/assembly/parser/test1.cm new file mode 100644 index 000000000..a53a87950 --- /dev/null +++ b/helm/software/matita/contribs/assembly/parser/test1.cm @@ -0,0 +1,42 @@ +#define u1 struct { byte; word; } +#define u2 struct { word; byte; } +#define u3 struct { array[2] of u1; array[3] of u2; } +#define u4 struct { array[3] of u1; array[2] of u2; } +#define u5 struct { dword; u3; u4; array[5] of word; } + +{ + u5 var5; + byte index=0x00; + + while(index<0x02) + { + const array[4] of u1 const1=[{0x00,0x0000},{0x01,0x0001},{0x02,0x0002},{0x03,0x0003}]; + const array[4] of u2 const2=[{0x0000,0x00},{0x0001,0x01},{0x0002,0x02},{0x0003,0x03}]; + + var5.1.0[index].0=const1[index].0+(index*0x03); + var5.1.0[index].1=const1[index].1*(b2w(index)-0x1234); + var5.2.1[index].0=const1[index].1&(b2w(index)/0xABCD); + var5.2.1[index].1=const1[index].0^(!index); + + if(index!=0x00) + { + dword tmp=0x1234FEDC; + + var5.0=tmp; + } + elsif(index==0x01) + { + array[7] of array[8] of array [9] of byte tmp; + + tmp[0x02][0x01][0x00]=index; + } + else + { + array[10] of u5 tmp; + + tmp[0x00].0=var5.0; + } + + index=index+0x01; + } +}