From mboxrd@z Thu Jan 1 00:00:00 1970 Date: Thu, 10 Mar 2005 14:55:37 -0700 From: "Ronald G. Minnich" To: 9fans@cse.psu.edu Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Subject: [9fans] ARM question Topicbox-Message-UUID: 227884b2-ead0-11e9-9d60-3106f5b1d025 here's the code in c: #include #include y(){ unsigned long *x; x = (unsigned long *) 0x4000; *x = (unsigned long) 0x40e; } main(){ unsigned long *x; static unsigned long y[64]; int i; x = (unsigned long *) 0x4000; *x = (unsigned long) 0x40e; x++; *x = (unsigned long)0x100000 + 0x40e; x++; *x = (unsigned long)0x200000 + 0x40e; x++; *x = (unsigned long)0x300000 + 0x40e; x++; *x = (unsigned long)0x400000 + 0x40e; x++; *x = (unsigned long)0x500000 + 0x40e; x++; *x = (unsigned long)0x600000 + 0x40e; x++; *x = (unsigned long)0x700000 + 0x40e; } And the .s TEXT y+0(SB),0,$4 MOVW $1038,R4 MOVW $16384,R1 MOVW R4,0(R1) RET , TEXT main+0(SB),0,$8 MOVW $1049614,R10 MOVW $2098190,R9 MOVW $3146766,R8 MOVW $4195342,R7 MOVW $5243918,R6 MOVW $6292494,R5 MOVW $7341070,R4 MOVW $16384,R3 MOVW $1038,R2 MOVW.P R2,4(R3) MOVW.P R10,4(R3) MOVW.P R9,4(R3) MOVW.P R8,4(R3) MOVW.P R7,4(R3) MOVW.P R6,4(R3) MOVW R5,0(R3) MOVW R4,4(R3) RET , GLOBL y$2<>+0(SB),R0,$256 END , The code for y() I can understand. but this: MOVW $16384,R3 MOVW $1038,R2 MOVW.P R2,4(R3) I don't get. How can R2 get stored to 16384, given the 4(R3)? Are we pretty much agreed that the MOVW.P is a post-increment mode? ron