 <p>Your using <code>WriteString</code> to display a string. <code>WriteString</code> uses <code>edx</code> to hold the address of the string to print.</p> <p>You call <code>DisplayPrompt</code> and move the address of <code>vHexPrompt</code> into <code>edx</code>, then you call <code>DisplayString</code> and in that function, you call <code>WriteString</code>. <code>edx</code> still contains the address of <code>vHexPrompt</code> which is why you are getting a double prompt.</p> <p>Until you write more code to utilize <code>DisplayString</code>, either comment out the call to writestring in that function, or just add <code>xor edx, edx</code> right before your call to <code>WriteString</code> in <code>DisplayString</code></p>