Я пытаюсь выполнить сканирование 100-мерной строки в сборке и распечатать ее, используя scanf и printf.scanf string in assembly
.data
strString: .string "%s"
stringToRev: .space 100
.text #the beginning of the code
.globl main #the label "main" is used to state the initial point of this program
.type main, @function # the label "main" representing the beginning of a function
main: # the main function:
pushl %ebp #save the old frame pointer
movl %esp, %ebp #create the new frame pointer
pushl %ebx #saving a callee save register.
leal -12(%ebp), %edx #choice will be saved in edx
pushl %edx
pushl $strString
call scanf
movl (%edx), $stringToRev
pushl -12(%ebp)
pushl $strString
call printf
call Reverse
pushl %eax
pushl $strString
call printf
Если я ввожу строку, например «asfdg», она печатает 0 (вместо этой строки). Я чувствую отчаяние в этом вопросе - ответов на сборку в Интернете нет!
Что вы обнаружили, когда вы перешли через это с помощью отладчика? –
Я новичок в сборке. Я не уверен в отладчике ... – zvika
Затем вы должны потратить некоторое время на изучение отладчика. Отладка, вероятно, составляет 50% от программирования. –