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

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


Служба Рассылок Subscribe.Ru

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

Выпуск N 117

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

Дата выхода: 2001-10-14


Вопрос №1191

Существует ли в Ассемблере понятие массива? Если да, то как можно создать массив, удалить его, управлять им и т. д.? Какие команды/прерывания для этого предназначены (можно просто перечислить)? Относится ли команда LEA к массивам? Что она вообще такое?
Спасибо

Ответ

Здравствуйте, Warewolf!

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

;массив из 5 эл-тов по 4 байта
mass dd 1,2,3,4,5
;массив из 10 нулевых элементов по 2 байта
mass dw 10 dup(0)

используя директивы label и rept
mas_byte label byte
mas_word label word
rept 4
dw 0f1f0h
endm

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

В приложении примеры работы с массивами из книги В.Юрова "ASSEMBLER"

Lea похожа на команду Mov тем, что она также производит пересылку. Но, следует обратить внимание, что команда Lea производит пересылку не данных, а _эффективного адреса данных_ в регистр, указанный операндом назначение
Lea назначение, источник

str_1 db "abcdefgh"
lea dx, str_1
; аналогично команде
mov dx, offset str_1

Приложение:


Отправил эксперт: UFO
Эксперт отправил ответов (всего): 17

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

Вопрос №1182

Хочу купить riva tnt pro 32mb
Какие у неё характеристики? и вообще как ведет себя в играх, при просмотре фильмов?

Ответ

Здравствуйте, Владимир!
Не бери!
Деньги есть - бери GeForce 3 или ATI RADEON
Денег нет - возьми GeForce 2 MX400 32mb - c как можно более быстрой памятью.


Отправил эксперт: UFO
Эксперт отправил ответов (всего): 18

Экспертная группа: Модели, виды и типы компьютеров (hard)

Вопрос №1192

Можно ли где-нибудь достать _правильную_ таблицу 'множитель процессора/комбинация проводников L1' для сокетовых процессоров AMD (Duron и/или Athlon, лучше 'и')? Позволяют ли мат. платы на KT133 менять множитель? Все ли платы на КТ133А имеют эту возможность?
Спасибо

Ответ

Здравствуйте, Warewolf!
Про таблицу не знаю, но можно посмотреть на ixbt.com или computorg.ru, но, возможно там нет.
Про коэффициент у Дюрончика и Атлончика точно знаю... Мать-то может, всё может, только вот коэффициент заблокирован прямо на процу. Де-есть разорванный медный проводник, который нужно карандашиком подтереть... Но это было у слотовых Атлонов... По этому поводу можно много узнать в статьях по разгону.


Отправил эксперт: Anvar
Эксперт отправил ответов (всего): 13

Экспертная группа: Модели, виды и типы компьютеров (hard)

Вопрос №1184

Уважаемые профессионалы...

Подскажите, pls как асмом создать папку, в которой создать файл и записать в него каку-нибудь строку???

Только сильно не пинайте за ламерские вопросы, я читал как это делается, но не вЪехал.
Насколько я понял директория создаётся функцией 39h, при этом в DX - offset переменной, содержащей путь...

А файл создать - это вроде 3сh, но нужно указать атрибуты, а какие они бывают??? и неясно чего ложить в dx...

А чтобы открыть файл нужно какой-то код открытия и указатель - увы не знаю что это такое...

Пожалуйста поподробнее, если можно
Заранее благодарен.

Ответ

Здравствуйте, Semmy!
В общем ты сказал всё правильно, не понимаю какие у тебя проблемы... Нака вот пример (программа создает каталог c:\katalog в нем файл file и помещает в него строку stroka):

Приложение:


Отправил эксперт: Painbringer (http://limanski.narod.ru - нечто наподобие домашней страницы)
Эксперт отправил ответов (всего): 186

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

Вопрос №1174

Уважаемые эксперты
Подскажите
IDE для кодирования на ассемблере
Чтобы команды одним шрифтом
операнды другим
а дерективы третим
И чтобы project manager был, а то NotePad достал уже
И еще чтобы параметры в командной строке после TASM можно было редактировать
Короче IDE под ассемблер

Ответ

Здравствуйте, ivekm!
Есть такая просто офигенная вещь - TASMED!!! НАДО - черкни вышлю.


Отправил эксперт: Painbringer (http://limanski.narod.ru - нечто наподобие домашней страницы)
Эксперт отправил ответов (всего): 187

Экспертная группа: Работа с MASM/TASM

Вопрос №1193

Здравствуйте, эксперты. Кто-нибудь знает, можно ли как-нибудь из javascript запустить ассемблерную программу?

Ответ

Здравствуйте, Nekto!
Попрошу уточнить, а что такое ассемблерная программа?
Если имеется в виду выполняемый ехе или сом файл, то ты б давно уже сидел с отформатированным жестким диском. :)


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

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

Вопрос №1195

Здравствуйте эксперты.
Когда я строю в MathCad'е 2000 3D графики, MathCad вылетает.
При этом он выдает следующее:ъ
Программа MATHCAD вызвала сбой при обращении к странице памяти
в модуле S3MICD.DLL по адресу 017f:6950c72b.
Регистры:
EAX=00000000 CS=017f EIP=6950c72b EFLGS=00010286
EBX=0277589c SS=0187 ESP=00f5f654 EBP=00000000
ECX=0277589c DS=0187 ESI=02693900 FS=18d7
EDX=6950c710 ES=0187 EDI=0276f9cc GS=18fe
Байты по адресу CS:EIP:
8b 78 68 8b d7 8b ce e8 79 4f 03 00 8b d7 8b ce
Содержимое стека:
0276f9cc 02693900 00000000 69542235 0276f9cc 02693900 00f5f684 02693900 6950f1df 00f9dc04 00000012 00f9d701 78a610bc 02fa2356 00000000 00f9dacc


Из этого я понял, что проблемы с видюхой (то же самое говорят на сайте
поддержки). Скачал свежие драйвера (S3 Savage 4) - не помогло.
С 8-ой версией точно также, а вот с 7-ой всё было нормально.

Ответ

Здравствуйте, Alex!
Какой дистрибутив русский или английский? Какая система на компе?
Учитесь правильно задавать вопросы, чтобы получить на них ответ! Твой дамп и состояние регистров - можешь отправить разработчику, здесь он никому не нужен, так-как полезной информации он никакой не несет, - еще раз повторюсь - в этой инфе может разобраться только разработчик модуля.


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

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

Вопрос №1194

Здравствуйте, эксперты. Может подскажете есть ли какая-нибудь альтернатива программе diskeditor из NU? И желательно что-нибудь по-новее, чтоб с дисками большого объема работала...

Ответ

Здравствуйте, Nekto!
ДискЭдитор от NU2000 (NU2001, NU2002)


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

Экспертная группа: Модели, виды и типы компьютеров (hard)

Вопрос №1194

Здравствуйте, эксперты. Может подскажете есть ли какая-нибудь альтернатива программе diskeditor из NU? И желательно что-нибудь по-новее, чтоб с дисками большого объема работала...

Ответ

Здравствуйте, Nekto!
Незнаю..я нелюблю NU они конкретно тормозят тачку..
старый дискедитор помоему лучше...


Отправил эксперт: змей
Эксперт отправил ответов (всего): 67

Экспертная группа: Модели, виды и типы компьютеров (hard)

Вопрос №1197

Здравствуйте эксперты.
Помогите! У меня Win XP,очень нужен интернет. Но на мой Acorp M-56IRW нету дров для XP, пробывал ставить дрова от NT,2000,98,Me,даже от Linux,не чего не помогает пишет Conexant WINACHSF Softmodem.A driver is installed that causes stability problems with your system.This driver will disabled, please contact the driver manufacturer for an update that is compatible with this version of Windows.Может как нибуть можно все таки его обмануть.Да запихать ему дрова.Сасибо.

Ответ

Здесь мне особо понравилось последнее слово "Сасибо" !!!!!!!!!! Что имелось в виду???? =)


Отправил эксперт: Andy Bitoff (http://bitoff.pisem.net - HomePage)
Эксперт отправил ответов (всего): 22

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

Вопрос №1153

Нет ли у кого-нибудь исходника модуля memory.pas или memory.asm из поставки TP 7.0?

Ответ

Здравствуйте, Alexander! Существует так называемый RTL (run time library вроде ? ) от Turbo Pascal'a v.7.0 занимает вроде 2-мега так что сам я вам послать не могу (дома нет инета:() порпросите Broken sworda может он... а вообще посмотрите на всяких там sources.pascal.ru


Отправил эксперт: Bart Simpson
Эксперт отправил ответов (всего): 9

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

Вопрос №1198

Зашел я на форум и ужаснулся ! просто бред ! дублирую свое сообщение (гневное)
К вопросу о "KOL (кал) лучше ассемблера" ДОЛОЙ ЛАМЕРОВ ИЗ САЙТА KALASHNIKOFF !
Не скажу что я крутой програмист (хоть и со стажем) но я много языков перепробывал ! И вот что: начинал я писать на Delphi и через месяц вызывания чужих подпрограмм/прцедур/функций тупеешь настолько что когда я заглянул в свои старые проги то ничего не понял ! И вот что ! Лучше 300 раз "изобретать колесо" на ассемблере , чем "писать" проги на делфи и др. !!!!!! "Програмирование" на делфи это не програмирование вообще !!! А просто использование чужого кода ! Доходит до идиотизма вроде : begin Game(1600x1200) end. :((((
Долой ламеров !!!!!!!!!!!!!!! Хочу посмотреть как ты напишешь вирус на своей KOL !

Ответ

Уважаемый Барт Симпсон! И правильно! И долой их всех вон! На таких как вы и держится все в этом мире! Не нада нам кала никакого! Все вон!


Отправил эксперт: Broken Sword (http://www.revolution.co.uk - скрытая реклама...)
Эксперт отправил ответов (всего): 185

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

Вопрос №1198

Зашел я на форум и ужаснулся ! просто бред ! дублирую свое сообщение (гневное)
К вопросу о "KOL (кал) лучше ассемблера" ДОЛОЙ ЛАМЕРОВ ИЗ САЙТА KALASHNIKOFF !
Не скажу что я крутой програмист (хоть и со стажем) но я много языков перепробывал ! И вот что: начинал я писать на Delphi и через месяц вызывания чужих подпрограмм/прцедур/функций тупеешь настолько что когда я заглянул в свои старые проги то ничего не понял ! И вот что ! Лучше 300 раз "изобретать колесо" на ассемблере , чем "писать" проги на делфи и др. !!!!!! "Програмирование" на делфи это не програмирование вообще !!! А просто использование чужого кода ! Доходит до идиотизма вроде : begin Game(1600x1200) end. :((((
Долой ламеров !!!!!!!!!!!!!!! Хочу посмотреть как ты напишешь вирус на своей KOL !

Ответ

Здравствуйте, Барт Симпсон!
Вы знаете, я большой поклонник ассемблера и впринципе согласен, что программирование на HLL - использование чужого кода. Но и программировать на одном ассемблере тоже не дело. В конце концов программировать на ассемблере серьезную программу все равно что ложкой грузить самосвал - вы его вконце концов нагрузите, но времени потратите больше. Я считаю, что АСМ нужно применять в тех случаях когда либо программа не такая сложная либо очень важно получение быстрого кода.
Что касается вирусов, то тут я согласен - этот тип программ нужно писать ТОЛЬКО на ассемблере.

ГОСПОДА!!! Те кто просил у меня FAQ по вирусам: У меня покончил жизнь самоубийством мой винчестер. Слава богу он на гарантии и слава Богу я успел забэкапиться на винчестер друга. На неделе я еду его менять, когда улажу это дело - вышлю. Щас у меня просто нету этого FAQ.
I'm terribly sorry


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

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

Вопрос №1199

Добрый день эксперты=)
Я тут недавно ночку н спал, учебу прогулял, но зато скачал IDA. Этот отладчик конечно же меня убил..., те программы которые с использованием CV я немог просматривать (писал всякую чипуху)IDA справился легко (и даже с коментариями=)).
Вобшем я тут помучился минут 10 и несмог найти команду тросировки!
Помогите... .

Ответ

Здравствуйте, Alex! хочешь я тебя "убью" еще больше? нет там такой команды вообще!!! да и не должно быть!!! это не отладчик, это ДИЗАССЕМБЛЕР!!! видишь разницу?


Отправил эксперт: Broken Sword (http://www.revolution.co.uk - скрытая реклама...)
Эксперт отправил ответов (всего): 186

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

Вопрос №1201

Здравствуйте эксперты.
Когда я строю в MathCad'е 2000 3D графики, MathCad вылетает.
Версии Маткада - 2000 русский, англ.
8 русский, англ.

На компе винда 98 SE, S3 Savage 4
В 7-ой версии Маткада всё нормально.
Установка свежих драйверов видеокарты не помогла.

Ответ

Здравствуйте, Alex Pasichny!
Драйвера от S3 всегда отличались излишней глюкавостью, в данном случае выеживается OpenGL - нужно менять s3micd.dll
Заходи сюда и укачивай
http://rrulezz.chat.ru/stat/savage4/savage4.html
Moжно поиграться с разными версиями драйверов искать тут
http://www.filesearch.ru/cgi-bin/s?q=s3micd
А можно просто поставить MatCad 2001 - где-то я ссылку на www.nnm.ru видел в прошлом месяце - оттуда же и укачал, но весит он порядочно около 400мег в виде ISO образа.


Отправил эксперт: UFO
Эксперт отправил ответов (всего): 22

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

Вопрос №1192

Можно ли где-нибудь достать _правильную_ таблицу 'множитель процессора/комбинация проводников L1' для сокетовых процессоров AMD (Duron и/или Athlon, лучше 'и')? Позволяют ли мат. платы на KT133 менять множитель? Все ли платы на КТ133А имеют эту возможность?
Спасибо

Ответ

Здравствуйте, Warewolf!
У Дюронов и Атлонов коэф. умножения не выставляется на проце, а просто блокируется - разблокировать очень просто - тонким острием простого карандаша 2М (или - кусочком заточенного припоя) соединить перемычки L1.
Далее - если "мама" позволяет, можно менять кэф перемычками на плате или в биосе.
Можно разгонять проц поднятием частоты FSB без всяких кэфов, если позволяет сопутствующее оборудование. КТ 133 - этого не позволяет - максимум 4мгц и нестабильная работа. На KT133A - без проблем Я на своей JetWay ULTRA поднял на 12 мгц - в результате Дюрон 750 стал Дюроном 840 - все это без повышения напряжения ядра процессора. Работает очень стабильно. Средняя температура по больнице никогда не была выше 40 градусов - после самых тяжелых режимов работы. Можно было бы еще поиграться, но к сожалению на этой маме - все возможности разгона заканчиваются Перемычек нет вообще, а про кэф умножения производители решили забыть при рисовании биоса.

Удачи!


Отправил эксперт: UFO
Эксперт отправил ответов (всего): 23

Экспертная группа: Модели, виды и типы компьютеров (hard)

Вопрос №1202

Добрый день эксперты!
Что такое дизасемблер? Это чтото типа REкомпиляции (из исходной программы создать исходный код), я так понял! Если да то это ведь еше круче... .

Ответ

Здравствуйте, Alex!
Да, похоже, так оно и есть:)
С продуктами NUMEGA поближе можно познакомиться вот здесь
FTP Address: ftp.exetools.com or ftp1.exetools.com
User Name: exetools
Password: member
Port: 21


Отправил эксперт: UFO
Эксперт отправил ответов (всего): 24

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

Вопрос №1203

Доброе время суток, Уважаемые Эксперты.
У меня такой вопрос:
Допустим, я использую вместо jmp label, такие команды:
push offset label
ret

Отладчик пишет:
.......
push ax
push bp
mov bp,sp
mov [bp+2],010a ;010a -адрес метки
pop bp
ret
..........
1)Для чего здесь используется регистр BP?
2)Что значит [bp+2]?
3)В процедурах, как я понял, ret достает из стека адрес, который запоминается командой call. A как он здесь работает?

Влад.

Ответ

Здравствуйте, Влад! bp здесь вообще ни при чем. просто все линкеры от бораланда и микрософта вставляют кучу хрени. Вот A86 - то другое дело, но у него свои причуды


Отправил эксперт: Broken Sword (http://www.revolution.co.uk - скрытая реклама...)
Эксперт отправил ответов (всего): 187

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

Вопрос №1203

Доброе время суток, Уважаемые Эксперты.
У меня такой вопрос:
Допустим, я использую вместо jmp label, такие команды:
push offset label
ret

Отладчик пишет:
.......
push ax
push bp
mov bp,sp
mov [bp+2],010a ;010a -адрес метки
pop bp
ret
..........
1)Для чего здесь используется регистр BP?
2)Что значит [bp+2]?
3)В процедурах, как я понял, ret достает из стека адрес, который запоминается командой call. A как он здесь работает?

Влад.

Ответ

Здравствуйте, Влад!
Отладчик пишет:
.......
push ax ; загоняется значение в стек - неважно какое - нам просто нужно опустить вершину стека на слово
push bp ; сохраняем значение bp - портить нам его никто не разрешал, но нам нужно работать со стеком а адресуем данные стека мы через этот регистр
mov bp,sp ; в bp указатель вершины стека
mov [bp+2],010a ;010a -адрес метки (там хранилось значение АХ)
pop bp ; восстанавливаем значение регистра - sp теперь указывает на содержимое ячейки с 010аh
ret ; в ip значение 010аh
..........


Отправил эксперт: UFO
Эксперт отправил ответов (всего): 25

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

Вопрос №1203

Доброе время суток, Уважаемые Эксперты.
У меня такой вопрос:
Допустим, я использую вместо jmp label, такие команды:
push offset label
ret

Отладчик пишет:
.......
push ax
push bp
mov bp,sp
mov [bp+2],010a ;010a -адрес метки
pop bp
ret
..........
1)Для чего здесь используется регистр BP?
2)Что значит [bp+2]?
3)В процедурах, как я понял, ret достает из стека адрес, который запоминается командой call. A как он здесь работает?

Влад.

Ответ

Здравствуйте, Влад!
Вдогонку
В данном случае Broken Sword совершенно прав - тасм живет своей жизнью, иногда это надо учитывать - гораздо короче код получился бы при таком раскладе
.........
lea ax, label_
push ax
ret


Отправил эксперт: UFO
Эксперт отправил ответов (всего): 26

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

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

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

Форма подачи вопроса

ВНИМАНИЕ!!! Пожалуйста, НЕ высылайте один вопрос сразу нескольким подгруппам! Дополнения к вопросам, на которые эксперт уже ответил НЕ следует направлять ведущему рассылки (я не успеваю!). Просто скомбинируйте первый вопрос и дополнение к нему, а затем заново отправьте его, используя приведенную ниже форму!

Нажимайте кнопку "Отправить" только ОДИН раз и дождитесь полной загрузки страницы, иначе вопрос будет продублирован!


Ваше имя *:

Ваш e-mail *:

Подгруппы:

Вопрос *:

Прилагаемая программа (если необходимо):


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

Архив выпусков


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

Калашников Олег: 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

В избранное