Tutorials:Auto Assembler:Basics

To discus the auto assembler we need a basic understanding of what assembly is.

So programming got it's start with punch cards, but eventually programming was about byte codes.

wikipedia.org/wiki/Computer\_programming\_in\_the\_punched\_card\_era
And before that there was Core rope memory,
but this requires a hardware change so it's generally not called programming any more (but it was in it's day).
Now while it's undoubtedly easier to work on a set of byte code than a bunch of holes in a card.

This is not very human readable:

89 83 80 04 00 00 8D 55 D4 E8 02 62 01 00 8B 55
D4 ...

But this is a little easier to read:

mov [ebx+00000480],eax
lea edx,[ebp-2C]
call 00439D10
mov edx,[ebp-2C]

And that's all assembly is, it's just a human readable language for an *assembler* to assemble byte code (machine code). Cheat Engine uses it's own assembler it's called "*Auto Assembler*", but it understands more then just assembly, then Cheat Engine also uses a sub set of the auto assembler (pure assembly) in the memory view form often referred to as "*Assembler*".

For more information see:

* Assembler
	+ Assembler Commands
* Auto Assembler
	+ Auto Assembler Commands

The easiest way to open the auto assembler is from the Cheat Engine main form press *Ctrl+Alt+A*.

Just press the *execute* button to execute a script in an auto assembler form.

Here are some basic auto assembler scripts:

Code:

define(someConstant,1)

Code:

{$lua}
print('Hello World!')
{$asm}
define(someConstant,1)

Auto assembler commands are not case sensitive so *define* and *DEFINE* will both work as will *mov* and *MOV*.

## Memory view form

To open the auto assembler form the memory view form, this is best when writing scripts for injections, press *Ctrl+A*. Or form the auto assembler form menu select *tools* then select *auto assemble*.

In the memory view form you can also use the assembler directly by double clicking on an instruction.

## To add a script to a table

1. If you don't have an *auto assemble* form visiable open one, **on the Cheat Engine main form press *Crtl+Alt+A***
2. If you haven't added *enable* and *disable* sections, then On the *auto assemble* form **click *template*** then **click *cheat table framework code***.
3. On the *auto assemble* form menu **click *file*** then **click *assign to current cheat table***.
4. This should create a new memory record on the cheat table address list.

**Note: Cheat table scripts require *enable* and *disable* sections.**

Code:

//// -------------------- Main Section ---------------------
[ENABLE]
//// -------------------- Enable Section ---------------------
[DISABLE]
//// -------------------- Disable Section --------------------

* The main section is ran when enabling and disabling.
* The enable section is ran when enabling.
* The disable section is ran when disabling.

## Script windows

You can have as many script windows open as you want. You can save these scripts as *cea* files in the same directory as your cheat table. You can run them from other scripts using auto assembler's INCLUDE command.

## See also

* Assembler
* Assembler Commands
* Auto Assembler
* Auto Assembler Commands
* Auto Assembler Templates
* Code Injection Basic
* Code Injection Full