ФлеймФорумПроЭкты

Нуб вкатывается в Ассемблер ! (11 стр)

Страницы: 17 8 9 10 11 12 Следующая »
#150
22:39, 31 мая 2017

ап+

#151
19:56, 4 июня 2017

ну ладно. никто не распознал и троллинг не вышел .

строка MOVE DX, 0109
шифр команды BA=команда , +два байта числа =3байта команда.

дамп памяти BA0901.

если вы запишите MOV DX,0109 то программа-ассемблер переведет в код = шифр.младшийбайт.старшийбайт. в ассемблере вводится как надо - число 0109.
внутри машины хранится иначе = младшийбайт.старшийбайт 0901

при записи в машинном родном коде (который не ассемблер) так и надо вводить =шифр.младщийбайт.старшийбайт.
это формат хранения данных intel. младшийбайт.старшийбайт.

в других машинах другие форматы , вы должны знать как ваша машина хранит формат данных.

дамп — показывает то что лежит в памяти в машине.
дизассемблинг— программа обратного перевода , то что в машине лежит - переводится обратно в код ассемблера.
не всегда это равно и совпадает один к одному.
дамп и дизассемблинг это разные термины.

я ожидал что укажут на этот тонкий момент.

#152
20:16, 4 июня 2017

Rikk
так в чем тонкий момент то? Ты из тупоконечных шталь?

#153
20:22, 4 июня 2017

Rikk
> я ожидал что укажут на этот тонкий момент.

Тонкий момент в кодах - это что-то вроде:

+ Показать
#154
20:25, 4 июня 2017

Rikk

Нет никаких тонких моментов, что в памяти, что в файле, что в дампах на интелах  числа лежат по порядку, начиная с младшего байта. Диссонанс возникает у неофитов, когда они видят искомое в HEX редакторе, так как оно лежит в файле/памяти, слева направо, а читают, как привыкли на уроках математики справа-налево.

#155
20:25, 4 июня 2017

kipar
> в чем тонкий момент то?

в том что дизассемблинг от дампа не отличаете

#156
21:15, 4 июня 2017

Rikk
> я ожидал что укажут на этот тонкий момент.

Да, как толсто, а ещё что-то там бухтел :)

Помню, как для Z80 недокуметированные команды писали через DB

P.S. Я думал, ты что-нибудь про self-modify скажешь... типа того

Прошло более 5 лет
#157
19:20, 12 фев 2023

Видео уроки по MASM (настоящее время)
https://www.youtube.com/@user-om1li3kw1o/featured

Запустить видео по клику - Как делать игрыЗапустить видео по клику - Как делать игры

Запустить видео по клику - Как делать игрыЗапустить видео по клику - Как делать игры

#158
22:41, 12 фев 2023

данный человек, считает большинство книг по ассемблеру не актуальными. Даже не вникая несёт книга нужную информацию или нет.

#159
17:19, 20 фев 2023

раб вакуумной лампы
И как ?
Написал игру ?

#160
23:59, 20 фев 2023

ronniko
> И как ?
> Написал игру ?
На МАСМ-е ? Нет, конечно. Я потерял к нему интерес когда понял как он работает.
Потом перешел на с++, написал на нём движок, но когда похерил финальную копию с отлаженным физиксом и вынужден был откатиться на более раннюю версию, решил вообще перейти на чужой движок (phaser.js) что бы не тратить время. Сейчас я уже закончил локации, лут и код, жду нейросетей для персонажной анимации. Решил себе отпуск устроить, прохожу MAD MAX 2015.

#161
0:05, 21 фев 2023

По поводу ASM-а была у меня давно ещё идея использовать его для реверса ранних игр Ультимы с целью их локализации, но я решил всё-таки писать что-то своё.

#162
4:39, 21 фев 2023

Запоздало отвечаю на первоначальный вопрос в теме: "сложно ли писать на ассемблере?"
Фишка в том, что писать на ассемблере сложнее в мелочах, но довольно быстро приходит понимание, что если структурировать программу ровно как принято в языках высокого уровня (что получается просто методом проб и ошибок), то вообще несложно.
При этом вырабатываются, например, соглашения о вызовах процедур, отбрасывается желание сэкономить каждый байт и так далее.
В итоге довольно быстро начинаешь замечать, что просто начинаешь делать рутинную работу которую автоматически делают компиляторы языков высокого уровня, а когда они еще хорошо оптимизированные, то даже хуже их.
А в целом само по себе программирование получается довольно прямолинейное, практически классическое, только во всех мелочах "подшифрованное" переводом банальной логики на инструкции ассемблера. Поэтому крайне желательно еще намазывать код комментариями которые в ЯВУ считаются "вредными" - типа просто даже сообщить, что в этом месте элемент из массива копируется в поле структуры - в асме это уже не излишняя информация, а полезная.

#163
10:38, 21 фев 2023

=A=L=X=
> типа просто даже сообщить, что в этом месте элемент из массива копируется в
> поле структуры - в асме это уже не излишняя информация, а полезная

Даже если нет средств для описания структур (а в MASM, например, они есть), то можно просто смещения к полям структур задать именованными константами

Vector_len      EQU   0
Vector_buffer   EQU   4
Vector_capacity EQU   8
...
mov  edi, [esi+Vector_buffer]
mov  ecx, [esi+Vector_len]
...

Проблема остается только с регистрами, когда приходится помнить, что в данный момент лежит в регистре.

#164
10:57, 21 фев 2023

=A=L=X=
> Фишка в том, что писать на ассемблере сложнее в мелочах, но довольно быстро
> приходит понимание, что если структурировать программу ровно как принято в
> языках высокого уровня (что получается просто методом проб и ошибок), то вообще
> несложно.
не сложно программировать набегом. когда задача проста . у тебя полное понимание всей задачи от начала до конца и ты просто катаешь простыни инструкций от начала к конце.
если случается ситуация что надо откатываться назад и чтото править, или вылазит какой то баг из старого кода - то залазить в этот лес написанный 3 месяца назад , это полная задница.
там уже не помнишь в каком месте этой функции че с чем сложилось и нафига))) и где ее править.
а комментить каждую инструкцию это x1000 работа.

Страницы: 17 8 9 10 11 12 Следующая »
ФлеймФорумПроЭкты

Тема в архиве.