So in the code below, I am attempting to print just the good bye message but all 3 get printed and if a 4 variable is added, it get printed as well . What could be causing this and how can I fix it.
I have read some posts which suggest something about a null terminator however using
goodbyeMsg db " powering off",0
goodbyeMsg db " powering off$",10, 13, 0
goodbyeMsg db " powering off",10, 13, 0
goodbyeMsg db " powering off$"
did not work
the sample code:
section .text
global _start
_start:
mov eax,4
mov ebx,1
mov ecx,goodbyeMsg
mov edx,lenGoodbyeMsg
int 80h
mov eax, 1
mov ebx ,0
int 80h
section .data
welcomeMsg db "Welcome, to Ugo Air Condition"
lenWelcomeMsg db $-lenWelcomeMsg
goodbyeMsg db " powering off"
lenGoodbyeMsg db $-lenGoodbyeMsg
help db "enter q w e r t y u "
lenHelp db $-lenHelp
quitKey db "q"
lenQuitKey equ $ - quitKey
defaultMode db "Stationary"
lenDefaultMode equ $-defaultMode
defaultTemp db 18
defaultFanSpeed db 2
section .bss
userInput resb 10
powerState resb 10
currentTemp resb 10
currentMode resb 10
currentFanSpeed resb 10
the output:
powering offenter q w e r t y u qStationarys
the result of strace
execve("./air", ["./air"], [/* 58 vars */]) = 0
[ Process PID=5169 runs in 32 bit mode. ]
enter q w e r t y u qStationary) = 2048 "..., 134516943 powering off
_exit(0) = ?
+++ exited with 0 +++