Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.01.2010, 12:51   #1
strateg0793
 
Регистрация: 18.01.2010
Сообщений: 6
По умолчанию Почему Программа не хочет работать

Помогите мне пожалуйста,я начал изучат ассемблер,ооч интересно, но меня расстроило следующее: после того как я компилирую программу (в основном TASM или MASM) то она не работает так как должна. Вот пример

Код:
CSEG segment
assume CS:CSEG, DS:CSEG, ES:CSEG, SS:CSEG
org 100h

Start:
mov ax,0B800h
mov es,ax
mov al,1
mov ah,31
mov cx,254

Next_screen:
mov di,0
call Out_chars
inc al
loop Next_screen

mov ah,10h
int 16h

int 20h

Out_chars proc
mov dx,cx
mov cx,2000

Next_face:
mov es:[di],ax
add di,2
loop Next_face

mov cx,dx
ret
Out_chars endp

CSEG ends
end Start
но при запуске программа просто появляется и завершается

Последний раз редактировалось Stilet; 18.01.2010 в 13:25.
strateg0793 вне форума Ответить с цитированием
Старый 18.01.2010, 12:56   #2
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,162
По умолчанию

strateg0793
Будь внимателен
Код:
mov ah,10h;<-- у тебя
int 16h
должно быть
Код:
mov ah,0; ждем пока не нажмут любую клавишу
int 16h
Mikl___ вне форума Ответить с цитированием
Старый 18.01.2010, 13:02   #3
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

Добавь еще в начале
Код:
mov ax,3
int 10h
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4

Последний раз редактировалось Goodwin98; 18.01.2010 в 13:07.
Goodwin98 вне форума Ответить с цитированием
Старый 18.01.2010, 13:23   #4
strateg0793
 
Регистрация: 18.01.2010
Сообщений: 6
По умолчанию

А не могли бы объяснить почему в книге пишет так: Допустим нам необходимо написать программу,которая выводит на экран сообщение "Нажмите любую клавишу",ждет нажатия клавиши, ф затем выводит сообщение "Вы успешно нажали клавишку",ждет пока пользователь нажмет любую клавишу, после чешо завешает свою работу.
Что для этого нужно? Вызвать два раза функцию 09h прерывания 21h и столько же функцию 10h превывания 16h
strateg0793 вне форума Ответить с цитированием
Старый 18.01.2010, 13:31   #5
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,162
По умолчанию

Если выводишь DOS- программу в режиме эмуляции, то она только мелькнет на экране и всё! Если сделать задержку до следующего нажатия, то можно посмотреть на результат, под DOS я очень давно не программирую, поэтому не знаю ЧТО делают 09h функция 21h прерывания и 10h функция 16h прерывания, чаще используют 0 и 1 функции 16h прерывания
Mikl___ вне форума Ответить с цитированием
Старый 18.01.2010, 13:38   #6
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

Цитата:
Что для этого нужно? Вызвать два раза функцию 09h прерывания 21h и столько же функцию 10h превывания 16h
Только не функцию 10h превывания 16h, а либо 0 фунцию int 16h, либо 01 int 21h
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4
Goodwin98 вне форума Ответить с цитированием
Старый 18.01.2010, 13:38   #7
strateg0793
 
Регистрация: 18.01.2010
Сообщений: 6
По умолчанию

Аа...да меня в начале обучения мелькающие окошки не впечатлили, а что вы посоветуете мне почитать для начала,или может пару советов по написанию программ не под DOS
strateg0793 вне форума Ответить с цитированием
Старый 19.01.2010, 04:00   #8
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,162
По умолчанию

Цитата:
Сообщение от strateg0793
а что вы посоветуете мне почитать для начала,или может пару советов по написанию программ не под DOS
До чего ленивый пошел народ! А здесь не смотрел?

Последний раз редактировалось Mikl___; 19.01.2010 в 05:10.
Mikl___ вне форума Ответить с цитированием
Старый 21.01.2010, 14:10   #9
strateg0793
 
Регистрация: 18.01.2010
Сообщений: 6
По умолчанию

Спасибо,Отличная ссылочка
strateg0793 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Cходящийся ряд (программа по идее должна работать но почему не работает понять не могу) в С++ Vultar Помощь студентам 3 17.12.2009 13:04
ну не хочет работать!!! MySQL artush1984 Общие вопросы C/C++ 1 06.09.2009 13:41
Простая Программа в DEV C++ не хочет работать! Почему? RomT24 Общие вопросы C/C++ 6 06.08.2009 17:25
Не хочет работать OpenPictureDialog guffer Общие вопросы Delphi 4 08.07.2009 20:14
Программа в Delphi не хочет работать. (Одномерный массив). Kawun Помощь студентам 9 14.11.2008 16:26