Набор условий ассемблера не выполнен

#assembly #x86-64

#сборка #x86-64

Вопрос:

 movq $0, %r11
movq $5, %r10
cmpq %r11, %r10
setl %r11b
  

После этого r11 не устанавливается. Но из того, что я понимаю, 0 меньше 5, так и должно быть.

Я использую gnu assembler и gcc.

 as --version
GNU assembler (GNU Binutils for Ubuntu) 2.22
  

Ответ №1:

Похоже, вы путаете Intel и AT amp; T

cmpq %r11, %r10 в AT amp; T равно cmp r10, r11 в Intel.

Попытайтесь cmpq %r10, %r11 получить ожидаемый результат.

Комментарии:

1. Спасибо, это было просто, извините за шум.

2. @user2291758 такую ошибку является одним из buggiest ошибка в мир >о<