Don't stop there - if changing BX from 7 to 0 makes it work and changing it back to 7 stops it working, there's something else wrong, though I suppose it could be a BIOS bug. That would be worth exploring further, and the same applies to finding out why your attempt to print directly to the screen failed.requimrar wrote:I just set BX to 0 and everything worked. I don't know how or why you managed to get my posted code working, but either way thanks for all your help.
One thing's still puzzling me though - how does "mov si, msg" generate the right address to go with DS=0 when the code all follows "ORG 0x7C00"? What's the point of an org directive if it's just ignored when addresses are calculated?