The most powerful, and arguably the most difficult, hacking technique is editing the game's actual code, a process called ''ASM hacking'' ("ASM" means "[[assembly language|assembly]]", referring to the low-level programming language that gets executed by the CPU).<ref name="dictionary"/> There is no set pattern for ASM hacking, as the code varies widely from game to game, but most skilled ASM hackers either use an [[Console emulator|emulator]] equipped with a built-in debugger or tracer, or run the ROM through a [[disassembler]], then analyze the code and modify it using a hex editor or assembler according to their needs. While quite challenging compared to the relatively simple methods listed above, ''anything'' is possible with ASM hacking, within the limits of the hardware and the software of the gaming platform, ranging from altering enemy [[Game artificial intelligence|AI]] to changing how graphics are generated. If the developers used a [[Programming language#Typed versus untyped languages|typed language]], the hacker may be able to compile their code for the game in the same language if they have access to a proper compiler. One such example would be using C to hack [[Nintendo 64]] games, since [[MIPS architecture|MIPS]]-[[GNU Compiler Collection|GCC]] can compile code for the Nintendo 64.<ref>{{cite web|url=https://code.google.com/p/vg64tools/source/browse/#svn/n64/z64actor/trunk |title=vg64tools - Project Hosting on Google Code |access-date=2009-09-09}}</ref><ref>{{cite web |url=http://sites.google.com/site/messiaen64/pong_of_death |title=Super Mario 64: Pong Of Death (messiaen) |access-date=2009-09-09 |archive-date=2011-10-10 |archive-url=https://web.archive.org/web/20111010104312/http://sites.google.com/site/messiaen64/pong_of_death |url-status=dead }}</ref>
If the developers used a [[Programming language#Typed versus untyped languages|typed language]], the hacker may be able to compile their code for the game in the same language if they have access to a proper compiler. One such example would be using C to hack [[Nintendo 64]] games, since [[MIPS architecture|MIPS]]-[[GNU Compiler Collection|GCC]] can compile code for the Nintendo 64.<ref>{{cite web|url=https://code.google.com/p/vg64tools/source/browse/#svn/n64/z64actor/trunk |title=vg64tools - Project Hosting on Google Code |access-date=2009-09-09}}</ref><ref>{{cite web |url=http://sites.google.com/site/messiaen64/pong_of_death |title=Super Mario 64: Pong Of Death (messiaen) |access-date=2009-09-09 |archive-date=2011-10-10 |archive-url=https://web.archive.org/web/20111010104312/http://sites.google.com/site/messiaen64/pong_of_death |url-status=dead }}</ref>