Технический форум

Технический форум (http://www.tehnari.ru/)
-   Помощь студентам (http://www.tehnari.ru/f41/)
-   -   Выход из программы при наборе пароля (http://www.tehnari.ru/f41/t50348/)

surgutfred 12.04.2011 09:02

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

В лекции есть похожий пример - Выход из программы происходит лишь при одновременном нажатии клавиш 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

Defer 12.04.2011 12:50

Цитата:

как неправильный символ
Так оно и есть.
Код:

MOV АН,0
Например, в этой строке регистр AH написан русскими символами... Все остальное вызвано схожими ошибками.

surgutfred 13.04.2011 09:51

Цитата:

Сообщение от Defer (Сообщение 502564)
Так оно и есть.
Код:

MOV АН,0
Например, в этой строке регистр AH написан русскими символами... Все остальное вызвано схожими ошибками.

А как можно быстро "вычислить" русские символы?

AlexZir 14.04.2011 16:37

как вариант - перевести в другую кодовую таблицу :))

MrSTEP 15.04.2011 00:52

Если есть Punto Switcher, можно выделить нужный текст и нажать Shift+Break. Текст конвертнется в другую раскладку, там можно понять, насколько русский текст. Но это долго. Поди, быстрее будет перепечатать те операторы, на которые ругается комп.


Часовой пояс GMT +4, время: 16:31.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.