A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Core War A Batalha do Núcleo. O que é o Core War ? É um jogo de programação onde programas em assembler tentam destruir-se na memória de um computador.

Apresentações semelhantes


Apresentação em tema: "Core War A Batalha do Núcleo. O que é o Core War ? É um jogo de programação onde programas em assembler tentam destruir-se na memória de um computador."— Transcrição da apresentação:

1 Core War A Batalha do Núcleo

2 O que é o Core War ? É um jogo de programação onde programas em assembler tentam destruir-se na memória de um computador simulado Os programas (os guerreiros) são escritos numa linguagem especial chamada Redcode, e são executados num programa chamado MARS (Memory Array Redcode Simulator)

3 Simplificação Ambos, o Redcode e o MARS são simplificações abstractas comparadas com os sistemas computacionais normais.

4 Como Funciona? O Core (a memória do computador simulado) é uma cadeia de instruções, vazias excepto nos registos que guardam as instruções dos programas que estão em combate. A memória dobra-se (a boca morde a cauda), um donut. Não existem endereços absolutos. O endereço 0 não se refere ao primeiro endereço da memória mas antes à própria instrução que contém esse endereço. A instrução seguinte é 1 e a anterior é -1

5 Uma Instrução RedCode, a unidade do Core •A unidade básica da memória é uma instrução e não um byte como é normal. •todas ocupam uma célula de memória e demoram o mesmo tempo a serem executadas (1 ciclo).

6 Estrutura de uma Instrução •Cada instrução Redcode divide-se num código de instrução (opcode) e dois campos numéricos (A:endereço fonte e B:endereço destino) •Uma instrução só pode ser copiada e testada quanto à igualdade.

7 Exemplos de códigos de instrução DAT: Remove o processo corrente da fila de processos MOV: Copia dados de uma instrução para outra JMP: Faz com que a execução do programa continue no endereço especificado. ADD: Adiciona o valor fonte para o destino. SEQ: Compara duas instruções, e salta por cima da próxima instrução se forem iguais.

8 Modos de Endereçamento #: Imediato $: Directo (pode ser omitido) *: Campo-A Campo-B indirecto. …

9 Controlo dos Programas •O MARS executa uma instrução de cada vez e passa para a seguinte, a não ser que a instrução indique explicitamente para saltar para outro endereço. •Num combate, em que há mais do que 1 programa na arena, os programas são executados alternadamente, uma instrução de cada vez.

10 Multitarefas •Cada guerreiro tem a sua própria fila de processos, a lista de processos que serão executados repetidamente pela ordem que começaram. •Cada Guerreiro começa apenas com um só processo. •O tamanho da fila de processos é limitado

11 Multitarefas •Os processos de cada programa são executados de forma alternada. •O tempo de execução de cada processo é inversamente proporcional ao número de processos activos do respectivo guerreiro

12 Morte dos Processo e Derrota •Um processo morre quando executa uma instrução DAT (ou executa uma divisão por 0) •Um programa morre quando todos os seus processos desaparecerem.

13 WAIT JMP 0 •O Wait é o programa mais simples •O seu tamanho mínimo torna-o difícil de ser detectado. •Não possui ataque. •Só vence se o seu inimigo se autodestruir.

14 IMP MOV #0, 1 •Foi o primeiro guerreiro a ser criado (Dewdney) •O seu tamanho mínimo torna-o difícil de ser detectado. •Está sempre em movimento no core, em ciclo, ad infinitum. •Não mata, se atingir o adversário, transforma-o noutro Imp. •Gosta de empatar e só vence se o inimigo se autodestruir.

15 DWARF •O Dwarf (Dewdney) é um bombardeiro que cegamente copia uma “bomba” para lugares com intervalos regulares entre si (de 4 em 4 células, por exemplo), esperando acertar no alvo. •A bomba é uma instrução DAT que se acertar no código do seu inimigo será letal caso essa instrução venha a ser executada. •Neste caso, é necessário ter cuidado pois a bomba pode acertar no próprio Dwarf. É necessário que a memória tenha um número de células que seja múltiplo de 4. ADD#4,3 JMP -2 DAT#0,#0


Carregar ppt "Core War A Batalha do Núcleo. O que é o Core War ? É um jogo de programação onde programas em assembler tentam destruir-se na memória de um computador."

Apresentações semelhantes


Anúncios Google