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

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


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

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

Выпуск № 264
от 11.05.2002, 11:10

Администратор:
Имя: Калашников О.А.
URL: Информационный ресурс
ICQ: 68951340
Россия, Москва
О рассылке:
Задано вопросов: 149
Отправлено ответов: 355
Активность: 238.2 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе]


 Список экспертов, ответы которых опубликованы в данном выпуске

Sensey
Статус: Профессиональный
Общий рейтинг: 169.16
Телефон: +38 (0572) 41-76-04 дом.
[Подробней >>]
freeseacher
Статус: Опытный
Общий рейтинг: 136.12
Телефон: 8(3832)366362
[Подробней >>]
Топор
Статус: Опытный
Общий рейтинг: 146.47
URL: Хорошая Русская Металлическая команда
Телефон: (8462)160302, 162918
[Подробней >>]
 
masquer
Статус: Профессиональный
Общий рейтинг: 169.41
[Подробней >>]
DiGiT
Статус: Профессиональный
Общий рейтинг: 165.17
[Подробней >>]
vitya
Статус: Опытный
Общий рейтинг: 129.58
[Подробней >>]
 
Ayl
Статус: Профессиональный
Общий рейтинг: 158.26
[Подробней >>]
LAO
Статус: Опытный
Общий рейтинг: 136.01
[Подробней >>]
Kalashnikoff
Статус: Профессиональный
Общий рейтинг: 102.77
URL: Информационный ресурс
[Подробней >>]
 
VicSimon
Статус: Опытный
Общий рейтинг: 124.77
[Подробней >>]
Артём Шегеда
Статус: Опытный
Общий рейтинг: 144.9
URL: Пристанище неодинокого программиста
[Подробней >>]
baldr
Статус: Профессиональный
Общий рейтинг: 145.01
URL: Сайт об ОС DOS. Всем, кто любит эту ОС!
[Подробней >>]
 
Blackeye
Статус: Опытный
Общий рейтинг: 132.92
URL: Delphi, my programms...
[Подробней >>]
Andy Bitoff
Статус: Опытный
Общий рейтинг: 128.62
URL: HomePage или что-то типа того :)
[Подробней >>]
Beeblebrox
Статус: Опытный
Общий рейтинг: 139.01
URL: Beeblebrox / TMA HomePage
[Подробней >>]
 
swan
Статус: Начальный
Общий рейтинг: 108.16
[Подробней >>]
Broken Sword
Статус: Профессиональный
Общий рейтинг: 172.48
[Подробней >>]
User
Статус: Доверительный
Общий рейтинг: 121.73
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 106. Пишу прогру на саме, запускаю AFD, а там ... через каждые несколько строчек DB 66 или 67 или другое ... (ответов: 5)
Вопрос № 107. Добрый день! Эксперты препод сказал, что кодирование основывается на поле вычитов. Скажите так-ли эт... (ответов: 3)
Вопрос № 108. К вопросу о hello в 12 байт prog.asm: ---cut--- .model tiny .code org 100h go: db "echo hello&q... (ответов: 5)
Вопрос № 109. Привет,эксперты! Вот программа с Hello в 10 байт. .model tiny .code org 100h begin: db 65h,63h... (ответов: 6)
Вопрос № 110. Здравствуйте эксперты, подскажите как вызвать системную функцию копирования файла с сетевого диска в... (ответов: 1)
Вопрос № 111. Делаю контрольную работу на ассемблере. Не могу справиться с последним заданием: нужно определить ча... (ответов: 4)
Вопрос № 112. О hello в 8 байт: Что-то я в прошлый раз перемудрил... Да и ошибка вкралась - не ren sa.exe sa.bat, ... (ответов: 5)

Вопросов: 7, ответов: 29


 Вопрос № 106

Пишу прогру на саме, запускаю AFD, а там ... через каждые несколько строчек DB 66 или 67 или другое число. Что это значит?



Вопрос отправлен: 07.05.2002, 17:57
Отправитель: Writer

[Следующий вопрос >>] [Список вопросов]

Отвечает Sensey

Доброе время суток, Writer!
По моему мнению, в описании сегмента стоит use32 - то есть 32 битные регистры, а ты спользуешь 16- битные


Ответ отправлен: 07.05.2002, 18:08
Отправитель: Sensey


Отвечает freeseacher

Доброе время суток, Writer!
А прогу в приложение засунуть не судьба? А значить это может что afd пора уже на свалку. может тебе лучше поставить SoftIce? или хотя бы позасовывать ее в другие отладчики? А может у тебя в твой проге так задумано? А компилишь ты ее чем?


Ответ отправлен: 07.05.2002, 20:51
Отправитель: freeseacher


Отвечает Топор

Приветствую Вас, Writer!
Ничего страшного, это префиксы переопределения разрядности операндов (66h) унд переопределения сегмента (67h - вот тут не уверен). Первый вставляется перед 32разрядным операндом, второй - когда адресация данных не через DS.


Ответ отправлен: 07.05.2002, 20:53
Отправитель: Топор


Отвечает masquer

Здравствуйте, Writer!
Предположу, что нераспознанный код, возможно запакованый/криптованый экзешник. ИДУ поставь, проверься.

Ответ отправлен: 07.05.2002, 20:55
Отправитель: masquer


Отвечает DiGiT

Здравствуйте, Writer!
Да ничего просто опкод команды или части команды.

Ответ отправлен: 08.05.2002, 09:59
Отправитель: DiGiT


 Вопрос № 107

Добрый день!
Эксперты препод сказал, что кодирование основывается на поле вычитов. Скажите так-ли это и вообше как кодировать инф.
P.S. не смотря на то, что нет однозначного подхода, есть старые добрые методы...:))
Всего наилучшего...!



Вопрос отправлен: 07.05.2002, 18:29
Отправитель: kuper (kuper@hotbox.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает masquer

Здравствуйте, kuper!
Почитай 10 лет кодирую, первый раз такой термин услышал - "поле вычитов". Или что-то другое имеется в виду. Что значит кодирование?

Ответ отправлен: 07.05.2002, 20:57
Отправитель: masquer


Отвечает vitya

Здравствуйте, kuper!
Да - это так.
На самом деле кодирование делается не просто в поле галуа, а в его расширении, то есть на основе многочленов, коэффиценты которых взяты из поля Галуа. Теперь если у тебя есть неприводимый многочлен степени N, то построив его поле вычетов ты можешь получить многочлены, каждый из которых кодирует вектор значение (если поле двоичное, то это будет битовый вектор). Чаще всего используются циклические коды. Код Хэмминга есть циклический код, который тоже описывается в поле вычетов. Если интересно посмотри книжку Питерсона "Коды исправляющие ошибки", или любую литературу в названием error-correcting codes.

Ответ отправлен: 08.05.2002, 08:46
Отправитель: vitya


Отвечает Ayl

Добрый день, kuper!
Ну в принцепе, насколько я помню из теории информации, любой код может быть преобразован в циклический, а последний, в свою очередь, описывается как раз с помощью поля вычетов.
А насчет кодирования информации - методов действительно много. И все зависит от того, чего хочешь добиться.
По этому делу написано куча умных книжек, много инфы и в инете.


Ответ отправлен: 08.05.2002, 10:47
Отправитель: Ayl


 Вопрос № 108

К вопросу о hello в 12 байт
prog.asm:
---cut---
.model tiny
.code
org 100h
go: db "echo hello",0dh,0ah
end go
---cut---
tasm prog.asm
tlink prog.obj
exe2com prog.exe
ren sa.exe sa.bat
;=)))



Вопрос отправлен: 07.05.2002, 18:58
Отправитель: Gibbel

[Следующий вопрос >>] [Список вопросов]

Отвечает Sensey

Доброе время суток, Gibbel!
Красиво!!!
Только
ren prog.com prog.bat :)
Но очень красиво. А главное ОРИГИНАЛЬНО!!!


Ответ отправлен: 07.05.2002, 19:10
Отправитель: Sensey


Отвечает LAO

Доброе время суток, Gibbel!
Забавный фокус. Вот парочка дополнений:
1)убрав 0dh и 0ah получим 10 байт;
2)линкуем:
tlink prog.obj, sa.bat /t
и сразу получаем sa.bat

Ответ отправлен: 07.05.2002, 20:34
Отправитель: LAO


Отвечает Топор

Приветствую Вас, Gibbel!
Стильно! :0))


Ответ отправлен: 07.05.2002, 20:49
Отправитель: Топор


Отвечает Kalashnikoff

Добрый день, Gibbel!
СУПЕР!
Но надо же было додуматься!!!

Ответ отправлен: 07.05.2002, 23:21
Отправитель: Kalashnikoff


Отвечает Ayl

Здравствуйте, Gibbel!
Ну уж тогда сократи и до 10-ти (символы 0dh и 0ah никому не нужны)!
:)))

Ответ отправлен: 08.05.2002, 10:50
Отправитель: Ayl


 Вопрос № 109

Привет,эксперты!
Вот программа с Hello в 10 байт.
.model tiny
.code
org 100h
begin:
db 65h,63h,68h,6fh,20h,"hello"
END begin
Прога не моя.Поэтому вопрос.Автор сказал
что после компиляции в obj,с файлом нужно поработать
линковщиком tlink.Как интересно ?
Заранее благодарен за ответы.



Вопрос отправлен: 07.05.2002, 21:48
Отправитель: IceWINteR (brothers@atnet.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает VicSimon

Здравствуйте, IceWINteR!
А не проще набрать "echo hello"? Как раз эти коды получатся.
Вся вышеприведенная последовательность - batch-программа (Обычно помещается в .bat-файл). К ассемблеру не имеет никакого отношения.


Ответ отправлен: 08.05.2002, 06:30
Отправитель: VicSimon


Отвечает masquer

Доброе время суток, IceWINteR!
Автор просто пошутил. Это было в каком-то электронном журнале. Там еще была прикольная история про программистов на ассемблере. Так вот это обычный бат-файл ECHO hello.
Не думал, что кто-то купится на это.

Ответ отправлен: 07.05.2002, 22:17
Отправитель: masquer


Отвечает LAO

Приветствую Вас, IceWINteR!
1)tlink prog.obj, prog.bat /t
prog.bat - выходной файл
/t - линковать в COM-файл.
2)строчку {db 65h,...} можно записать по другому:
db "echo hello"

Ответ отправлен: 08.05.2002, 00:04
Отправитель: LAO


Отвечает Sensey

Здравствуйте, IceWINteR!
да просто это такая шутка
tasm /zi/l/n/m3 %1
tlink /s/v/t %1
Получится com, потом переименовываешь его в .bat - и запускаешь...:)


Ответ отправлен: 08.05.2002, 11:13
Отправитель: Sensey


Отвечает Артём Шегеда

Здравствуйте, IceWINteR!
Программисты прикалываются...
Последовательность действий (считаем, что эта программа имеет имя prog.asm):
1) tasm prog.asm
2) tlink /t prog.obj, prog.bat
3) prog.bat
Неожиданный поворот событий, не правда ли?

Ответ отправлен: 08.05.2002, 12:23
Отправитель: Артём Шегеда


Отвечает baldr

Здравствуйте, IceWINteR!
Все просто, как банан под елкой! Вам предложили обычный .bat-файл. То есть, пакетный файл DOS.
Если не хотите возиться с компилятором и линковщиком, создайте файл с расширением .bat, в который
поместите следующую строку:
echo HELLO
И все! Это и будет аналогом того, что Вы прислали в асм-коде. А если хочется поиграть с линковщиком,
то это же делается из Вашего файла (пусть называется hello.asm !) следующими командами:
tasm hello.asm
tlink hello.obj /t
ren hello.com hello.bat

Компоновщику дается ключ /t для того, чтобы он выдал COM-файл, а не EXE, как делается по
умолчанию. Следующая команда просто переименовывает файл hello.com в hello.bat, так как он
содержит не машинные инструкции, а мнемонические команды, принятые в языке командного
интерпретатора DOS.
Вообще говоря, такой код не вполне удовлетворяет заданию. Так как сама программа является в
таком случае не выполняемой непосредственно центральным процессором, а интерпретируемой операционной
системой. Так что говорить о размере программы для интерпретируемого языка довольно трудно.
Если же принимать задание буквально так, как его дал автор, цитирую:
попробуйте написать свой вариант программы которая выводит на экран слово HELLO(5 символов) < 14 bytes
то вот еще и мой вариант, занимающий 5(!) байт, выводящий слово HELLO на экран:
HELLO
Это тоже должно лежать в .bat-файле. При запуске выводит:
HELLO
Bad command or file name.

Слово HELLO выводится? Конечно! И все! Задание выполнено!
Так что при формулировке заданий надо как можно более точно описать все условия, как то:
операционная система, язык, необходимость завершения и т.п...
Это уже, пожалуй, совет всем.
С уважением, baldr.


Ответ отправлен: 09.05.2002, 00:30
Отправитель: baldr


 Вопрос № 110

Здравствуйте эксперты, подскажите как вызвать системную функцию копирования файла с сетевого диска в мою папку
и как ее потом вызвать из макроса екселя?



Вопрос отправлен: 08.05.2002, 04:01
Отправитель: Serzhant (Serzhant_mail@mail.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает masquer

Доброе время суток, Serzhant!


Приложение:

Ответ отправлен: 08.05.2002, 08:15
Отправитель: masquer


 Вопрос № 111

Делаю контрольную работу на ассемблере. Не могу справиться с последним заданием: нужно определить частоту процессора. Может подскажет кто как это делается?



Вопрос отправлен: 08.05.2002, 10:37
Отправитель: Udjin (fint78@yandex.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает Blackeye

Добрый день, Udjin!
Наконец-то вернулся в рассылку. Определить частоту - пожалуйста на C++ и Delphi. А на асм, лень переписовать, думаю сам разберешься! :)

Приложение:

Ответ отправлен: 08.05.2002, 21:18
Отправитель: Blackeye


Отвечает Andy Bitoff

Приветствую Вас, Udjin!
Под Винды это делается так (см. приложение). Под Дос тоже надо програмить регистр RDTSC, только я не знаю как.

Приложение:

Ответ отправлен: 08.05.2002, 14:17
Отправитель: Andy Bitoff


Отвечает DiGiT

Доброе время суток, Udjin!
Это можно сделать начиная с пентиума. Там есть регистр счетчик тактов. Так вот замеряешь время выполнения определенной последовательности комманд. потом считываешь за сколько тактов это все выполнилось, ну а имея такты и время можно посчитать. Где то в рассылке я приводил кусок процедуры, жаль что щас с собой нет.

Ответ отправлен: 08.05.2002, 11:50
Отправитель: DiGiT


Отвечает Beeblebrox

Добрый день, Udjin!
Например, так. Запрещаем прерывания на уровне контроллера прерываний. Читаем время из Real Time Clock (CMOS-часы). Выполняем какую-нибудь команду в цикле. Снова читаем время, делим, выводим ответ :)

Ответ отправлен: 10.05.2002, 14:50
Отправитель: Beeblebrox


 Вопрос № 112

О hello в 8 байт:
Что-то я в прошлый раз перемудрил... Да и ошибка вкралась - не ren sa.exe sa.bat, а ren prog.com prog.bat, конечно...
Ну да ладно, день был неудачный...
hello.asm:
---cut---
.model tiny
.code
org 100h
go:
mov ah,9
mov dx,80h
int 21h
ret
end go
---cut---
tasm prog.asm
tlink prog.obj /t
hello.com hello$
Дерзайте))))



Вопрос отправлен: 08.05.2002, 11:08
Отправитель: Gibbel

[Следующий вопрос >>] [Список вопросов]

Отвечает swan

Доброе время суток, Gibbel!
mov ah,9 ПОМЕНЯЙ НА xchg ax,bp
БУДЕТ МЕНЬШЕ...
А ВООБЩЕ ФИГНЕЙ МАЯТЬСЯ НЕ НАДОЕЛО...
ВОТ С Broken Sword ПОДУМАЕМ ИВЫДАДИМ ЗАДАНИЕ С ПРИМЕРОМ... ЧЕРЕЗ МСЯЦОК...

Ответ отправлен: 09.05.2002, 02:47
Отправитель: swan


Отвечает Blackeye

Здравствуйте, Gibbel!
Молодца весело придумал чтением PSP. Маленькая поправка, хоть параметры командной строки и находяться с 80h, вывод лучше начинать с 81h, а то по 80h у меня 07h все время стоит что портит вид выводимой строки :)

Ответ отправлен: 08.05.2002, 21:18
Отправитель: Blackeye


Отвечает Sensey

Приветствую Вас, Gibbel!
Ну тогда уж так(см Приложение)
1.В начале Дос сессии bp равен 0900 - это кто-то из экспертов первым написал, не я
2. в dx надо 81 - зачем лишний символ выводить...

Приложение:

Ответ отправлен: 08.05.2002, 11:31
Отправитель: Sensey


Отвечает Broken Sword

Здравствуйте, Gibbel!
да!....... конечно!! так вообще можно дойти до маразма в 5 байт:
type hello.com
а в файле hello.com -
48 45 4C 4C 4F
Это ж все ерунда полная!!!


Ответ отправлен: 08.05.2002, 22:54
Отправитель: Broken Sword


Отвечает User

Здравствуйте, Gibbel!
Вместо mov ah,9 поставь xchg ax,bp (не знаю почему это проходит, в AFDPRO регистр bp=0 ???). Получится код в 7 байт. И корректней было бы вместо mov dx,80h mov dx,82h (по адресу 80h - кол-во символов командной строки, 81h - пробел между названием проги и командной строкой)


Ответ отправлен: 09.05.2002, 01:14
Отправитель: User



Форма отправки вопроса

Внимание!
Форма может работать некорректно в почтовых программах "Microsoft Outlook" и "Microsoft Outlook Express". В программе The Bat! подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте, что в некоторых браузерах могут стоять запреты на открытие других окон, а также "чрезмерное" кэширование данных, при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

© 2002 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


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


Получить ответов:


 Выбор рассылки

Программисту
Assembler (85)
C / C++ (35)
Perl (12)
Delphi (23)
Pascal (34)
Basic / VBA (19)
Java / JavaScript (14)
PHP (9)
MySQL / MSSQL (7)
Пользователю
Windows 95/98/Me (75)
Windows NT/2000/XP (61)
"Железо" (67)
Поиск информации (22)
Администратору
Windows NT/2000/XP (19)
Linux / Unix (11)
Юристу
Гражданское право (28)
Уголовное право (5)
Семейное право (8)
Трудовое право (7)
КоАП (5)

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




be number one SUPERTOP Яндекс цитирования

© 2002 Россия, Москва. Авторское право: RusFAQ.ru


http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное