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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.05.2011, 16:48   #1
DreamMan
Новичок
Джуниор
 
Регистрация: 05.05.2011
Сообщений: 2
По умолчанию Не понимаю причину ошибки(

Написать exe-программу, которая выдаст на экран вопрос "Are you OK?" и представит на выбор ответы:
Y) OK!
N)Bad.
В случаи ввода Y или y программа выдает строку - "I am glad", N или n - "So pitty". Если введена какая-нибудь буква - "Do not worry.Be happy."


Используя пример, я написала свою программу, только в конце убрала mov ah,4c00h
int 21h
, так как выдавало ошибку - Constant too large.
Пример, который в принципе от этой проги ни чем не отличается, работал без этих строк отлично, с моей прогаммой возникли проблемы. Все запускается нормально, только при выборе буквы выдает бесконечный поток символов(


Код:
model small
.data
TimePrompt DB'Are you OK?-[Y/N]$'
tm DB 255,255,255 dup("$")
GoodMorning LABEL BYTE
     DB 13,10,'I am glad!',13,10,'$'
GoodAfternoon LABEL BYTE
     DB 13,10,'So pitty!',13,10,'$'
.code
mov ax,@Data
mov ds,ax
mov dx,offset TimePrompt
mov ah,09h
int 21h

mov dx,offset tm
mov ah,0ah
int 21h

mov al,[tm+2]
cmp al,'Y'
jz IsAfternoon
cmp al,'y'
jnz IsMorning
IsAfternoon:
mov dx,OFFSET GoodAfternoon
jmp DisplayGreeting
IsMorning:

mov dx,OFFSET GoodMorning
DisplayGreeting:
mov ah,09h
int 21h
End

Последний раз редактировалось rpy3uH; 05.05.2011 в 16:57.
DreamMan вне форума Ответить с цитированием
Старый 05.05.2011, 16:59   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

верните на место операторы нормального завершения программы (это то, что Вы выкинули!)
так:
Код:
MOV AH,4CH ;Операторы завершения программы
INT 21H
или так:
Код:
mov ax,4c00h
int 21h

p.s. остальной Ваш код я не смотрел..
Serge_Bliznykov вне форума Ответить с цитированием
Старый 05.05.2011, 17:05   #3
DreamMan
Новичок
Джуниор
 
Регистрация: 05.05.2011
Сообщений: 2
По умолчанию

Спасибо)) Используя это MOV AH,4CH INT 21H - сработало))
DreamMan вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найдите причину не работоспособности программы Drago56 Общие вопросы C/C++ 14 17.12.2010 15:01
Найдите причину не работоспособнности программы Drago56 Общие вопросы C/C++ 1 16.12.2010 15:44
Ищу причину ошибки: Error in loading DLL, она же Error 48. hozpraktik Microsoft Office Excel 1 19.11.2009 12:39
не вижу причину ошибки k8ghost Помощь студентам 5 15.06.2008 15:04
помогите найти причину ошибки! НиКС БД в Delphi 3 10.05.2007 15:55