; CIS-77
; ATOI_ITOA_DEMO.ASM
; ATOI and ITOA usage demo program
.386 ; Tells MASM to use Intel 80386 instruction set.
.MODEL FLAT ; Flat memory model
option casemap:none ; Treat labels as case-sensitive
INCLUDE IO.H ; header file for input/output
.CONST ; Constant data segment
TXTPROMPT BYTE "Please enter a number between -32768 and +32767: ", 0
TXTENTERED BYTE "You've entered: ", 0
ENDL BYTE 13, 10, 0
OVERFLOW BYTE "*** Bad number, please try again!", 0
.STACK 100h ; (default is 1-kilobyte stack)
.DATA ; Begin initialized data segment
buffer BYTE 8 DUP (?)
.CODE ; Begin code segment
_main PROC ; Beginning of code
@@:
output TXTPROMPT ; Please enter a number...
input buffer, 8 ; Read zero to 6 ASCII characters
atoi buffer ; Convert string to 2's complement number
jno @F ; Check the overflow flag
; Handle input error:
output OVERFLOW ; print error message
output ENDL ; print new line
jmp @B ; back to the prompt
@@:
; Success: result of conversion is in AX
itoa buffer, ax ; Convert 16-bit signed integer to string
output TXTENTERED ; You've entered...
output buffer ; print result
output ENDL ; print new line
ret
_main ENDP
END _main ; Marks the end of the module and sets the program entry point label