si
- это , шагая по инструкции movl
(вы можете проверить это, набрав display/i $pc
и наблюдая, как изменяется выходной сигнал.
Что не происходит (и что, вероятно, смутило вас) - это обновление исходного кода, потому что ваш код внутри asm () не имеет каких-либо примечаний к номеру строки, поэтому GDB не может сказать, какие строки должны отображаться.
Обычно компилятор помещает такие аннотации в сборку. Но здесь вы обошли компилятор. Если вы хотите, чтобы номера строк были правильными, вам придется добавить эти аннотации самостоятельно (что обычно не 'не стоит хлопот).