Andes Workshop

It is currently Tue Sep 26, 2017 2:56 pm

All times are UTC + 8 hours [ DST ]




Post new topic Reply to topic  [ 1 post ] 
Author Message
 Post subject: c struct - the variable using memory
PostPosted: Tue Dec 16, 2014 5:06 pm 
Offline

Joined: Thu Apr 03, 2014 10:09 am
Posts: 42
1. struct Test1{
unsigned int ui1;
unsigned int ui2;
char c1;
char c2;
};
The memory map
Attachment:
test1.jpg
test1.jpg [ 16.5 KiB | Viewed 1937 times ]


The assemble code
Code:
        t1.ui1=1;
     c8e:   b0 07          addri36.sp $r0,#0x1c
     c90:   84 21          movi55 $r1,#0x1
     c92:   b6 20          swi450 $r1,[$r0]
   t1.ui2=2;
     c94:   b0 07          addri36.sp $r0,#0x1c
     c96:   84 22          movi55 $r1,#0x2
     c98:   a8 41          swi333 $r1,[$r0+#0x4]
   t1.c1=3;
     c9a:   b0 07          addri36.sp $r0,#0x1c
     c9c:   84 23          movi55 $r1,#0x3
     c9e:   10 10 00 08    sbi $r1,[$r0+#0x8]
   t1.c2=4;
     ca2:   b0 07          addri36.sp $r0,#0x1c
     ca4:   84 24          movi55 $r1,#0x4
     ca6:   10 10 00 09    sbi $r1,[$r0+#0x9]



2. struct Test2{
char c1;
unsigned int ui1;
char c2;
unsigned int ui2;
};

The memory map
Attachment:
test2.jpg
test2.jpg [ 28.43 KiB | Viewed 1937 times ]


The assemble code
Code:
t2.c1=1;
     caa:   b0 03          addri36.sp $r0,#0xc
     cac:   84 21          movi55 $r1,#0x1
     cae:   ae 40          sbi333 $r1,[$r0+#0x0]
   t2.ui1=2;
     cb0:   b0 03          addri36.sp $r0,#0xc
     cb2:   84 22          movi55 $r1,#0x2
     cb4:   a8 41          swi333 $r1,[$r0+#0x4]
   t2.c2=3;
     cb6:   b0 03          addri36.sp $r0,#0xc
     cb8:   84 23          movi55 $r1,#0x3
     cba:   10 10 00 08    sbi $r1,[$r0+#0x8]
   t2.ui2=4;
     cbe:   b0 03          addri36.sp $r0,#0xc
     cc0:   84 24          movi55 $r1,#0x4
     cc2:   a8 43          swi333 $r1,[$r0+#0xc]


3. struct Test3{
char c1;
unsigned int ui1;
char c2;
unsigned int ui2;
}__attribute__((packed));

The memory map
Attachment:
test3.jpg
test3.jpg [ 16.76 KiB | Viewed 1937 times ]


The assemble
Code:
t3.c1=1;
     cc4:   b0 02          addri36.sp $r0,#0x8
     cc6:   84 21          movi55 $r1,#0x1
     cc8:   ae 40          sbi333 $r1,[$r0+#0x0]
   t3.ui1=2;
     cca:   b0 02          addri36.sp $r0,#0x8
     ccc:   8c 01          addi45 $r0,#0x1
     cce:   a6 40          lbi333 $r1,[$r0+#0x0]
     cd0:   54 10 80 00    andi $r1,$r1,#0x0
     cd4:   58 10 80 02    ori $r1,$r1,#0x2
     cd8:   ae 40          sbi333 $r1,[$r0+#0x0]
     cda:   a6 41          lbi333 $r1,[$r0+#0x1]
     cdc:   54 10 80 00    andi $r1,$r1,#0x0
     ce0:   ae 41          sbi333 $r1,[$r0+#0x1]
     ce2:   a6 42          lbi333 $r1,[$r0+#0x2]
     ce4:   54 10 80 00    andi $r1,$r1,#0x0
     ce8:   ae 42          sbi333 $r1,[$r0+#0x2]
     cea:   a6 43          lbi333 $r1,[$r0+#0x3]
     cec:   54 10 80 00    andi $r1,$r1,#0x0
     cf0:   ae 43          sbi333 $r1,[$r0+#0x3]
   t3.c2=3;
     cf2:   b0 02          addri36.sp $r0,#0x8
     cf4:   84 23          movi55 $r1,#0x3
     cf6:   ae 45          sbi333 $r1,[$r0+#0x5]
   t3.ui2=4;
     cf8:   b0 02          addri36.sp $r0,#0x8
     cfa:   8c 06          addi45 $r0,#0x6
     cfc:   a4 40          lhi333 $r1,[$r0+#0x0]
     cfe:   54 10 80 00    andi $r1,$r1,#0x0
     d02:   58 10 80 04    ori $r1,$r1,#0x4
     d06:   ac 40          shi333 $r1,[$r0+#0x0]
     d08:   a4 41          lhi333 $r1,[$r0+#0x2]
     d0a:   54 10 80 00    andi $r1,$r1,#0x0
     d0e:   ac 41          shi333 $r1,[$r0+#0x2]


Top
 Profile Send private message E-mail  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 1 post ] 

All times are UTC + 8 hours [ DST ]


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group