компилю тасмом com программу --------------------код------------------------ cseg segment assume cs:cseg, ds:cseg,es:cseg,ss:cseg org 100h start: mov ax, 0b800h mov es,ax mov di, 0 mov ah,31 mov al, 1 mov es:[di], ax mov ax, 10h int 16h int 20h cseg ends end start --------------------код------------------------ tasm program.asm tlink program.obj/t/x все ок(тасм ошибок никаких не выдает) , запускаю из командной строчки и программа виснет(ОС не виснет) , смайлик не выводится.... раньше выводился. В чем проблема?
Tiks0n Добавь Код (Text): ... start: mov ah,0Fh ;; ! int 10h ;; ! mov ax, 0b800h ... объяснить не могу, но это подтолкнет win'ду к отображению видеопамяти в консоле.
Ты наверное раньше был под 98, а сейчас перешол на ХР? Если да, то нужно есчё менять видеорежим, в даном случае 3, т.е Код (Text): mov ax,0x0003 int 0x10 ... И все будет работать.
причём тут эта строка??? Вот шо выдает смайлик на экран: Код (Text): mov ah,31 ; цвет mov al, 1 ; символ :) mov es:[di], ax ;запись в 0xB800:0000 - вот он, наш символ. (хотя ето и не по дзенски ;))
Всё тут уже говорили! Для смайлика: Код (Text): mov ax, 3 int 10h Номер функции в AH, а не в AX: Код (Text): mov ah, 10h int 16h Прога не виснет, а ждёт нажатия any key PS. УЖАС!! Отредактировано!!
когда записуеш в ах, меняется и ah. Так вот, когда в ах записать 10, в ah окажется 0. инт16 вызовет 0 функцию, тобыш будет ждать пока не нажмёш. Кривовато но работает.
Vov4ick да , тут я ошибся mov ax, 10h нужно было заменить на mov ah, 10h но даже так программа работает не так как нужно... JAPH я знаю что это mov ah, 10h int 16h ожидание нажатия клавиши, но все рано работает не так как нужно PS незнаю почему но вставка кода, мосле метки start: mov ah,0Fh int 10h помогла...