2013-02-14 4 views
1

У меня нет опыта программирования, кроме самой основной способности читать некоторые операнды ASM (MIPS).Обучение ассемблеру без опыта программирования

Из-за серьезного медицинского состояния у меня есть роскошь, у которой есть 1 год свободного времени. В течение этого времени я не могу много работать и не выходить, поэтому решил, что хочу узнать ASM.

Я заинтересован в хакерских играх; в частности GameCube (PowerPC ASM) и PlayStation (MIPS ASM).

Каков наилучший способ для кого-то вроде меня правильно изучить ASM?

Я хочу быть достаточно свободно, чтобы писать простые программы, и очень важно, чтобы я мог это понять, поэтому я могу просматривать функции игры в дизассемблере (используя точки останова и т. Д.).

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

Это просто хобби для меня. Я не заинтересован в получении работы в этой области; мой университетский майор полностью не связан с программированием, и я не могу заниматься программированием в своем университете.

+2

Хорошая книга поставит вас вперед. Чтобы перепроектировать программы без источника, вам нужен хороший отладчик или несколько (и вам нужно научиться использовать контрольные точки кода и данных и однократное нажатие), хороший дизассемблер или несколько, и много терпения. В любом случае, чтобы делать какие-либо нетривиальные изменения в коде, вам нужно хорошо изучить данную сборку. Сначала узнайте свой предпочтительный asm, а затем начните взлом с помощью действительно небольшого исполняемого файла, чтобы учиться. В больших проблемах заключается в том, как найти правильную инструкцию [s] в тысячах строк кода. В DOS у Gametools (G3X) был отличный сканер памяти. – nrz

ответ

2

Если вы хотите понимать вещи на более глубоком уровне, то я предлагаю вам посмотреть на курс, как An Introduction to Computer Science Udacity, который учит рудиментам программирования на компьютере с помощью python.

Затем я продолжил изучение промежуточных курсов программирования, таких как теория структур данных - это звучит очень скучно, но если вы не получите основы на языке высокого уровня, вы полностью потеряете в сборке, когда вам нужно управлять все себя! Только тогда я посмотрю на ассемблер игры - который будет, как правило, намного более продвинут, чем «привет мир»!

Я полагаю, что вы не прыгать в сборке слишком рано :-)

Я не зацикливаться на Udacity - но курс GPU программирование только начала - хотя это, безусловно, продвинутый курс!

2

Если вы хотите понять ассемблер MIPS, вы должны получить копию See MIPS Run. В этой книге предполагается, что у вас есть разумное знание языка C. Если вы не знакомы с C, доступно много книг. Programming in C Stephen G. Kochan - первый полезный вид, который я нашел на Amazon, хотя я его никогда не читал.

(Вы можете найти обучения Python, чтобы быть немного боковой дорожки, если ваша цель состоит в том, чтобы понять, как конкретная игра работает.)

0

Чтобы узнать MIPS, я использую MIPSIT, который будет зависеть от вашей среды , Вы можете получить фактический чип или имитировать/эмулировать.

Смежные вопросы