%include "CONSTANTS.h" global main section .data prompt1: db `Enter an integer => `,0 inputFmtString1: db `%d`,0 outputFmtString1: db `The number is %d \n`,0 prompt2: db `Enter a word => `,0 inputFmtString2: db `%s`,0 outputFmtString2: db `The word is '%s'\n`,0 section .bss number: resd 1 ; reserve a space for one number string: resb 100 ; reserce a space for a 100 character string section .text extern printf extern scanf main: mov rdi, prompt1 call CallPrintf mov rdi, inputFmtString1 mov rsi, number call CallScanf mov rdi, outputFmtString1 mov rsi, [number] call CallPrintf mov rdi, outputFmtString1 mov rsi, [number] add rsi, 1 call CallPrintf mov rdi, prompt2 call CallPrintf mov rdi, inputFmtString2 mov rsi, string call CallScanf mov rdi, outputFmtString2 mov rsi, string call CallPrintf mov rax, SYS_EXIT ; system call for exit mov rdi, SUCCESS ; exit code 0 syscall CallScanf: push rbp mov rbp, rsp sub rsp, 8 call scanf ;add rsp,8 mov rsp, rbp pop rbp ret CallPrintf: push rbp mov rbp, rsp sub rsp, 8 mov rax, 0 call printf ;add rsp,8 mov rsp, rbp pop rbp ret