diff --git a/examples/bare1.rs b/examples/bare1.rs
index 962f7c4aa6d1e2e7d64d3d5c9a49f678d99b6ebf..4c548ce90d2292066efc0ddeb8decb398b857e57 100644
--- a/examples/bare1.rs
+++ b/examples/bare1.rs
@@ -77,22 +77,56 @@ fn main() -> ! {
 //    > disassemble
 //    ** your answer here **
 //
-//      Dump of assembler code for function main:
-//        0x08000400 <+0>:     push    {r7, lr}
-//        0x08000402 <+2>:     mov     r7, sp
-//     => 0x08000404 <+4>:     bl      0x800040a <bare1::__cortex_m_rt_main>
-//        0x08000408 <+8>:     udf     #254    ; 0xfe
-//     End of assembler dump.
-//
+//      (gdb) disassemble
+//      Dump of assembler code for function bare1::__cortex_m_rt_main:
+//      0x0800040a <+0>:     push    {r7, lr}
+//      0x0800040c <+2>:     mov     r7, sp
+//      0x0800040e <+4>:     sub     sp, #16
+//      0x08000410 <+6>:     mvn.w   r0, #1
+//      0x08000414 <+10>:    str     r0, [sp, #8]
+//      0x08000416 <+12>:    movs    r0, #0
+//      0x08000418 <+14>:    strb.w  r0, [sp, #12]
+//      0x0800041c <+18>:    ldr     r0, [sp, #8]
+//      0x0800041e <+20>:    str     r0, [sp, #4]
+//      0x08000420 <+22>:    b.n     0x8000422 <bare1::__cortex_m_rt_main+24>
+//      => 0x08000422 <+24>:    bkpt    0x0000
+//      0x08000424 <+26>:    b.n     0x8000426 <bare1::__cortex_m_rt_main+28>
+//      ---Type <return> to continue, or q <return> to quit---
+//      0x08000426 <+28>:    ldr     r0, [sp, #4]
+//      0x08000428 <+30>:    adds    r1, r0, #1
+//      0x0800042a <+32>:    mov     r2, r1
+//      0x0800042c <+34>:    cmp     r1, r0
+//      0x0800042e <+36>:    str     r2, [sp, #0]
+//      0x08000430 <+38>:    bcc.n   0x8000446 <bare1::__cortex_m_rt_main+60>
+//      0x08000432 <+40>:    b.n     0x8000434 <bare1::__cortex_m_rt_main+42>
+//      0x08000434 <+42>:    ldr     r0, [sp, #0]
+//      0x08000436 <+44>:    str     r0, [sp, #4]
+//      0x08000438 <+46>:    bkpt    0x0000
+//      0x0800043a <+48>:    b.n     0x800043c <bare1::__cortex_m_rt_main+50>
+//      0x0800043c <+50>:    add     r0, sp, #4
+//      0x0800043e <+52>:    bl      0x800045e <core::ptr::read_volatile>
+//      0x08000442 <+56>:    b.n     0x8000444 <bare1::__cortex_m_rt_main+58>
+//      0x08000444 <+58>:    b.n     0x8000422 <bare1::__cortex_m_rt_main+24>
+//      0x08000446 <+60>:    movw    r0, #9520       ; 0x2530
+//      ---Type <return> to continue, or q <return> to quit---
+//      0x0800044a <+64>:    movt    r0, #2048       ; 0x800
+//      0x0800044e <+68>:    movw    r2, #9492       ; 0x2514
+//      0x08000452 <+72>:    movt    r2, #2048       ; 0x800
+//      0x08000456 <+76>:    movs    r1, #28
+//      0x08000458 <+78>:    bl      0x80008ec <core::panicking::panic>
+//      0x0800045c <+82>:    udf     #254    ; 0xfe
+//      End of assembler dump.
 //    How many instructions are in between the two `bkpt` instructions in the loop.
 //    Notice, the generated code may not be exactly what you expect :)
-//
+// 
 //    ** your answer here **
+//      10
 //
 //    Which instruction stores the local variable on the stack.
 //
 //    ** your answer here **
-//
+//      
+//      0x0800040a <+0>:     push    {r7, lr}
 //    Commit your answers (bare1_2)
 //
 // 3. Release mode (optimized builds).
@@ -109,19 +143,34 @@ fn main() -> ! {
 //
 //    ** your answer here **
 //
+//     Dump of assembler code for function bare1::__cortex_m_rt_main:
+//      0x0800040a <+0>:     sub     sp, #4
+//      0x0800040c <+2>:     mvn.w   r0, #1
+//      0x08000410 <+6>:     str     r0, [sp, #0]
+//      0x08000412 <+8>:     adds    r0, #1
+//   => 0x08000414 <+10>:    bkpt    0x0000
+//      0x08000416 <+12>:    str     r0, [sp, #0]
+//      0x08000418 <+14>:    bkpt    0x0000
+//      0x0800041a <+16>:    ldr     r0, [sp, #0]
+//      0x0800041c <+18>:    b.n     0x8000412 <bare1::__cortex_m_rt_main+8>
+//   End of assembler dump.
 //    How many instructions are in between the two `bkpt` instructions.
 //
 //    ** your answer here **
-//
+//      1
 //    Where is the local variable stored?
 //
 //    ** your answer here **
+//      0x08000410 <+6>:     str     r0, [sp, #0]
 //
 //    Is there now any reference to the panic handler?
 //    If not, why is that the case?
 //
 //    ** your answer here **
-//
+//     No there is not any refrence to the panic handler
+//      Because in release mode rust does not include checks for 
+//      integer overflow. If overflow occurs it just wrapps with twos complement.
+//      
 //    commit your answers (bare1_3)
 //
 //    Discussion: