I am debugging an ARM microcontroller remotely and trying to modify a variable with gdb in the following block of code:

```
for (int i = 0; i < 100; i++) {
    __asm__("nop");
}

```

When I execute `print i` I can see the value of the variable

```
(gdb) print i
$1 = 0

```

Executing `whatis i` returns this

```
whatis i
~"type = int\n"

```

But when I try to change the variable I get the following error

```
(gdb) set variable i=99
Left operand of assignment is not an lvalue.

```

What am I doing wrong here?

**UPDATE:** here is the assembler code

```
!        for (int i = 0; i < 100; i++) {
main+38: subs\tr3, #1
main+40: bne.n\t0x80001d0 <main+36>
main+42: b.n\t0x80001c4 <main+24>
main+44: lsrs\tr0, r0, #16
main+46: ands\tr2, r0
!            __asm__("nop");
main+36: nop    

```