From 3b4a1cd9dd5cec808759efb4dbea27bbefa477bf Mon Sep 17 00:00:00 2001
From: "henthe-5@student.ltu.se" <henthe-5@student.ltu.se>
Date: Tue, 19 Feb 2019 16:22:01 +0100
Subject: [PATCH] bare1_7

---
 examples/bare1.rs | 41 ++++++++++++++++++++++++++++++++++++-----
 1 file changed, 36 insertions(+), 5 deletions(-)

diff --git a/examples/bare1.rs b/examples/bare1.rs
index 238dfe4..d0b9081 100644
--- a/examples/bare1.rs
+++ b/examples/bare1.rs
@@ -16,6 +16,8 @@ use cortex_m_rt::entry;
 use cortex_m::{iprintln, Peripherals};
 use cortex_m_semihosting::hprintln;
 
+use core::num::Wrapping;
+
 #[entry]
 #[inline(never)]
 fn main() -> ! {
@@ -25,14 +27,15 @@ fn main() -> ! {
     //let mut p = Peripherals::take().unwrap();
     //let stim = &mut p.ITM.stim[0];
 
-    let mut _x = 0;
+    let mut _x = Wrapping(0u32);
+    let one = Wrapping(1u32);
     loop {
-        _x += 1;
+        _x += one;
         cortex_m::asm::nop();
         //iprintln!(stim, "{}",_x);
         //hprintln!("{}", _x).unwrap();
         cortex_m::asm::bkpt();
-        _x -= 1;
+        _x -= one;
     }
 }
 
@@ -283,11 +286,39 @@ fn main() -> ! {
 //
 //    What is now the disassembly of the code in dev mode?
 //
-//    ** your answer here **
+//    ** 
+// Dump of assembler code for function main:
+//    0x080004e4 <+0>:	sub	sp, #8
+//    0x080004e6 <+2>:	movs	r0, #0
+//    0x080004e8 <+4>:	str	r0, [sp, #0]
+//    0x080004ea <+6>:	movs	r0, #1
+//    0x080004ec <+8>:	str	r0, [sp, #4]
+//    0x080004ee <+10>:	b.n	0x80004f0 <main+12>
+//    0x080004f0 <+12>:	ldr	r1, [sp, #4]
+//    0x080004f2 <+14>:	mov	r0, sp
+//    0x080004f4 <+16>:	bl	0x8000490 <core::num::wrapping::_$LT$impl$u20$core..ops..arith..AddAssign$u20$for$u20$core..num..Wrapping$LT$u32$GT$$GT$::add_assign::hbb56dbef6bcfa964>
+//    0x080004f8 <+20>:	b.n	0x80004fa <main+22>
+//    0x080004fa <+22>:	bl	0x80004e0 <cortex_m::asm::nop::h0ac7b7a3f33f2667>
+//    0x080004fe <+26>:	b.n	0x8000500 <main+28>
+// => 0x08000500 <+28>:	bkpt	0x0000
+//    0x08000502 <+30>:	b.n	0x8000504 <main+32>
+//    0x08000504 <+32>:	ldr	r1, [sp, #4]
+//    0x08000506 <+34>:	mov	r0, sp
+//    0x08000508 <+36>:	bl	0x80004b8 <core::num::wrapping::_$LT$impl$u20$core..ops..arith..SubAssign$u20$for$u20$core..num..Wrapping$LT$u32$GT$$GT$::sub_assign::hcf06b8f89372a809>
+//    0x0800050c <+40>:	b.n	0x800050e <main+42>
+//    0x0800050e <+42>:	b.n	0x80004f0 <main+12>
+// End of assembler dump.
+//  **
 //
 //    What is now the disassembly of the code in release mode?
 //
-//    ** your answer here **
+//    ** 
+// Dump of assembler code for function main:
+//    0x08000400 <+0>:	nop
+// => 0x08000402 <+2>:	bkpt	0x0000
+//    0x08000404 <+4>:	b.n	0x8000400 <main>
+// End of assembler dump. 
+//  **
 //
 //    commit your answers (bare1_7)
 //
-- 
GitLab