Приветствую всех, возникла проблема. Имеется код в программе:
field db '1', '2', '3', '4', '5', '6', '7', '8', '9'
move resb 1
_move:
mov edx, 1
mov ecx, move
mov ebx, 1
mov eax, 4
int 0x80
mov eax, move
mov ebx, field
add ebx, eax
call _clear
mov [ebx], byte 'X'
ret
Опытным путём, узнал, что call _clear выполняется, а вот при подставке 'X' в [ebx] падает с сообщением:
23988 segmentation fault (core dumped)
В move поступает число с помощью ввода, программа запрашивает его, и пользователь вводит число от 1 до 9
Если же вместо строки:
add ebx, eax
Написать:
add ebx, 2
То всё корректно выполняется, как я подозреваю, проблема в том, что ввод с строки не является числом, а ASCII символом, но не знаю как его обработать и вообще, так ли это, надеюсь на вашу помощь, спасибо!