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

Ассемблер? Это просто! Учимся программировать (FAQ)


Служба Рассылок Subscribe.Ru проекта Citycat.Ru

Ассемблер? Это просто! Учимся программировать (FAQ)
______________________________________

Выпуск N 016

Вопросы, которые поступили от подписчиков рассылки
"Ассемблер? Это просто! Учимся программировать"

Дата выхода: 2001-06-08


От ведущего

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

Вопрос №42

Привет всем экспертам!

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

И если можно поподробнее, чтоб въехать.

2. И расшифруйте мне чайнику как расшифровывается "имхо" и "ака"?

Всем заранее большое спасибо!





Ответ

1. Мне кажется, что переводить через двоичную систему счисления
легче. (Поправь меня, если я не прав). Вот тебе таблица на 4
системы счисления:
-------------------------------------------
16ричная 8ричная 2ичная 10ичная
-------------------------------------------
00h 0 0000 0
01h 1 0001 1
02h 2 0010 2
03h 3 0011 3
04h 4 0100 4
05h 5 0101 5
06h 6 0110 6
07h 7 0111 7
08h 10 1000 8
09h 11 1001 9
0Ah 12 1010 10
0Bh 13 1011 11
0Ch 14 1100 12
0Dh 15 1101 13
0Eh 16 1110 14
0Fh 17 1111 15
--------------------------------------------

2. AKA - Also Known As (Также известен как)


Отправил: Nik
Эксперт отправил ответов (всего): 1

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Вопрос №26

Уважаемые эксперты!

Вопрос не совсем по теме ассемблера, но хотелось одну книжку

по ассемблеру распечатать на бумагу, а то не очень удобно

читать с экрана.

Пытался напечатать на принтере игольчатом, старом очень

Star LC24, текст с кириллицей из файла в ДОСе,не получается, вылазит какая-то ерунда.Т.е в ДОСе принтер

не печатает кириллицу, в Виндовс печатает без проблем,

но эти текстовые файлы в Виндовс открываются не правильно, на экране непонятный набор символов, пытался разные

шрифты- то же самое.

Имею Win98SE Rus, и WIN2000 Eng.

Спасибо.

Ответ

Самый простой способ заключается в открытии данного текстового файла редактором Wordpad с явным указанием типа файла "Текстовый файл MS-DOS".
Остальные варианты:
1. Открыть на редактирование в ФАР-е, выбрать читабельную кодировку, выделить все и скопировать в буфер обмена, а затем вставить с любой редактор под виндами и распечатать.
2. Воспользоваться перекодировщиком типа Stirlitz или аналогичным (искать на freesoft.ru, download.ru)/


Отправил: RANDOM
Эксперт отправил ответов (всего): 4

Экспертная группа: Пользовательская работа c DOS

Вопрос №44

Hello from Denis Drobakhin (DDV)



Привет асмы!!!



Расскажите о том как отучить игры от проверки CD-ROMа,



программы от проверки правильности регистрационного номера



и где храниться в программе правильный REGISTRATION NAMBER!!!!!!!!!







SPOSIBO!!!

Ответ

Ты думаешь что есть универсальное средство?
лекарство от жадности.. :)

Для каждой программы нужен свой подход...


Отправил: Dron
Эксперт отправил ответов (всего): 19

Экспертная группа: Дизассемблеры

Вопрос №44

Hello from Denis Drobakhin (DDV)



Привет асмы!!!



Расскажите о том как отучить игры от проверки CD-ROMа,



программы от проверки правильности регистрационного номера



и где храниться в программе правильный REGISTRATION NAMBER!!!!!!!!!







SPOSIBO!!!

Ответ

Privet Denis.

Naschet CD-ROM est 2 puti:
1. Ispolzovat gotovye emulatory CDROMa. Ih v Inete dofiga.
2. Esli u tebia bolshoy opyt ispolzovania DEBUGEROV, to ty sam smozhesh nayti procedury i podmenit "PATH" k CD.

Registration number: Kak pravilo Serial Number nahoditsa nedaleko ot procedury vvoda Numbera :-)
Poprobuy:
a). Zapustit SoftICE.
b). Zapustit podopytnuyu progu.
c). Vvesti Registracionnyy number.
d). Nazhat "OK" i perehvatit SoftICom messagi tipa "WM_MOUSEDOWN"... i tp.
e). Nu a dalshe uzh kto vo chto gorazd ... :-)

Zhelayu udachi!

...DJ_ViG...



Отправил: ...DJ_ViG... (netu - netuzhe)
Эксперт отправил ответов (всего): 1

Экспертная группа: Дизассемблеры

Вопрос №45

Hello from Denis Drobakhin (DDV)



Привет асмы!!!



Расскажите о том как отучить игры от проверки CD-ROMа,



программы от проверки правильности регистрационного номера



и где храниться в программе правильный REGISTRATION NAMBER!!!!!!!!!







SPOSIBO!!!

Ответ

1. Для отучения игр от CD существуют специальные программы (FAKECD,
Virtual CD-ROM)
2,3. Для этого надо дисассемблировать или запустить программу под отладчиком и посмотреть, где. У всех по разному :(
А ты что, думал, что все тебе прямо так в readme.txt напишут по какому адресу хранится рег.код??? Наивный чукотский юноша :(


Отправил: Nik
Эксперт отправил ответов (всего): 2

Экспертная группа: Общие вопросы по программированию на Ассемблере под Win32

Вопрос №46

Уважаемые эксперты!

Я пытался перевести процессор из реального в защищённый режим работы, но для новичка это не самое простое дело. Я хотел бы узнать, что такое дескрипторы, зачем они нужны и как открыть линию A20? Может быть вы поделитесь опытом, советами ссылками.

Всем спасибо.

Ответ

В отличие от реального режима, в защищённом процессор должен следить не только за выполнением кода, но и за тем, чтобы одна программа в памяти не пыталась запоганить другую (механизм защиты - отсюда и название). Дескрипторы содержатся в специальных таблицах (GDT и LDT - глобальная - для всех прил. и локальная - для одного прил.). В дескрипторе описывается физический адрес сегмента в памяти (т.е. что-то вроде [сегмент shl 4+смещение] в реальном режиме), права доступа и всякая другая хрень.
Теперь, что касается A20.
Открыть:
in al,92h
or al,2
out 92h,al
Закрыть:
in al,92h
and al,0FDh
out 92h,al
-----
Что касается прогр. в защ. режиме - читай книгу
"Assembler для DOS, Windows и UNIX" (c) Зубков С.В.; изд. ДМК.
(www.dmk.ru) Там целая глава посвящена именно программированию в защ.реж., включая страничную адресацию,многозадачность,режим v86,обработку прерываний и т.д.
-----
Я тут ось писал, правда забросил... Она в PM переключается. Если надо, пиши на мыло (zpsoftware@mtu-net.ru). Ещё могу отослать много примерчиков с других сайтов (откуда качал, не помню :[ )...


Отправил: Nik
Эксперт отправил ответов (всего): 3

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Вопрос №45

Hello from Denis Drobakhin (DDV)



Привет асмы!!!



Расскажите о том как отучить игры от проверки CD-ROMа,



программы от проверки правильности регистрационного номера



и где храниться в программе правильный REGISTRATION NAMBER!!!!!!!!!







SPOSIBO!!!

Ответ

Смотря какая игра. Суть ломки сводиться к замене в игре проверки CD-ROM диска на сетевой (или на свой винт). Нужно доказать, что винт - это не винт, а сидюк ! Возьми в руки W32DASM и поищи там что нить такое: "Reference To: KERNEL32.GetDriveTypeA" (без кавычек). Возможно, что там будет что-то вроде:
:0041D172 83F805 cmp eax, 00000005
:0041D173 752A jne 0041D9AB
вот это 00000005 замени на то, что нужно (см. табл. ниже).

0 - Невозможно определить тип
1 - Диск не найден
2 DRIVE_REMOVABLE Гибкий (возможна замена)
3 DRIVE_FIXED Жесткий (замена невозможна)
4 DRIVE_REMOTE Сетевой диск
5 DRIVE_CDROM CD-ROM
6 DRIVE_RAMDISK RAM - Диск

лично я для таких целей юзаю SoftIce. Ставлю bp на GetDriveType и
GetDriveTypeA (bpx GetDriveType bpx GetDriveTypeA). Вот в принципе то и все..

А про взлом и отучение программы от рег. намбера - это уже предсказать не могу. В каждой проге свое. но принчип таков: ставим ловушку при проверке номера, ищем где идет проверка введеного номера и того, который сгенерит программа, достаем реальный номер. Тут уж без SoftICe'а как без прямых рук! Все.


Отправил: K.A. NiCK
Эксперт отправил ответов (всего): 2

Экспертная группа: Общие вопросы по программированию на Ассемблере под Win32

Вопрос №46

Уважаемые эксперты!

Я пытался перевести процессор из реального в защищённый режим работы, но для новичка это не самое простое дело. Я хотел бы узнать, что такое дескрипторы, зачем они нужны и как открыть линию A20? Может быть вы поделитесь опытом, советами ссылками.

Всем спасибо.

Ответ

Линия A20 в принципе не имеет отношения к защищенному режиму... это типа лазейка для реального режима, дающая ему возможность адресовать около двух мегабайт памяти... Хотя может я и ошибаюсь и это всетаки необходимо... не уверен точно. :(

дискриптор - это просто.
Есть таблица дискрипторов, записи в которой имеют размер 8 байт и содержат в себе права доступа к сегменту, линейный адрес дискриптора в памяти, и предел сегмента.
В сегментный регистр записывается индекс в таблице дискрипторов, и несколько служебных бит.

Перед переходом в защищенный режим тебе надо сформировать как минимум глобальную таблицу дискрипторов и после перехода сразу переинитить остальные (cs установлен) сегментные регистры их селекторами.


Отправил: Dron
Эксперт отправил ответов (всего): 20

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Вопрос №47

Здраствуйте ув. эксперты.

Не плохо зная ассемблер я зашел в тупик.

Мне необходимо в программе использовать фунции процессора 386 или выше. Включил .386. Вылезает ошибка при компоновке TLINKом :

Trying LINK

Turbo Link Version 5.1 Copyright (c) 1992 Borland International

Fatal: 32-bit record encountered in module 386PROBL.ASM

Возможно под процессор 386 и выше есть другая форма программы? напишите пожалуйста правильную форму начальной программы. Даю свою версию программы делающую проблемы

Ответ

Я не понял какой у тебя в этом смысл?
Всеравно в стек записываешь только 16 бит...
Тут тебе eax совсем не нужен...


Отправил: Dron
Эксперт отправил ответов (всего): 21

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Вопрос №47

Здраствуйте ув. эксперты.

Не плохо зная ассемблер я зашел в тупик.

Мне необходимо в программе использовать фунции процессора 386 или выше. Включил .386. Вылезает ошибка при компоновке TLINKом :

Trying LINK

Turbo Link Version 5.1 Copyright (c) 1992 Borland International

Fatal: 32-bit record encountered in module 386PROBL.ASM

Возможно под процессор 386 и выше есть другая форма программы? напишите пожалуйста правильную форму начальной программы. Даю свою версию программы делающую проблемы

Ответ

Здравствуйте!
Особенной формы программы для 32 битных процов нету, видимо вы просто
неправильно линкуете. К сожалению, я Turbo Link 5.1 не видел, я пользуюсь Turbo Link 3.0 но и у него вылезает такая же ошибка как и у вас (32 bit record encoutred in file ). Для того, чтобы это исправить надо использовать ключ /3 - линковать 32 битный код:
tlink 386PROBL.OBJ /3
(У Turbo Link 5.1 должен быть аналогичный /3 ключ - см. help)
При компиляции 386PROBL.ASM убедитесь что ваш транслятор поддерживает 32 битный код. Поскольку например Turbo Assembler 4.0 неправильно транслирует код. Рекомендую Turbo Assembler 5.0 :)

И еще - вы забыли добавить стек к вашей программе:)
Перед кодом напишите
.stack 256 - Так вы зададите стек длинной 256 байт. Если стек
не задавать, то откомпилированный EXE-файл повиснет при запуске.
Если же вы собираетесь сделать .COM файл, то уберите команды
mov eax,@data
push ax
pop ds
или вы не сможете создать .COM файлов из-за перелокации сегментов.
(Естественно, что при создании .COM файла cтек задавать не нужно)

На всякий случай привожу работоспособный вариант вашей программы



Приложение:


Отправил: Евгений
Эксперт отправил ответов (всего): 1

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Подписаться на рассылки

Рассылки Subscribe.Ru
Ассемблер? Это просто! Учимся программировать
Ассемблер? Это просто! Учимся программировать (FAQ)

Задать вопрос экспертам

Регистрация в качестве эксперта


Ведущий рассылки,

Калашников Олег: Assembler@Kalashnikoff.ru
ICQ No.:
68951340
URL сайта подписчиков: http://www.Kalashnikoff.ru

______________

По вопросам сотрудничества, рекламы и спонсорства обращайтесь:

  1. Публичное размещение материала из рассылки: Cooperation@Kalashnikoff.ru
  2. Реклама на сайте, в книге и рассылках: http://www.Kalashnikoff.ru/Reklama.html, Reklama@Kalashnikoff.ru
  3. Издание книги (спонсорство): Sponsor@Kalashnikoff.ru

Рассылка 'Ассемблер? Это просто! Учимся программировать (FAQ)' Рассылка 'Ассемблер? Это просто! Учимся программировать'


(C) Москва, 2001. Авторское право принадлежит Калашникову О.А. Публичное размещение материала из рассылки, а также его использование полностью или частично в коммерческих или иных подобных целях без письменного согласия автора влечет ответственность за нарушение авторских прав.


http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться Рейтингуется SpyLog

В избранное