Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите найти ошибку в коде 
:(
    Опции темы
Alenka1993
Дата 8.3.2013, 17:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 2.7.2012

Репутация: нет
Всего: нет



Код

;ввод цифры от 0 до 9

stack_seg segment para stack
     db 256 dup(?)
stack_seg ends

data_seg segment para public
     message db 'Please enter simvol: $'
     message_Invalid_Number db 'Comleted! $'
     good_luck_message db 'Your number is: '
data_seg ends

code_seg segment para public


assume cs:code_seg, ds:data_seg, ss:stack_seg
GetNextChar proc
     mov ah,1                         ;чтение символа из стандартного ввода
     int 21h                          ;символ в al
     ret
GetNextChar endp

start: 

     mov ax, data_seg               ;заносим адрес сегмента данных в регистр ах
     mov ds, ax                     ;ах в ds
     mov ax, stack_seg
     mov ss, ax
     
     mov ah, 9
     lea dx, message                 
     int 21h                        ;вывод сообщения на экран
     
     xor si ,si                     ;подготовка индексного регистра si

     call GetNextChar               ;ввод символа в al
     .while si>9
     call GetNextChar               ;ввод очередного символа в al
     
     mov ah,9
     lea dx, good_luck_message
     int 21h                       ; вывод сообщения good luck_message на экран
     jmp exit_prog

     
exit_prog:
     call GetNextChar             ;задержка до ввода любого символа
     mov ax,4c00h                  ;пересыпка 4с00п.в регистр ах
     int 21h                       ;вызов прерывания с номером 21h
     
code_seg ends
end start


.asm(37): error A2105: Expected: instruction or directive

Как правильно записывается цикл с while подскажите пожалуйста!!

PM MAIL   Вверх
ФедосеевПавел
Дата 9.3.2013, 06:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 291
Регистрация: 7.2.2009

Репутация: 4
Всего: 10



О макросах в masm - см. по ссылке.

Могу преположить, что это более старая версия masm, не знающая о while. К тому же в тексте не хватает ".endw".

Тут два решения.
1. Обойтись без макросов (while, if и т.п.)
2. Взять более новую версию masm. Например, отсюда. После этого появятся другие проблемы. Некоторые из них рассмотрены в 1, 2 и 3. И ещё - masm32 запускается только под Windows.

Это сообщение отредактировал(а) ФедосеевПавел - 9.3.2013, 06:31
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm для начинающих"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm для начинающих | Следующая тема »


 




[ Время генерации скрипта: 0.0381 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.