Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Подскажите с чем это связанно.  (Прочитано 6061 раз)
0 Пользователей и 1 Гость смотрят эту тему.
StaCk
Новенький

ru
Offline Offline

« : 25-10-2011 17:11 » 

Здравствуйте! Возник вопрос. Я написал простенькую программу для вывода на экран десятичного числа, с помощью функции прирывания команды 02H. При запуске exe файла, получившего после компилирования я увидел только как маргнуло окно и оно тут же закрылось. Странность заключается в том, что при просмотре работы текста программы в TD.exe у меня все вышло нормально и я увидел получившийся результат. Подскажите с чем это может быть связанно?
Текст программы:
Код:
model	small
.data
V1 dw 1432
V2 dw 40 DUP(?)
.code
;--------------------------------инициализация сегментов
mov ax,@data
mov ds,ax
mov si,0
mov di,0

;--------------------------------Тело программы
;--------------------------------Разбитие числа по байтам
mov ax,V1[si] ;
mov bx,10 ;
mov cx,4 ;
next:
div bx ;
mov V2[si],dx ;
inc si ;
inc si ;
mov dx,0 ;
loop next ;
;--------------------------------Вывод числа
mov cx,4 ;
next2:
mov ax,V2[di] ;
add ax,30h ;
mov dx,ax ;
mov ah,2h ;
int 21h ;
inc di ;
inc di ;
loop next2 ;
;--------------------------------Что бы не закрывалась
mov ah,0 ;ждем нажатия
int 16h
;--------------------------------
mov ax,4c00h
int 21h
end
Записан
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 25-10-2011 17:18 » 

выполнил программу - закрыл. потому и мелькнуло.
опробуй запустить в командной строке (cmd)
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
StaCk
Новенький

ru
Offline Offline

« Ответ #2 : 25-10-2011 17:33 » 

А разве код в самом конце программы
Код:
mov ah,0				
int 16h
не должно сделать прерывания до нажания любой клавиши?
Записан
DneprSMV
Помогающий

kz
Offline Offline
Пол: Мужской

« Ответ #3 : 26-10-2011 17:33 » new

StaCk,
Не знаю, что такое Int 16 / 0 - а ты не написал.
Если ввод с клавиатуры - возможно это ввод без ожидания, и его надо опрашивать в цикле.
Если в ожиданеим - возможно надо делать ресет ф-ии перед вызовом, тк там в буфере может сидеть CR от вызова твоей программы.
также как отличаются ф-ии getch() kbhit()
Лучше сразу увязывай ASM+C - алгоритм в асме, а ввод-вывод удобнее делать в С
Записан

"Не слушайте никаких советов, в том числе и этот" (Сократ ?)
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines