I have the following problem. Using 16 bit assembler code to send a character string to the screen. Following is an example:
in my data segment, I have the following defined:
Str1 DB 'Hello world', 10
DB 'and hello again','$'
in the Code segment, i do the following:
mov ah,9h
mov dx,offset Str1
int 21h
this should create the following output:
Hello world
and hello again
However, I am getting:
Hello world
and hello again
In other words, the linefeed value (the decimal 10) should just cause the second line of output to drop straight down, but it is affecting a line feed and carriage return.
The strange thing is, this problem only occurs when I run this code under Win 2000 or Win XP; when this SAME code runs under Win 98 or Win ME, it works as it is supposed to. This is not just on my machine; I teach an assembler class and the same is true for all my students - run the code under Win 98 or Win ME and it is fine; under Win 2000 or Win XP and the new line of output always starts at the beginning of the next line even though the code only sees a line feed and NOT a carriage return.
I've searched the net and can find no explanation for this.
Anyone have any ideas?
Thanks.
sim