I want to convert the user input from string to integer to do multiplication and division operations. I tried to move the value to 'al' register then subtract 48 to convert it to int 'mov al, userInput' 'sub al, 48' but still the same issue, also I could not push the value of 'al' register to the stack 'push al' 'call printf'. Please any help in that.
global main
extern printf
SECTION .data
    ;--> Variables for the divisibility program
    InputMessage db "Enter a number: ", 0xa, 0x0
    OutputMessage db "Your value is : %d", 0xa, 0x0
SECTION .bss
    userInput resb 10
SECTION .text
main:
    global main
extern printf
SECTION .data
    ;--> Variables for timetable program
    msg db "    ", 0x0
    msge db "%d ", 0x0
    endl db 0xa, 0x0
    row dd 1
    col dd 1
    ;--> Variables for the divisibility program
    InputMessage db "Enter a number: ", 0xa, 0x0
    OutputMessage db "Your value is : %d", 0xa, 0x0
SECTION .bss
    userInput resb 10
SECTION .text
main:
    push InputMessage
    call printf
    pop ebx
    ;Reading user input
    mov eax, 3
    mov ebx, 1
    mov ecx, userInput
    mov edx, 10
    int 0x80
    ;userInput++
    mov eax, [userInput]
    inc eax
    push eax
    call printf
    ;exit
    mov eax, 1
    int 0x80
