У меня проблема с синтаксисом некоторых сборок AT & T.
Я использую компилятор "as" в linux x86.
Я создаю программу паролей, но это должно быть так.нечувствительны.Чтобы уточнить, он должен оценивать true независимо от случая любого заданного символа.
У меня нормальный процесс оценки работает правильно, и я настроил его для перебора строки.
#Comparison Routine
movl $Password, %ebx #Move the entire hardcoded password into ebx
movl $buffer_data, %edx #Move the entire input password into edx
movl $Password_len, %ecx #Move the length of the input password into ecx
0:
movb (%ebx), %al #Move one byte of the hardcoded password into al
xorb (%edx), %al #Compare one byte of the input password to one byte of the hardedcoded
jz SkipCase #If they match, jump to SkipCase
#####
andb $32, %al #
xorb (%edx), %al
jz SkipCase
jnz IncorrectOutput #
SkipCase:
inc %ebx #Iterate through the
inc %edx #strings and decrease
dec %ecx #the length variable
jnz 0b #if we're not finished, continue
jmp CorrectOutput #If all is good, goto CorrectOutput
Это раздел, с которым я борюсь, я не могу понять, как на самом деле конвертировать персонажа между делами.Я знаю, что мне нужно добавить или вычесть 32 из этого, но что-то не так.Любые комментарии или предложения будут очень полезны.Спасибо.
andb $32, %al #
xorb (%edx), %al
Это раздел, посвященный рассмотрению дела, я пробовал add
, sub
, and
и or
, и я просто не могу заставить его работать.я понимаю, что jz SkipCase
после этого не является обязательным.
Процедура сравнения в значительной степени основана на другом вопросе, который я здесь приведу, если это необходимо.
Извинения за компоновку и избыточные хэши,плохой стиль комментирования, я знаю.