- if(dir) { // reg to mem\r
- EaCalc(11,0x0e00,0,size); // reg number -> r11\r
- EaRead(11,11,0,size,0x0e00); // regval -> r11\r
- EaCalc(10,0x0007,ea,size);\r
- if(size==2) { // if operand is long\r
- ot(" mov r1,r11,lsr #24 ;@ first byte\n");\r
- EaWrite(10,1,ea,0,0x0007); // store first byte\r
- ot(" add r10,r10,#2\n");\r
- ot(" mov r1,r11,lsr #16 ;@ second byte\n");\r
- EaWrite(10,1,ea,0,0x0007); // store second byte\r
- ot(" add r10,r10,#2\n");\r
- }\r
- ot(" mov r1,r11,lsr #8 ;@ first or third byte\n");\r
- EaWrite(10,1,ea,0,0x0007);\r
- ot(" add r10,r10,#2\n");\r
- ot(" and r1,r11,#0xff\n");\r
- EaWrite(10,1,ea,0,0x0007);\r
- } else { // mem to reg\r
- EaCalc(10,0x0007,ea,size,1);\r
- EaRead(10,11,ea,0,0x0007,1); // read first byte\r
- ot(" add r10,r10,#2\n");\r
- EaRead(10,1,ea,0,0x0007,1); // read second byte\r
- if(size==2) { // if operand is long\r
+ if(dir) // reg to mem\r
+ {\r
+ EaCalcReadNoSE(-1,11,rea,size,0x0e00);\r
+\r
+ EaCalc(8,0x000f,ea,size);\r
+ if(size==2) { // if operand is long\r
+ ot(" mov r1,r11,lsr #24 ;@ first byte\n");\r
+ EaWrite(8,1,ea,0,0x000f); // store first byte\r
+ ot(" add r0,r8,#%i\n",(aadd+=2));\r
+ ot(" mov r1,r11,lsr #16 ;@ second byte\n");\r
+ EaWrite(0,1,ea,0,0x000f); // store second byte\r
+ ot(" add r0,r8,#%i\n",(aadd+=2));\r
+ } else {\r
+ ot(" mov r0,r8\n");\r
+ }\r
+ ot(" mov r1,r11,lsr #8 ;@ first or third byte\n");\r
+ EaWrite(0,1,ea,0,0x000f);\r
+ ot(" add r0,r8,#%i\n",(aadd+=2));\r
+ ot(" and r1,r11,#0xff\n");\r
+ EaWrite(0,1,ea,0,0x000f);\r
+ }\r
+ else // mem to reg\r
+ {\r
+ EaCalc(6,0x000f,ea,size,1);\r
+ EaRead(6,11,ea,0,0x000f,1); // read first byte\r
+ ot(" add r0,r6,#2\n");\r
+ EaRead(0,1,ea,0,0x000f,1); // read second byte\r
+ if(size==2) { // if operand is long\r