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

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


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

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

Выпуск № 460
от 30.05.2006, 03:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 334, Экспертов: 24
В номере:Вопросов: 4, Ответов: 6


Вопрос № 44113: Уважаемые эксперты! Я создаю простейшую программу proba.asm в Блокноте, сохраняю ее в папке C:TASMBIN , затем в Пуск->Выполнить набираю C:TASMBINTASM.EXE PROBA.ASM , , , а TASM, вместо того, чтобы создать файлы PROBA.OBJ, PROBA.LST и PROBA.X...
Вопрос № 44118: Перед мной поставили задачу, написать програму, которая запрещает копирование файлов, я решил что лучше будет реализовать эту задачу, через перехват прерываний. Подскажите пожалуйста какую функцию(прерывания 21h) надо перехватываить ? Зарание спа...
Вопрос № 44122: Прошу прощение за назойливость, я сделал как вы сказали, т.е "Вот пробуйте так, только в Сеансе MS-DOS она же "Пуск=>Все Программы=>Стандартные=>Командная строка": C:TASMBINTASM.EXE C:TASMBINPROBA.ASM"...
Вопрос № 44156: Здравствуйте! Я новичок. Хочу разобраться в роли Ассемблера сегодня. Что на нем пишут, какую пользу для себя я могу получить от его изучения? Спасибо....

Вопрос № 44.113
Уважаемые эксперты! Я создаю простейшую программу proba.asm в Блокноте, сохраняю ее в папке C:TASMBIN , затем в Пуск->Выполнить набираю C:TASMBINTASM.EXE PROBA.ASM , , , а TASM, вместо того, чтобы создать файлы PROBA.OBJ, PROBA.LST и PROBA.XRF выдает следующее :

Assembling file : proba.asm
**Fatal** Command line: Can't locate file: proba.asm
Error messages: 1
Warning messages: None
Passes: 1
Remaining memory: 448k

И это несмотря на то, что PROBA.ASM находиться в одной папке с TASM!
Помогите пожалуйста.

Примечание: я пользуюсь TASM 5.0

Приложение:

Отправлен: 24.05.2006, 17:19
Вопрос задал: Столяров Дмитрий Геннадьевич/Dimitriy (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Пан Павел Константинович
Здравствуйте, Столяров Дмитрий Геннадьевич/Dimitriy!

Всё ведётся относительно WinXP.

Если У вас другая ОС не страшно ПРОБУЙТЕ и всё У вас получится.

Вот пробуйте так, только в Сеансе MS-DOS она же "Пуск=>Все Программы=>Стандартные=>Командная строка":

C:TASMBINTASM.EXE C:TASMBINPROBA.ASM

СОВЕТ: Забудьте о "Пуск->Выполнить", делайте все через "Командную строку"

С, Уважением MnEm0n!C.

---------
Hello Worlds
Ответ отправил: Пан Павел Константинович (статус: 10-ый класс)
Ответ отправлен: 24.05.2006, 17:54
Оценка за ответ: 5
Комментарий оценки:
Большое спасибо, Павел Константинович! Я даже не ожидал, что ответ придет так быстро!
С уважением, Dmitry.

Отвечает: Лысков Игорь Витальевич
Здравствуйте, Столяров Дмитрий Геннадьевич/Dimitriy!
Дело в том, что когда запускается программа через "Выполнить",
то текущей папкой становится корень диска, т.е. c:
Там, понятно, proba.asm отсутствует, поэтому и появляется указанная ошибка
Этого избежать можно разными способами
1. Способ указанный предыдущим экспертом - явно указывать местоположение
исходника
2. Запустить сначала консоль CMD и сделать текущей папку c: asmin.
Тогда можно будет запускать просто tasm proba
3. Запустить far. И уже в нем сделать текущей нужную папку
4. ...
---------
Удачи!
Ответ отправил: Лысков Игорь Витальевич (статус: Студент)
Ответ отправлен: 29.05.2006, 12:31


Вопрос № 44.118
Перед мной поставили задачу, написать програму, которая запрещает копирование файлов, я решил что лучше будет реализовать эту задачу, через перехват прерываний. Подскажите пожалуйста какую функцию(прерывания 21h) надо перехватываить ?
Зарание спасибо.
Отправлен: 24.05.2006, 18:29
Вопрос задал: Кинаш Андрей Владимирович (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Пан Павел Константинович
Здравствуйте, Кинаш Андрей Владимирович!

> Подскажите пожалуйста какую функцию(прерывания 21h) надо перехватываить?

>> Я сейчас тоже полазил по тех. документации к 21h - ому прерыванию и не нашёл "чистой" функции копирования файла, ИМХО.

Копирование - это создание нового файла 'B', с содержимом файла 'A'. Попробуйте перехватывать функцию создания файла или функцию записи в файл.

Главное, правельно Идентифицировать, Где Копирование, а Где просто создание НОВОГО файла 'A'.

С, Уважением MnEm0n!C.

---------
Hello Worlds
Ответ отправил: Пан Павел Константинович (статус: 10-ый класс)
Ответ отправлен: 25.05.2006, 01:02
Оценка за ответ: 5


Вопрос № 44.122
Прошу прощение за назойливость, я сделал как вы сказали, т.е

"Вот пробуйте так, только в Сеансе MS-DOS она же "Пуск=>Все Программы=>Стандартные=>Командная строка":
C:TASMBINTASM.EXE C:TASMBINPROBA.ASM" ,

при этом TASM мне выдал следующее :

Assembling file : c: asminproba.asm to proba.OBJ
**Error** c: asminprobaproba.asm(1) Unknown character
**Error** c: asminprobaproba.asm(2) Unknown character
**Error** c: asminprobaproba.asm(3) Unknown character
**Error** c: asminprobaproba.asm(4) Unknown character
**Error** c: asminprobaproba.asm(5) Unknown character
**Error** c: asminprobaproba.asm(6) Unknown character
**Error** c: asminprobaproba.asm(7) Unknown character
**Error** c: asminprobaproba.asm(8) Unknown character
**Error** c: asminprobaproba.asm(9) Unknown character
**Error** c: asminprobaproba.asm(10) Unknown character
**Error** c: asminprobaproba.asm(11) Unknown character
**Error** c: asminprobaproba.asm(12) Unknown character
**Error** c: asminprobaproba.asm(13) Unknown character
**Error** c: asminprobaproba.asm(14) Unknown character
**Error** c: asminprobaproba.asm(16) Unexpected end of file encountered
Error messages : 15
Warning messages : 0
Passes : 1
Remaining memory : 448k

Может программа составлена неправильно? Если правильно, то как вы думаете, чем это можно обьяснить?

Приложение:

Отправлен: 24.05.2006, 19:14
Вопрос задал: Столяров Дмитрий Геннадьевич/Dimitriy (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Пан Павел Константинович
Здравствуйте, Столяров Дмитрий Геннадьевич/Dimitriy!

Вы верно заметили, программа соствленна не правильно надо так:

CSEG segment
org 100h

Begin:

mov ah,9
mov dx,offset Message
int 21h

int 20h

Message db 'Hello, world!$'
CSEG ends
end Begin

Т.е. как вы понели мы убрали просто номера всех строк типа (1),(2)...., а всё остальное оставили тоже. Вам остаётся, только заново создать файл PROBA.ASM и скопировать туда код который находиться выше.

С, Уважением MnEm0n!C.

---------
Hello Worlds
Ответ отправил: Пан Павел Константинович (статус: 10-ый класс)
Ответ отправлен: 24.05.2006, 23:50
Оценка за ответ: 5
Комментарий оценки:
Павел Константинович, огромное вам спасибо!!!!! Я не знаю, что бы я делал без вас! С уважением, Dmitry.


Вопрос № 44.156
Здравствуйте!
Я новичок. Хочу разобраться в роли Ассемблера сегодня. Что на нем пишут, какую пользу для себя я могу получить от его изучения?
Спасибо.
Отправлен: 25.05.2006, 01:05
Вопрос задал: Storch (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Пан Павел Константинович
Здравствуйте, Storch!

Если вы хотите стать хорошим программистом ТО! вам просто обязательно нужен Ассемблер. Роль Ассемблера сегодня не велика, Ассемблер занимает определенную нишу в создании Программное Обеспечение, Если привести аналогию, то это будет звучать так "Люди используют автомобиль для доставки себя из пункта 'A" в пункт 'Б', НО! иногда автомобиль не годиться для того что-бы доставить человека туда куда ему надо, ВОТ тогда и приходит на помощь МОЩЬНОЕ УСТРОЙСТВО КАК !РАКЕТА!(Ассемблер)".

Что пишут на Ассемблере? ВСЁ! начиная от Драйверов до Вирусов.
Зная Ассемблер вы сможете "Ломать" Программы(crack prog.), находить слабые места т.е. быть так назыв. Тестором ПО.

Надо отметить что Великая Сила заключается в Комбинировании Ассемблера с языками высокого Уровня(C/C++, Pascal).

Какую пользу вы можете получить? Ясно одно, вы получите ПРОСВЕТЛЕНИЕ, а если серьёзно, то ЗАКОННАЯ польза, будет если вы, будите Комбинировать Ассемблер с языками высокого Уровня, о НЕ! законной пользе я промолчу.

С, Уважением MnEm0n!C.

---------
Hello Worlds
Ответ отправил: Пан Павел Константинович (статус: 10-ый класс)
Ответ отправлен: 25.05.2006, 12:47

Отвечает: Ramok
Здравствуйте, Storch!

По мнению создателя языка С++ Строуструпа любой программист, на языке како либо выского уровня он не программировал бы, должен знать минимум основы ассемблера. Потому что любой программис будет не полноценен, если некая часть компьютера является для него полной загадкой.

Ассемблер в чистом виде сейчас используется обычно для программирования контроллеров для встраиваемых систем и/или оптимизации наиболее тормозных частей сложных программ.
Ответ отправил: Ramok (статус: 2-ой класс)
Ответ отправлен: 25.05.2006, 18:49


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

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

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

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

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


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


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.33 от 25.05.2006
Яндекс Rambler's Top100

В избранное