Помогите разобратся почему в MS Virtual PC этот код работает, а на реальной машине нет? Code (Text): ORG 0x7C00 ;-----------------------Настраиваем регистры cli mov ax , cs mov ds , ax mov es , ax mov ss , ax mov sp , 0xfff0 sti ;----------------------Сообщение о начале работы mov ah, 0x00 mov al, 0x03 int 0x10 mov ah,0x0b mov bh,0x00 mov bl,0x01 int 0x10 mov si, msg call out_print jmp $ out_print: .loop: lodsb test al, al jz .quit mov ah, 0x0E int 0x10 jmp short .loop .quit: ret msg: db "Starting...",0x0A,0x0D,0 times 510-($-$$) db 0 db 0xAA, 0x55
zaqer Сделай в начале кода jmp как в докум. структуре загр. сектора или, напрмер, вместо ORG 0x7C00 пиши 0x7C3E, а свой код запиши в загр. сектор по смещению 3Eh (кажется так!)
int2eh это не обязательно, если вы конечно не собираетесь поддерживать FAT12, а тут скорее всего надо при выводе в BL указать атрибут вывода, а то вывод черным не катит (хотя и нужно-то только в графике, но у меня случалось и обратное), а попробуйте настрить es:di на видеопамять и выводить через lodsb/stosw (лично мне этот способ больше нравится)