0

Hi,

I'm having problems with my code.
What I"m trying to do is print out a message to the screen asking for input and then take the input from the user.

The problem I'm having is the menu appears AFTER the user types in a string.
For instance, when I run this program I get the following output:
---------------------------------------------------------------
2
ENTER THE BASE OF THE NUMBER TO BE ENTERED OR 'Q' TO QUIT> ENTER A NUMBER>
--------------------------------------------------------------------------
where 2 is the number I typed in

The following is the code I have:

[GLOBAL mystart] ; export the start address
extern _printf
;----------------------------------------------------------------------------
[SECTION .text]
;----------------------------------------------------------------------------
; code belongs in this section starting here
mystart:
push dword promptBaseInput ; push the input-base prompt location.
call _printf ; call the printf function.
pop eax ; pop the value back.

call GETBASE

push dword promptNumberInput ; push the input-base prompt location.
call _printf ; call the printf function.
pop eax ; pop the value back.

endProg:
ret
GETBASE:
mov byte [baseStore], 98 ; baseStore can hold 98 characters
mov byte [baseStore+1], 0 ; reuse 0 characters from last input
mov ah, 0ah ; select buffered input function
mov edx, baseStore ; put baseStore address in EDX
int 0f1h ; call OS interrupt 0F1H
mov ah, 02h ; select write character function
mov dl, 10 ; output a newline
int 0f1h

ret ; return

;----------------------------------------------------------------------------
[SECTION .data]
;----------------------------------------------------------------------------
; all initialized data variables and constant definitions go here

promptBaseInput db "ENTER THE BASE OF THE NUMBER TO BE ENTERED OR 'Q' TO QUIT> ", 0
promptNumberInput db "ENTER A NUMBER> ", 0
promptBaseOutput db "ENTER THE BASE OF THE OUTPUT VALUE> ", 0
;----------------------------------------------------------------------------
[SECTION .bss]
;----------------------------------------------------------------------------
; all uninitialized data elements go here
baseStore resb 100 ; variable to store base of input
numberInput resb 100 ; variable to store number
;-----------------------

Thanks.

2
Contributors
2
Replies
3
Views
11 Years
Discussion Span
Last Post by G24T
0

It's lot easier to follow your code if you wrap your code with

tags. Just to know for the future

0

It's lot easier to follow your code if you wrap your code with tags. Just to know for the future

Thanks. I'll wrap my code next time.


---------------------------------------------------------------------------

I figured what I was doing wrong. The problem turned out to be the gcc compiler I was using --> solved the problem after updating the version....... :eek: :cry:

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.