Форум программистов, компьютерный форум, киберфорум
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
25 / 9 / 17
Регистрация: 22.12.2015
Сообщений: 2,097

Как запустить консольное приложение с моделью small?

19.10.2016, 01:10. Показов 2883. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Мне нужно,что бы консолька запустилась,запросила пароль и далее вывела сообщение о его правильности или не правильности.

Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
model small
stack 256
.data
match db 0ah,0dh,'PASSWORD IS OK','$'
failed db 0ah,0dh,'PASSWORD IS NOT CORRECT','$'
string1 db 07Fh,071h,06Dh,067h,060h,07Bh,064h,'$'
string2 db 10
string db 'Input PASSWORD:','$'
.code
assume ds:@data,es:@data
main:
mov ax,@data
mov ds,ax
mov es,ax
;выводим приглашение ко вводу пароля
mov ah,09h
lea dx,string
int 21h
 
;запрашиваем символы с клавиатуры
lea dx,string2-2
mov ah,0Ah
int 21h
 
;производим расшифровку пароля
mov si,0
mov cx,7
ll:
xor string1[si],34h
inc si
loop ll
 
;процедура проверки правельности пароля
cld
lea si,string1
lea di,string2
mov cx,7
cycl:
repe cmps string1,string2
jcxz equal ; если совподают
jne not_match
equal: ;если пароль верный
mov ah,09h
lea dx,match
int 21h
jmp exit
not_match: ;если пароль не верный
mov ah,09h
lea dx,failed
int 21h
jmp exit
 
jmp cycl
 
exit:
mov ax,4c00h
int 21h
end main
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.10.2016, 01:10
Ответы с готовыми решениями:

Qt creator как запустить консольное приложение
скачал IDE Qt creator. сделал проект с таким файлом main.cpp, собрал проект, запускаю и мне запускает его снизу в поле "Вывод...

Как запустить консольное приложение под Linux?
ДД. Нужна помощь. В линукс если создаем приложение, формы после компиляции все отлично, видим результат. А если создаем простую программу?...

Как запустить консольное приложение в фоновом режиме?
у меня такая проблема, мне надо, чтоб консольное приложение при запуске сворачивалось в трей, или чтоб не было открытого окна cmd,...

21
1719 / 568 / 187
Регистрация: 12.03.2016
Сообщений: 2,169
19.10.2016, 06:02
Для начала
Assembler
1
2
3
.model small
.stack 256
.386
1
1719 / 568 / 187
Регистрация: 12.03.2016
Сообщений: 2,169
19.10.2016, 07:21

компилировал в TASM
1
25 / 9 / 17
Регистрация: 22.12.2015
Сообщений: 2,097
19.10.2016, 12:22  [ТС]
Цитата Сообщение от мановар Посмотреть сообщение
компилировал в TASM
Расскажите, по шагам для новичка,как вы компилируете,какая ОС?
0
1719 / 568 / 187
Регистрация: 12.03.2016
Сообщений: 2,169
19.10.2016, 12:47
Отличный учебник от Mikl https://www.cyberforum.ru/asse... 05284.html
глава 4 - https://www.cyberforum.ru/post5323068.html
Учебник В.И.Юров - Assembler. 2008 г. Питер. стр. - 129. (Есть Tasm и Masm).
В данном вопросе лучше разобраться самому (не будешь же по каждой ерунде темы создавать).
Если уж что то не будет получаться, спрашивай.
0
25 / 9 / 17
Регистрация: 22.12.2015
Сообщений: 2,097
19.10.2016, 13:02  [ТС]
Цитата Сообщение от мановар Посмотреть сообщение
глава 4 - Электронный учебник
tasm32 prog.asm
все ок.

не линкуеться
0
1719 / 568 / 187
Регистрация: 12.03.2016
Сообщений: 2,169
19.10.2016, 13:07
Ты берешь для 32 разрядного, а программа в 16. Бери просто tasm.exe и tlink.exe
вот батник которым компилирую я.
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
@echo off
tasm /z/zi/n otl2,otl2,otl2
if errorlevel 1 goto err
tlink /x otl2,otl2
goto end
:err
echo Error transl!
goto fin
:end
echo Exit transl
:fin
echo.
0
25 / 9 / 17
Регистрация: 22.12.2015
Сообщений: 2,097
19.10.2016, 13:14  [ТС]
у меня виндовс 8.1 она не дает запуститься 16 разрядным.Как тогда откомпилировать и запустить?
Как вашим батником пользоваться?
0
25 / 9 / 17
Регистрация: 22.12.2015
Сообщений: 2,097
19.10.2016, 13:18  [ТС]
0
1719 / 568 / 187
Регистрация: 12.03.2016
Сообщений: 2,169
19.10.2016, 13:26
scherbakovss201, у меня винда 7, поэтому с такими проблемами еще не сталкивался. Попробуй установить DOSBox и запуститься в нем.
Компилятор под Windows 8.1
0
25 / 9 / 17
Регистрация: 22.12.2015
Сообщений: 2,097
19.10.2016, 13:31  [ТС]
У меня установлена dosbox 0.74
Что в прописать в конфирационном файле в самом конце для монтировки диска?
Почему cmd.exe не видит tlink32.exe,а когда его ложешь в папку с prog.asm то видит?
Tasm32 cmd.exe видит и он не в папке с prog.asm
0
1719 / 568 / 187
Регистрация: 12.03.2016
Сообщений: 2,169
19.10.2016, 13:47

батник запускает

@echo off
keyrus.com
vc.com

после чего получаем


и спокойно работаешь.
0
25 / 9 / 17
Регистрация: 22.12.2015
Сообщений: 2,097
19.10.2016, 16:32  [ТС]
Я положил батник в папку с prog.asm запустил его он на долю секунды запустился и закрылся.
Вот прописал в конирационном файле досбокса 074


0
Прощай, Мир!
 Аватар для proc3nt
1673 / 831 / 253
Регистрация: 26.05.2012
Сообщений: 3,056
19.10.2016, 21:11
Цитата Сообщение от scherbakovss201 Посмотреть сообщение
string1 db 07Fh,071h,06Dh,067h,060h,07Bh,064h,'$'
если шестнадцатеричное число начинается с буквы, то перед ним нужно поставить ноль, иначе ассемблер подумает, что это не число, а имя переменной. Например, число FF в исходном коде на ассемблере должно быть записано как 0FFh. если шестнадцатеричное число начинается с цифры, то в этом нет нужды
Assembler
1
string1 db 7Fh,71h,6Dh,67h,60h,7Bh,64h,'$'
Цитата Сообщение от scherbakovss201 Посмотреть сообщение
string2 db 10
надо бы увеличить количество допустимых элементов для вводимого пароля
Assembler
1
string2 db 10,0,10 dup(?)
Цитата Сообщение от scherbakovss201 Посмотреть сообщение
lea dx,string2-2
зачем выходить слева за границы вводимого пароля. нам бы начало
Assembler
1
lea dx,string2
Цитата Сообщение от scherbakovss201 Посмотреть сообщение
mov cx,7
cycl:
прежде, чем производить побайтовое сравнение настоящего и введенного паролей нужно сравнить их длины. если их длины не равны, то и побайтовое сравнение не требуется. введенный пароль будет ложным. если этого не сделать, то может произойти такая ситуация, что первые семь символов совпадут. и программа выведет сообщение, что пароль верный, хотя на самом деле это не так. но поскольку длина введенного пароля больше семи символов, то эти символы не учтутся при сравнении.
Assembler
1
2
3
mov al,passlen
cmp al,byte ptr [string2+1]
jne not_match
Цитата Сообщение от scherbakovss201 Посмотреть сообщение
cycl:
эта метка в принципе здесь не нужна. также как и эта
Цитата Сообщение от scherbakovss201 Посмотреть сообщение
jmp cycl
Цитата Сообщение от scherbakovss201 Посмотреть сообщение
repe cmps string1,string2
указывать операнды в цепочечной команде сравнения не требуется. а вот указать, что будет производится побайтовое сравнение как раз таки надо бы
Assembler
1
repe cmpsb
вобщем вот так должно получиться
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
model small
.386
 
.data
match db 0ah,0dh,'PASSWORD IS OK$'
failed db 0ah,0dh,'PASSWORD IS NOT CORRECT$'
string1 db 7Fh,71h,6Dh,67h,60h,7Bh,64h
passlen equ $-string1
string2 db 10,0,10 dup(?)
string db 'INPUT PASSWORD:$'
 
.stack 
db 256 dup(?)
 
.code
main:
mov ax,@data
mov ds,ax
mov es,ax
 
;выводим приглашение ко вводу пароля
mov ah,09h
lea dx,string
int 21h
 
;запрашиваем символы с клавиатуры
mov ah,0Ah
lea dx,string2
int 21h
 
;производим расшифровку пароля
mov si,0
mov cx,7
ll:
    xor string1[si],34h
    inc si
loop ll
 
mov al,passlen
cmp al,byte ptr [string2+1]
jne not_match
 
;процедура проверки правильности пароля
cld
lea si,string1
lea di,string2+2
mov cx,7
repe cmpsb
jcxz equal 
jne not_match
 
equal: 
mov ah,09h
lea dx,match
int 21h
 
jmp exit
 
not_match:
mov ah,09h
lea dx,failed
int 21h
 
exit:
mov ax,4C00h
int 21h
end main
1
25 / 9 / 17
Регистрация: 22.12.2015
Сообщений: 2,097
19.10.2016, 22:17  [ТС]
Цитата Сообщение от proc3nt Посмотреть сообщение
string1 db 07Fh,071h,06Dh,067h,060h,07Bh,064h,'$'
Это не число,а закодированый пароль.Догадались какое слово?)

Добавлено через 3 минуты
и все таки ка мне откомпилировать и отлинковать,ведь виндовс 8 не допускает 16х разрядных приложений.
Пожалуйста дайте инструкцию для чайника.
tasm p1.asm
tlink p1.obj
0
1719 / 568 / 187
Регистрация: 12.03.2016
Сообщений: 2,169
19.10.2016, 22:54
proc3nt, спасибо, кое что видел, что надо исправить, но и пропустил не мало. Но как еще объяснить на счет компиляции не знаю.
0
Прощай, Мир!
 Аватар для proc3nt
1673 / 831 / 253
Регистрация: 26.05.2012
Сообщений: 3,056
19.10.2016, 23:02
Лучший ответ Сообщение было отмечено scherbakovss201 как решение

Решение

Цитата Сообщение от scherbakovss201 Посмотреть сообщение
ка мне откомпилировать и отлинковать
Цитата Сообщение от scherbakovss201 Посмотреть сообщение
ведь виндовс 8
используй GUI Turbo Assembler - A 64bit MuItilingual IDE for Assembly Language
1
Эксперт Hardware
Эксперт Hardware
 Аватар для R71MT
6213 / 2447 / 403
Регистрация: 29.07.2014
Сообщений: 3,178
Записей в блоге: 4
19.10.2016, 23:06
Цитата Сообщение от scherbakovss201 Посмотреть сообщение
Догадались какое слово?)

Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
; fasm code...
org 100h
jmp start
 
str1    db   'Pass: '
        db   07Fh xor 34h, 071h xor 34h
        db   06Dh xor 34h, 067h xor 34h
        db   060h xor 34h, 07Bh xor 34h, 064h xor 34h,'$'
 
start: mov   ah,9
       mov   dx,str1
       int   21h
 
@exit: xor   ax,ax
       int   16h
       int   20h
Изображения
 
1
1719 / 568 / 187
Регистрация: 12.03.2016
Сообщений: 2,169
20.10.2016, 05:30
Первоначальная версия тоже работает. Посижу в отладчике, поразбираюсь.
Может пригодится http://www.techbrown.com/insta... nd-7.shtml
1
25 / 9 / 17
Регистрация: 22.12.2015
Сообщений: 2,097
20.10.2016, 21:13  [ТС]
Цитата Сообщение от proc3nt Посмотреть сообщение
используй GUI Turbo Assembler - A 64bit MuItilingual IDE for Assembly Language

Ура запустилось на виндовс 8.1.
В какой программе его отладить(что бы пароль найти)?
А есть
GUI Macro Assembler ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.10.2016, 21:13
Помогаю со студенческими работами здесь

Как запустить консольное приложение с ключами в PowerShell ISE?
Пытаюсь запустить приложение wincontig (дефрагментатор). Вот такой код в скрипте: $disk = "F:\" $keys = "/NOGUI...

Как запустить консольное приложение Java не из среды разработки, а из файла
Доброго времени суток! Как запустить десктопное приложение Java (с формами и граф интерфейсом) не из среды разработки, а с помощью...

Как запустить консольное приложение через CreateProcess и спрятать его окно?
Т.е. как запустить досовский exe-шник через CreateProcess и чтобы его окна не было видно?

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

Как запустить консольное приложение .exe из командной строки, чтобы оно не закрывалось после компиляции?
если использовать команду start, то приложение закрывается после запуска.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru