]> matita.cs.unibo.it Git - helm.git/blobdiff - matita/contribs/assembly/freescale/doc/reverse.txt
branch for universe
[helm.git] / matita / contribs / assembly / freescale / doc / reverse.txt
diff --git a/matita/contribs/assembly/freescale/doc/reverse.txt b/matita/contribs/assembly/freescale/doc/reverse.txt
new file mode 100644 (file)
index 0000000..cf8cf32
--- /dev/null
@@ -0,0 +1,99 @@
+\r
+A: 0x00 HX: 0x0D4B SP: 0x0D4A PC: 0x18E0 Z:1\r
+A: 0x00 HX: LUNG/2 SP: 0x0D4A PC: 0x192B Z:1\r
+\r
+   8: 178806 -> 179480 :   674 = 42+79*   8\r
+  16: 178806 -> 180112 :  1306 = 42+79*  16\r
+  32: 178806 -> 181376 :  2570 = 42+79*  32\r
+  64: 178806 -> 183904 :  5098 = 42+79*  64\r
+ 128: 178806 -> 188960 : 10154 = 42+79* 128\r
+ 256: 178806 -> 199072 : 20266 = 42+79* 256\r
+ 511: 178806 -> 219138 : 40332 = 42+79* 511\r
+ 512: 178806 -> 219301 : 40495 < 42+79* 512 = 40490\r
+ 514: 178806 -> 219459 : 40653 < 42+79* 514 = 40648\r
+1024: 178806 -> 259754 : 80948 > 42+79*1024 = 80938\r
+\r
+ottima definizione esatta del tempo di esecuzione!\r
+\r
+T(n)=42+79*n+5*(n/512) oppure T(n)=42+79*n+(n>>9)\r
+\r
+dati 0x100-> 3072 byte\r
+\r
+**********************************************\r
+\r
+static unsigned char dati[3072]={...};\r
+\r
+void swap(unsigned char *a, unsigned char *b)\r
+ { unsigned char tmp=*a; *a=*b; *b=tmp; return; }\r
+\r
+18BE       PSHX\r
+18BF       PSHH\r
+18C0       LDHX 5,SP\r
+18C3       LDA ,X\r
+18C4       LDHX 1,SP\r
+18C7       PSHA\r
+18C8       LDA ,X\r
+18C9       LDHX 6,SP\r
+18CC       STA ,X\r
+18CD       LDHX 2,SP\r
+18D0       PULA\r
+18D1       STA ,X\r
+18D2       AIS #2\r
+18D4       RTS\r
+\r
+18D5-18DF ...\r
+\r
+void main(void)\r
+{\r
+ unsigned int pos=0,limit=0;\r
+\r
+ for(limit=3072;pos<(limit/2);pos++)\r
+  { swap(&dati[pos],&dati[limit-pos-1]); }\r
+\r
+18E0       LDHX #LUNG\r
+18E3       STHX 4,SP\r
+18E6 20 32 BRA *+52 ; 191A\r
+18E8       TSX\r
+18E9       LDA 2,X\r
+18EB       ADD #0x00\r
+18ED       PSHA\r
+18EE       LDA 1,X\r
+18F0       ADC #0x01\r
+18F2       PSHA\r
+18F3       LDA 4,X\r
+18F5       SUB 2,X\r
+18F7       STA ,X\r
+18F8       LDA 3,X\r
+18FA       SBC 1,X\r
+18FC       PSHA\r
+18FD       LDX ,X\r
+18FE       PULH\r
+18FF       AIX #-1\r
+1901       TXA\r
+1902       ADD #0x00\r
+1904       PSHH\r
+1905       TSX\r
+1906       STA 3,X\r
+1908       PULA\r
+1909       ADC #0x01\r
+190B       LDX 3,X\r
+190D       PSHA\r
+190E       PULH\r
+190F AD AD BSR *-81 ; 18BE\r
+1911       AIS #2\r
+1913       TSX\r
+1914       INC 2,X\r
+1916 26 02 BNE *+4 ; 191A\r
+1918       INC 1,X\r
+191A       TSX\r
+191B       LDA 3,X\r
+191D       PSHA\r
+191E       PULH\r
+191F       LSRA\r
+1920       TSX\r
+1921       LDX 4,X\r
+1923       RORX\r
+1924       PSHA\r
+1925       PULH\r
+1926       CPHX 2,SP\r
+1929 22 BD BHI *-65 ; 18E8\r