Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: программирование на языке Assembler


Информационный Канал Subscribe.Ru

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Assembler

Выпуск № 103
от 04.04.2005, 16:50

Администратор:Калашников О.А.
В номере:Вопросов: 8, Ответов: 17


Вопрос № 18958: Ув эксперты! Скачал MASM 6.12,установил,во -первых,не открываются hlp-файлы,пишет,что это DOS`овский файл.Пробовал и в DOS`e - ерунда.Собственно,если бы открылся hlp-файл,может быть и вопрос не нужно было бы задавать,а так придется.Пытаюсь коппил...
Вопрос № 18962: Здрасти! Подскажите плиз, как записать строку 'aaaa' в файл 'report.txt' ...
Вопрос № 18972: Здравствуйте. Вчера был получен от вас ответ на мой вопрос № 18921. Спасибо. Я сделал максимум возможного по уровню моего знания ассемблера. Но остаются неслько ошибок при компиляции. Может кто-то поможет. Спасибо. Вот список ошибок: Assembli...
Вопрос № 18975: Здравствуйте, господа эксперты! Кто в Fasm под Win32 подскажите, можно ли там всякие кнопки и тп. окна выводить в OVERLAPPEDWINDOW, или только (как в EXAMPLES) использовать DialogBox? Спасибо!...
Вопрос № 18980: Здравствуйте! Вопрос, наверное не по теме... В 28 выпуски рассылки Ассемблер? это... есть ссылка на рассылку 'незкоуровневое программирование для дZенствующих':). Мне нужен архив рассылки, на сайте смотрел, но там вроде нет. Может кто - нить на н...
Вопрос № 18990: Здравствуйте,уважаемые эксперты!!! У меня такой вопрос. Вот у нас есть в ОС файл (DOS конечно же) есть command.com,где мы вводим команды, параметры и он их выполняет, и мне кажется что он напоминает мне бейсик где мы тоже вводим какой нибудь ...
Вопрос № 18991: Здравствуйте! В дополнение к вопросу 18891 (в частности единственному пока ответу Bob Johnson). Постояноо очищать клипбоард - это тоже выход, но надо применять запрет на чтение/запись в клипбоард выборочно (т.е. для определенных приложений). ...
Вопрос № 18996: Здравствуйте!!! Спасибо вам за внимание. Я по поводу пароля на exe и com файл. Можете привисти пару примеров....

Вопрос № 18958
Ув эксперты!
Скачал MASM 6.12,установил,во -первых,не открываются hlp-файлы,пишет,что это DOS`овский файл.Пробовал и в DOS`e - ерунда.Собственно,если бы открылся hlp-файл,может быть и вопрос не нужно было бы задавать,а так придется.Пытаюсь коппилировать asm-файл (досовский) - компиляет нормально,а линкер пишет 'The system cannot execute the specified program'.Имеется ввиду obj - файл.Что за муть?
Копмпиляю и линкую так:
cl !!!.asm
link !!!.obj
Отправлен: 29.03.2005, 18:30
Вопрос задал: Ling (статус: Посетитель)
Всего ответов отправлено: 2

Отвечает: Вiктор
Здравствуйте, Ling!
насчёт hlp-файлов: у них особый формат. Поищите чем бы их открыть из программ, поставляемых в пакете масм (может PBW, может ещё что...)
Попробуйте через PBW->справка->выбор файла справки или что-то в этом духе.
вы уверены что 'The system cannot execute the specified program' - именно сообщение линкера? обычно линкер ругается по-другому. Может система не может запустить линкер?
попробуйте запустить линкер без параметров, прописать полный путь к линкеру.
запускается ли он у вас вообще?
может линкеру ключи надо ? (не помню уже...)
если не поможет - спростие ещё раз, опишите подробнее ваши действия
и ещё от меня лично: я бы не советовал использовать знаки типа восклицательного знака в именах файлов. может они и нормальные, но на мой взгляд всё-таки английские буквы надёжнее.
Ответ отправил: Вiктор (статус: 3-ий класс)
Отправлен: 29.03.2005, 21:41

Отвечает: Котиев Зураб
Здравствуйте, Ling!
hlp файлы открываются утилитой Qh которая валяется в каталоге bin .Установи правильно переменную окружения path и все по идее должно работать.Или кинь на крайняк все файлы в один каталог
Ответ отправил: Котиев Зураб (статус: 3-ий класс)
Отправлен: 30.03.2005, 10:04


Вопрос № 18962
Здрасти!
Подскажите плиз, как записать строку 'aaaa'
в файл 'report.txt'

Приложение:

Отправлен: 29.03.2005, 20:26
Вопрос задал: Guran (статус: Посетитель)
Всего ответов отправлено: 2

Отвечает: Евгений Иванов
Здравствуйте, Guran!
в CX длина записываемых данных.
DS:DX - буфер
BX - номерок файла.
Ответ отправил: Евгений Иванов (статус: Профессор)
Отправлен: 29.03.2005, 21:31

Отвечает: Voituk Alexander
Здравствуйте, Guran!
в общем ты все правильно делаешь я тебе допишу в твой текст
CSEG segment
assume cs:CSEG, ds:CSEG, es:CSEG, ss:CSEG
org 100h
Begin:
mov dx,offset File_name
mov ax,3D02h
int 21h
mov Handle,ax
;//////////////////////////////////
lea dx,string ;это и есть буфер
;mov si,offset string ;Здесь надо получать длину строки? ЭТО НЕ НАДО
;А делать буфер для записи?
mov bx,Handle
mov cx,4 ;это и есть длина
mov ah,40h ;Кол-во запис-х байт?
int 21h
mov ah,3Eh
mov bx,handle
int 21h
;////////////////////
int 20h ;а это выход из проги :)
Handle dw 0
File_name db 'report.txt',0
string db 'aaaa',0
CSEG ends
end Begin
Ответ отправил: Voituk Alexander (статус: 6-ой класс)
Отправлен: 30.03.2005, 14:44


Вопрос № 18972
Здравствуйте. Вчера был получен от вас ответ на мой вопрос № 18921. Спасибо. Я сделал максимум возможного по уровню моего знания ассемблера. Но остаются неслько ошибок при компиляции. Может кто-то поможет. Спасибо.
Вот список ошибок:
Assembling file: zad51.asm
*Warning* zad51.asm(24) ":" operator ignored
**Error** zad51.asm(24) Operand types do not match
*Warning* zad51.asm(79) ":" operator ignored
**Error** zad51.asm(79) Operand types do not match
*Warning* zad51.asm(88) ":" operator ignored
Error messages: 2
Warning messages: 3
Passes: 1
Remaining memory: 451k

Приложение:

Отправлен: 29.03.2005, 21:53
Вопрос задал: MMM72 (статус: Посетитель)
Всего ответов отправлено: 2

Отвечает: mvp
Здравствуйте, MMM72!
24, 79: вы сравниваете слово с байтом. Нужно писать cmp byte ptr es:[di], al
88: это предупреждение (warning), которое может и не быть ошибкой, т. е. можно запустить программу с warning'ами.
Не знаю, что компилятору не понравилось в строчке mov ax, [es:bx], но я предпочитаю подобные конструкции писать в виде es:[bx], а не [es:bx]. Можно например попытаться написать mov ax, word ptr es:[bx]
Ответ отправил: mvp (статус: 2-ой класс)
Отправлен: 29.03.2005, 22:48

Отвечает: Евгений Иванов
Здравствуйте, MMM72!
cmp [byte ptr es:di],al
cmp es:[di],al
cmp [es:di],al
cmp [es:di],byte ptr al
cmp byte ptr [es:di],al
удачи!
Ответ отправил: Евгений Иванов (статус: Профессор)
Отправлен: 30.03.2005, 05:46


Вопрос № 18975
Здравствуйте, господа эксперты!
Кто в Fasm под Win32 подскажите, можно ли там всякие кнопки и тп. окна выводить
в OVERLAPPEDWINDOW, или только (как в EXAMPLES) использовать DialogBox?
Спасибо!
Отправлен: 30.03.2005, 01:00
Вопрос задал: limon23 (статус: Посетитель)
Всего ответов отправлено: 3

Отвечает: Котиев Зураб
Здравствуйте, limon23!
о ассемблера здесь ничего не зависит просто используй CreateWindowEx
Ответ отправил: Котиев Зураб (статус: 3-ий класс)
Отправлен: 30.03.2005, 09:13

Отвечает: Евгений Иванов
Здравствуйте, limon23!
в окнах можно создавать любые другие дочерние окна.
и FASM здесь ни при чём.
Удачи!
Ответ отправил: Евгений Иванов (статус: Профессор)
Отправлен: 30.03.2005, 17:39

Отвечает: Bob Johnson
Здравствуйте, limon23!
Просто попробуй функцию CreateWindowEx :)

* EMan2.0: ---===*** Debug mode ***===---

Ответ отправил: Bob Johnson (статус: Академик)
Отправлен: 01.04.2005, 22:44


Вопрос № 18980
Здравствуйте!
Вопрос, наверное не по теме... В 28 выпуски рассылки Ассемблер? это... есть ссылка на рассылку 'незкоуровневое программирование для дZенствующих':). Мне нужен архив рассылки, на сайте смотрел, но там вроде нет. Может кто - нить на неё подписывался если вышелте что есть буду багодарен.
Заранее спасибо.
Отправлен: 30.03.2005, 01:56
Вопрос задал: Rivisor (статус: Посетитель)
Всего ответов отправлено: 1

Отвечает: Котиев Зураб
Здравствуйте, Rivisor!
тебе сюды
http://www.wasm.ru/publist.php?list=22
Ответ отправил: Котиев Зураб (статус: 3-ий класс)
Отправлен: 30.03.2005, 09:11
Оценка за ответ: 5
Комментарий оценки:
СПАСИБО


Вопрос № 18990
Здравствуйте,уважаемые эксперты!!!
У меня такой вопрос.
Вот у нас есть в ОС файл (DOS конечно же) есть command.com,где мы вводим команды, параметры и он их выполняет, и мне кажется что он напоминает мне бейсик где мы тоже вводим какой нибудь оператор и при компиляции он выполняется.
Так вот можно ли сделать свой компилятор как вот я объяснил?
Если да то привидите пример.
А если нет то скажите почему и желательно покажите простенький компилятор(код лучше будет).
Спасибо всем кто ответит!!!!
Отправлен: 30.03.2005, 12:01
Вопрос задал: newinfo2005 (статус: 1-ый класс)
Всего ответов отправлено: 4

Отвечает: DSota
Здравствуйте, newinfo2005!
Для ДОС была такая программа - GW-basic.exe. Только это не компилятор - а интерпретатор команд - то есть вводишь команду - он ее сразу выполняет.
Ее и сейчас поддерживают на http://www.xs4all.nl/~hwiegman/gwbasic.html
http://www.geocities.com/KindlyRat/GWBASIC.html.
А интерпретатор - он многими описан, есть много примеров программ- компиляторов на C... На ассемблере правда, не встречал...
Ответ отправил: DSota (статус: Студент)
Отправлен: 30.03.2005, 13:24
Оценка за ответ: 5
Комментарий оценки:
Спасибо!!!

Отвечает: Voituk Alexander
Здравствуйте, newinfo2005!
Ну, во-первых ты немного ошибаешься. Command.com и Васик - это не компиляторы. Это интерпретаторы. А это нечто другое. И написать свой интерпретатор намного проще. Была даже 100 лет назад книга оп программированию на С (к сожалению не помню названия) так там был пример интерпретатора Васик.
А компилятор - это очень сложная штука. Его за 5 минут не напишешь, даже простенький. Написанию компиляторов посвящены целые книги. А тем более на ассемблере. Ты просто погрязнешь в коде.
Ответ отправил: Voituk Alexander (статус: 6-ой класс)
Отправлен: 30.03.2005, 13:51
Оценка за ответ: 5
Комментарий оценки:
Тоже спасибо!!!

Отвечает: Котиев Зураб
Здравствуйте, newinfo2005!
вот книга про которую говорил Voituk Alexander http://djs9.agava.net/bookz/comp/shildtgerb01.rar
если хошь код компилятора хотя он явно не простой то тебе сюда
http://flatassembler.net
там один из лучших ассемблеров то бишь fasm .
можешь заглянуть сюда
http://webster.cs.ucr.edu/
Ответ отправил: Котиев Зураб (статус: 3-ий класс)
Отправлен: 30.03.2005, 16:02
Оценка за ответ: 4
Комментарий оценки:
Я проверил всё - это ,но про книгу про которую говорил Voituk Alexander открывается под неизвестной программой , а другие редакторы не понимают.Зашёл на сайт http://flatassembler.net
асм не идёт, хотя есть у меня на диске такой.

Отвечает: Виктория Путина
Здравствуйте, newinfo2005!
я не буду приводить программу компилатора fasm для доса это можно скачать в инете свободно (кстати сам себя компилирует)
там довольно интересные решения по поводу компиляции мне понравилось по крайней мере , а скачать можно напиши в поиске fasm есть много адресов где его можно взять также существуют версии соткрытыми кодами для windows
успеха
Ответ отправила: Виктория Путина (статус: 6-ой класс)
Отправлен: 31.03.2005, 09:42
Оценка за ответ: 5
Комментарий оценки:
Тоже не плохо!


Вопрос № 18991
Здравствуйте!
В дополнение к вопросу 18891 (в частности единственному пока ответу Bob Johnson).
Постояноо очищать клипбоард - это тоже выход, но надо применять запрет на чтение/запись в клипбоард выборочно (т.е. для определенных приложений). А здесь это уже не прокатит. Что еще можно посоветовать? Кстати, задача из темы "хуки".
Заранее благодарен, EraSer
Отправлен: 30.03.2005, 12:27
Вопрос задал: EraSer (статус: Посетитель)
Всего ответов отправлено: 1

Отвечает: Bob Johnson
Здравствуйте, EraSer!
А приложения эти уже запущены или ты из запускаешь сам? Они запущены от имени какого пользователя (с какими правами) и под каким пользователем планируется работа твоей программы?
Есть еще такой вариант - ты открываешь требуемый процесс, находишь в его адресном пространстве функцию OpenClipboard и патчишь ее так, чтобы она ничего не делала (просто возвращала результат, что буфер обмена открыть не удалось). Но делать это надо для каждого требуемого процесса, и не все процессы ты сможешь открыть.

* EMan2.0: ---===*** Debug mode ***===---

Ответ отправил: Bob Johnson (статус: Академик)
Отправлен: 01.04.2005, 22:43


Вопрос № 18996
Здравствуйте!!! Спасибо вам за внимание. Я по поводу пароля на exe и com файл. Можете привисти пару примеров.
Отправлен: 30.03.2005, 14:15
Вопрос задал: Kairat (статус: Посетитель)
Всего ответов отправлено: 2

Отвечает: Master135
Здравствуйте, Kairat!
Пароль запрашивай в коммандной строке или сразу при запуске программы.
Сохранять можешь в файле, можешь просто в программе-в любом случае его легко будет подобрать дизассемблировав программу, а вот если попробовать какой-то из алгоритмов шифрования(в нете их множество да и самому можно что-то придумать) то подобрать пароль будет заметно сложнее.
Ответ отправил: Master135 (статус: 2-ой класс)
Отправлен: 30.03.2005, 19:56

Отвечает: Стас
Здравствуйте, Kairat!
C EXE будет сложнее, объясню с COM файлами.
1. Убеждаешься, что твоя прога поместится в COM файл, т.е. COM+твоя < (64K-стек)
Открывашь COM файл на запись.
Берешь с начала COM файла столько байт, сколько занимает твоя прога, и пишешь их в конец файла. А начала COM файла заменяшь своей прогой.
После выполнения твоя прога должна вернуть все на место. Например так:
mov cs:[0ffh],0aah ; команда movsb которая перебросит конец файла в начало
push cs; pop ds; push cs; pop ds;
mov di,0ffh;
push di ;это куда мы попадем после RET
inc di ;Это куда нужно скопировать байты
mov si,место где лежат переброшенные байты (можно подсчитать так: длина COM файла-длина твоей проги+100h);
mov cx,длина твоей проги;
cld; на всяк случай
ret
По моему ничего не забыл(надо бы отладчиком пройтись...), может кто поправит или добавит что либо?
Если что не понятно пиши.
Ответ отправил: Стас (статус: Практикант)
Отправлен: 31.03.2005, 01:01


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

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

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2005, RusFAQ.ru, Россия, Москва. Все права защищены.
Идея, дизайн, программирование, авторское право: Калашников О.А.


http://subscribe.ru/
http://subscribe.ru/feedback/
Подписан адрес:
Код этой рассылки: comp.soft.prog.faq
Отписаться

В избранное