Lucas Pinheiro
| Address Range | Size | Device |
|---|---|---|
| $0000-$07FF | $0800 | 2KB internal RAM |
| $0800-$1FFF | $1800 | Mirrors of $0000-$07FF |
| $2000-$2007 | $0008 | NES PPU registers |
| $4000-$4017 | $0018 | NES APU and I/O registers |
| $4020-$FFFF | $BFE0 | Cartridge space: PRG ROM, PRG RAM, and mapper registers (See Note) |
Fonte: http://wiki.nesdev.com/w/index.php/CPU_memory_map
Fonte: http://kevtris.org/mappers/mmc1/NES_SLROM.jpg
| Register | Size | Desc |
|---|---|---|
| A | 8 bits | Accumlator |
| X | 8 bits | General Purpose Register |
| Y | 8 bits | General Purpose Register |
| Flag | 8 bits | Overflow, Negative, Interrupt [...] |
| SP | 16 bits | Stack Segment Register |
| PC | 16 bits | Program Counter |
| Instrução | Exemplo | Descrição |
|---|---|---|
| LDA | LDA #$1C | A = $1C |
| STA | STA $35 | mem[$25] = A |
| AND | AND #$25 | A = A & 25 |
| CMP | CMP #3 | Compara valor em A com 3 |
| BEQ | BEQ _endereço_ | Desvia se o resultado do CMP for igual por exemplo |
| PC | 16 bits | Endereço da próxima instrução |
Mais informações: http://e-tradition.net/bytes/6502/6502_instruction_set.html
if (a == 0x25) {
/** do something 1 *//
} else {
a = 0x0;
}
Ferramentas utilizadas
Oh wait!
Análise Estática vs Análise Dinâmica
Vamos a prática !
Dúvidas ?