Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [ASM] Выход из программы при наборе пароля 
:(
    Опции темы
surgutfred
Дата 12.4.2011, 06:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Добрый день.
Задание такое:
Написать программу, которая блокирует систему до тех пор, пока на
       клавиатуре не будет нажата определенная комбинация клавиш 
       (пока пользователь не напишет пароль в строке).
           Обработчик прерывания: клавиатура

В лекции есть похожий пример - Выход из программы происходит лишь при одновременном нажатии клавиш CTRL, ALT, Fl0.:

Код

CODE SEGMENT  
 ASSUME CS:CODE
ORG 100H 
BEGIN: ;ждем нажатия клавиши
MOV АН,0
INT 16H
CMP AL,0
JNZ BEGIN    ;если код не расширенный - повторить
CMP АН,103     ;код одновременного нажатия Ctrl и F10
JZ  PROV
СМР АН,113   ;код одновременного нажатия Alt и F10
JZ  PROV
JMP SHORT BEGIN
PROV:    ;здесь проверяем биты состояний клавиш Ctrl и Alt
MOV AX,40Н
MOV ES,AX
TEST BYTE PTR ES:[17H],00000100В ;проверка слова состояния 
; клавиатуры на клавишу Ctrl
JZ  BEGIN
TEST BYTE PTR ES:[17H],00001000В    ;проверка слова состояния ;клавиатуры на клавишу Alt
JZ  BEGIN 
EXIT:
MOV AH,4CH
INT 21H 
CODE ENDS
END BEGIN


На лекции препод копировал из лекции в файл, компилировал и демонстрировал работу проги. Но у меня дома почему то не компилится, ошибки прут.
Типа такого:
ex.asm(5): error A2044: invalid character in file
ex.asm(9): error A2044: invalid character in file
ex.asm(11): error A2044: invalid character in file
ex.asm(11): error A2039: line too long
ex.asm(12): error A2044: invalid character in file
ex.asm(12): error A2039: line too long
ex.asm(13): error A2044: invalid character in file
ex.asm(13): error A2039: line too long
ex.asm(14): error A2044: invalid character in file
ex.asm(14): error A2039: line too long
и т.д.

Чего то не хватает? Я ошибки понимаю как неправильный символ и длинная строка, но ничего такого не вижу.
Помогите понять почему не компилится? Если поможете с написанием программы то же буду благодарен.

Файлы ассемблера у меня такие 
LINK.EXE
MASM.EXE
ML.EXE
PM MAIL   Вверх
iff
Дата 12.4.2011, 11:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Администратор
**


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

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



Цитата(surgutfred @  12.4.2011,  06:44 Найти цитируемый пост)
MASM.EXE

судя по коду, он написан для TASM, а не для MASM.

Я могу могу выполнить нужное вам задание, но не ясно:
Цитата(surgutfred @  12.4.2011,  06:44 Найти цитируемый пост)
нажата определенная комбинация клавиш 
       (пока пользователь не напишет пароль в строке)

Нужно ожидать нажатия комбинации клавишь или ожидать ввода строки(пароля)? Потому что комбинация клавиш это одновременное нажатие например Ctrl+Alt+F10, а ввод пароля это последовательный ввод по буквам слова, например "password".


--------------------
DOS... Синей пеленой экран заполнил чистый DOS 
Мышь... Стала вдруг квадратной, потеряла форму мышь... 
Я разбил окно, девяностопятое мастдайное окно, 
И поставил DOS, и тогда увидел: Это счастье, — вот оно.  
PM MAIL WWW   Вверх
surgutfred
Дата 13.4.2011, 07:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(iff @  12.4.2011,  11:10 Найти цитируемый пост)
судя по коду, он написан для TASM, а не для MASM

Тем не менее преподд демонстрировал на masm и в классе все работало, а у меня нет

Цитата(iff @  12.4.2011,  11:10 Найти цитируемый пост)
буквам слова, например "password". 


Именно так, ввод слова, а не комбинации клавиш

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


Администратор
**


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

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



surgutfred, от куда вы взяди код в электронном виде? кто печатал?
потому что некоторые символы латиницы были заменены кириллическими символами со схожем написание (например латинская би заманена на русскую вэ и т.д.)
После редактирования я откомпилировал код TASM 5.0 и он работает как надо.


--------------------
DOS... Синей пеленой экран заполнил чистый DOS 
Мышь... Стала вдруг квадратной, потеряла форму мышь... 
Я разбил окно, девяностопятое мастдайное окно, 
И поставил DOS, и тогда увидел: Это счастье, — вот оно.  
PM MAIL WWW   Вверх
surgutfred
Дата 14.4.2011, 05:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(iff @  13.4.2011,  13:06 Найти цитируемый пост)
откуда вы взяли код в электронном виде? 

Из лекции скопировал. Вопрос - как в листинге проверить по быстрому наличие кириллических символов? Есть способ или программа?

Это сообщение отредактировал(а) surgutfred - 14.4.2011, 05:13
PM MAIL   Вверх
iff
Дата 14.4.2011, 12:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Администратор
**


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

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



Цитата(surgutfred @  14.4.2011,  05:11 Найти цитируемый пост)
Есть способ или программа?

Вот как раз напишите программу для проверки  smile

Добавлено через 1 минуту и 7 секунд
Ну или возьмите редактор и поменяйте кодировку на DOS - латиница не изменится, а вот кирилица изменится на иероглифы.

Добавлено через 4 минуты и 37 секунд
Вот. Смотрите те места, где было написано AX изменились на иероглифы (т.е. там было написано не а-икс, а а-хэ) и т.д.

Присоединённый файл ( Кол-во скачиваний: 8 )
Присоединённый файл  _____1.JPG 52,95 Kb


--------------------
DOS... Синей пеленой экран заполнил чистый DOS 
Мышь... Стала вдруг квадратной, потеряла форму мышь... 
Я разбил окно, девяностопятое мастдайное окно, 
И поставил DOS, и тогда увидел: Это счастье, — вот оно.  
PM MAIL WWW   Вверх
iff
Дата 14.4.2011, 12:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Администратор
**


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

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



А на счёт самого задания? Вы, я так понял, хотите что-бы его выполненли за вас? - Я могу это сделать.

Присоединённый файл ( Кол-во скачиваний: 11 )
Присоединённый файл  _____1.JPG 52,95 Kb


--------------------
DOS... Синей пеленой экран заполнил чистый DOS 
Мышь... Стала вдруг квадратной, потеряла форму мышь... 
Я разбил окно, девяностопятое мастдайное окно, 
И поставил DOS, и тогда увидел: Это счастье, — вот оно.  
PM MAIL WWW   Вверх
surgutfred
Дата 18.4.2011, 08:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(iff @  14.4.2011,  12:55 Найти цитируемый пост)
Я могу это сделать

Я пока пробую сам ковыряться, только времени не хватает. Если поможешь не откажусь.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

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

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


 




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


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

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