Today I gave asmbits a try, this time the questions were simple like the ones I solved the other day.

##### Write a function that returns the bitwise inversion of its parameter.

We need to invert the bits that make up the integer.

```.global _start
_start:
mov r0, #1
bl invert
1: b 1b

.global invert
invert:
mvn r0, r0
bx lr
```
##### Write a function that returns the whether its parameter is odd. Return 1 if odd, 0 if even.

This question was more interesting as there were multiple ways to solve it, the slower solution would involve runnig the following code

```bool is_odd(int n){
return n % 2 > 0;
}
```

This solution will result in multiple assembly instructions including a branch instruction. A faster solution would be the following, where we mask all the bits except for the least significant one.

```.global _start
_start:
mov r0, #1
bl odd
1: b 1b

.global odd
odd:
AND r0, r0, #0x00000001
bx lr
```

Here is another alternative solution

```.global _start
_start:
mov r0, #1
bl odd
1: b 1b

.global odd
odd:
BIC r0, r0, #0xFFFFFFFE
bx lr
```