Форум программистов, компьютерный форум, киберфорум
Assembler: DOS/Real Mode/16-bits
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
 Аватар для woklex
8 / 0 / 0
Регистрация: 30.11.2012
Сообщений: 32

Резидент. Борьба с мусором

18.03.2013, 01:15. Показов 1132. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пишу свой резидент... У меня к примеру выводится дамп по ctrl\s, у кого-то по этой комбинации содержимое диска С. Но при этом когда ты нажимаешь комбинацию ctrl\s, то после нажатия Enter, пишел "illegal command !!!!!!". Кол-во "!!" в зависимости от того, сколько раз нажата клавиша ctrl\s. Ну надеюсь кто-то сталкивался с подобным, хотя звучит запутано C этим можно что-то сделать? Просто у меня и так примут, но стало интересно можно ли такое решить, а то как-то некрасиво. Гугл не помогает, у самого мысли на этот счет туманные.

Т.е сейчас я нажал ctrl\s к примеру один раз(При этом выводится содержание диска, а в конце списка"!!"), потом нажимаю Enter, и пишет "illegal command !!". А хочется чтобы он молча вернулся в командную строку. Конечно можно нажать esc, тогда перед !!, будет "\", и возвращение будет "молча". Но может есть другой способ?

Если не понятно, то могу прикрепить код однокурсника, или исполняемый файл.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.03.2013, 01:15
Ответы с готовыми решениями:

Резидент, который устанавливает пароль на каталог, указанный в командной строке
Здравствуйте! Плиз, помогите разобраться с прогой: нужно составить резидентную прогу, которая устанавливает на каталог, указанный в...

Резидент
Сейчас разбираюсь с резидентом, вот код .286 CSEG segment assume cs:CSEG, ds:CSEG, es:CSEG, ss:CSEG org 100h Start: ...

Резидент глючит
Почему резидент не работает? Я написал код: cli mov ax,0 mov es,ax mov ax,seg intproc mov bx,offset intproc xchg bx,ES: xchg...

8
 Аватар для arzrav
73 / 74 / 4
Регистрация: 25.09.2012
Сообщений: 211
18.03.2013, 17:40
woklex, Не спрашивайте - прикрепляйте сразу. И еще желательно обозначить проблемные куски кода.
0
 Аватар для woklex
8 / 0 / 0
Регистрация: 30.11.2012
Сообщений: 32
18.03.2013, 19:17  [ТС]
К примеру программа моего одногрупника. Возможно код не самый лучший, но дело именно в символах, это у всех так. Возможно проблема даже не решаема, хотя я думаю что можно добавлять "/" после "!!". Тогда будет без ошибок "illegal command", но не знаю оптимальный ли это вариант. Вообщем лучше один раз увидеть, скомпилировав, и нажав ctrl\s во время выполнения программы.
Вложения
Тип файла: txt tasm.txt (2.3 Кб, 13 просмотров)
0
 Аватар для arzrav
73 / 74 / 4
Регистрация: 25.09.2012
Сообщений: 211
18.03.2013, 21:29
woklex, У меня нет тасма, скиньте executable файл.
0
 Аватар для woklex
8 / 0 / 0
Регистрация: 30.11.2012
Сообщений: 32
19.03.2013, 00:13  [ТС]
exe файл
0
 Аватар для Ethereal
6773 / 2741 / 385
Регистрация: 17.02.2013
Сообщений: 4,048
19.03.2013, 05:42
Цитата Сообщение от woklex Посмотреть сообщение
К примеру программа моего одногрупника. Возможно код не самый лучший, но дело именно в символах, это у всех так. Возможно проблема даже не решаема, хотя я думаю что можно добавлять "/" после "!!". Тогда будет без ошибок "illegal command", но не знаю оптимальный ли это вариант. Вообщем лучше один раз увидеть, скомпилировав, и нажав ctrl\s во время выполнения программы.
А как можно нажать Ctrl-S во время исполнения программы твоего одногрупника, ежели она после запуска немедля завершается ?

И, кстати, она будет работать ровно до тех пор, пока после ее запуска не будет запущена следующая программа. При этом запуске произойдет крах MS-DOS. А все потому, что при постановке кода в резидент он этот код отсекает не по его концу, а по началу. Он в INT 27h передает адрес точки входа в обработчик прерывания, а надо адрес отсечения резидентного кода - адрес, который разделяет код, что должен остаться резидентным и что не должен. Ясно, что его обработчик прерывания проживет ровно до тех пор пока поверх него не будет навален код следующей запускаемой программы.

Кстати, некоторые места программы твоего одногрупника можно в мраморе высекать. Так встречается такая ахинея, что не понятно где вы такую траву берете.
0
 Аватар для arzrav
73 / 74 / 4
Регистрация: 25.09.2012
Сообщений: 211
19.03.2013, 08:25
Трава что надо, это точно. У меня после запуска из командной строки программа уходит в бесконечный цикл без шансов на выход. Сколько я на esc и enter ни жал в соответствии с первым постом - выхода не добился. Кстати, означенных выше "!!!!!" и "/" я тоже не заметил. Только вот следующее:
☻Й☻Ц☻г☻░☻╜☻╩☻╫☻ф☻ .☻;☻H☻U☻b☻o☻|☻Й☻Ц☻г☻░☻╜☻╩☻╫☻ф☻ INTEL
Не знаю что это, но на содержание диска c: не похоже.
0
 Аватар для woklex
8 / 0 / 0
Регистрация: 30.11.2012
Сообщений: 32
19.03.2013, 22:32  [ТС]
Хм. У меня в досбокс запускается. В принципе это уже сданная и защищенная работа. Ну вот тогда к примеру скрин этой проги.

http://dl.dropbox.com/u/207573... 9%3A05.png

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

http://dl.dropbox.com/u/2075731/VIDEO.EXE

Может у меня более правильно будет в итоге, потому как я примеры беру из "Ассемблер - это просто" и из нета. Изначально хотел чужое под свою задачу сделать, но понял что легче писать с нуля. Наверно получится ужасно, если интересен мой результат, то кину в четверг свой результат.
0
 Аватар для Ethereal
6773 / 2741 / 385
Регистрация: 17.02.2013
Сообщений: 4,048
19.03.2013, 23:08
Ты спрашиваешь почему у тебя прога глючит. Тебе говорят где ошибка.
Ты возражаешь - но в досбокс она ведь запускается.
Определись уже - она запускается и глючит или запускается и работает ?

Покажи преподавателю вот это :
Code
1
2
3
4
5
6
7
8
    mov ax, 2516h
    mov dx, seg custom
    mov ds, dx
    mov dx, offset custom
    int 21h 
    sti 
    mov ax, 4C01h
    int 27h
и спроси правильное ли значение DX передается в INT 27h ? Если нам не веришь.

Я уже не говорю о том, что твоя прога начинает работу с исполнения целой кучи
0000 add [bx+si],al
0000 add [bx+si],al
0000 add [bx+si],al
0000 add [bx+si],al
0000 add [bx+si],al
0000 add [bx+si],al
...
и я не уверен, что при старте программы si имеет какое-то определенное значение.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.03.2013, 23:08
Помогаю со студенческими работами здесь

Резидент не создает файл
Здравствуйте! Вот код резидента. Проблема в том, что резидент по нажатию F12 не создает файл. CODE SEGMENT ASSUME CS:CODE,...

Резидент, который при ctrl+s записывает информацию с экрана в файл
Приветствую! Необходимо написать резидент, который при ctrl+s записывает информацию с экрана в файл, по ctrl+x программа выгружается,...

Резидент, который выводит на экран время работы запускаемых программ
Задание:На языке ассемблер написать резидентную программу, которая бы обрабатывала int 21 h , функцию запуска программы (любой). При этом...

Резидент (приведение к верх. регистру)
Здравствуйте! Тут программа - резидент для приведения определенных рус. букв к верх. регистру. Причем главная функция приведения рус....

Не получается удалить резидент из памяти
Вообщем вот код: .286 CSEG segment assume cs:CSEG, ds:CSEG, es:CSEG, ss:CSEG org 100h Start: jmp Init Int_19h_proc proc ...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru