Compilar sem gdb:
make file=diretorio/arquivo.asm
Ou
make file=diretorio/arquivo.asm gdb=0
Compilar com gdb:
make file=diretorio/arquivo.asm gdb=1
nasm -f elf -o teste.o arquivo.asm
ld -m elf_i386 -o teste teste.o
Se for feito uso do módulo io.mac, é importante incluí-lo.
ld -m elf_i386 -o teste teste.o io.o
gdb arquivo
Para usar o gdb, é importante de não esquecer de adicionar labels para criar os breakpoints durante a execução pelo terminal.
Comandos usados:
b label // seta breakpoint
r // run
i r // informações sobre todos os registradores
c // continue
display %r // configura para mostrar o registrador r a cada passo
Arquivo | Função | |
---|---|---|
X | numeros | Converte string para int um número de até 4 dígitos |
X | string_reversa | Programa que reverte uma string, por @gss214 |
X | divisao | Exemplo simples de uso da função de idiv (divisão com sinal) |
X | carry | Exemplo do uso do jump condicional do carry com multiplicação |
X | multiplica_dez | Multiplica inteiro com dez com deslocamento e soma |
Arquivo | Função | |
---|---|---|
X | multiplicacao_matriz | Multiplicação de duas matrizes, 1x10 e 10x10, com uso de passagem de ponteiros para a função |
X | escolhe_numero | Função que usa variáveis locais para alterar número, escolhendo A aumenta 1, escolhendo B diminui 1 |
calculadora | Faz uma calculadora que realiza operações de +-*/ simples entre dois operandos | |
haikai | Editor de haikais, que são poesias de três frases. É possível reescrever cada linha feita, e quando estiver pronto, o haikai é impresso na tela | |
cal_polinomial | Calculadora de equações polinomiais, é inserido os coeficientes, e a calculadora mostra a equação e imprime o valor da equação para x = 0, x = 1, x = 2 |
Mais informações podem ser obtidas em Arquivos
Arquivo | Função | |
---|---|---|
X | cria_fecha | Cria um arquivo chamado teste.txt e fecha |
As questões podem ser encontradas na pasta slides
Arquivo | Slide | Função | |
---|---|---|---|
X | hello | Aula 13 - Slide 23 | Imprime Hello World |
X | kangaroo | Aula 13 - Slide 24 | Imprime KANGAROO e depois imprime kangaroo |
X | welcome | Aula 13 - Slide 25,26 | Recebe nome e número n, imprime apresentação e n vezes a mensagem de boas-vindas |
X | struct | Aula 14 - Slide 26,27,28,29 | Usa estrutura de dados |
X | matrix | Aula 14 - Slide 35 | Faz soma de duas matrizes |
X | iomac | Aula 15 - Slide 12 | Execução básica com io.mac |
X | soma64bits | Aula 15 - Slide 42 | Soma de 64 bits com registradores dde 32 |
X | condicional_aninhado | Aula 16 - Slide 14 | Recebe número em binário e retorna número por escrito |
X | loop | Aula 16 - Slide 18 | Exemplo com loop |
X | while | Aula 16 - Slide 19 | While usando loop |
X | loop_in_loop | Aula 16 - Slide 20 | Loops dentro de loop |
X | break | Aula 16 - Slide 22 | Exemplo com break |
X | continue | Aula 16 - Slide 23 | Exemplo com continue |
X | soma_funcao | Aula 17 - Slide 4 | Exemplo com chamada de procedimento |
X | soma_funcao_pilha | Aula 17 - Slide 18,19,20 | Exemplo com procedimento passando parâmetros pela pilha |
X | fibonacci_pilha | Aula 17 - Slide 29 | Exemplo com fibonacci usando funções e pilhas |