Erros na sebenta de 2010 de Arquitectura de Computadores -------------------------------------------------------- Na aula 01, a explicação para fazer os exercícios funcionar em 64 bits foi alterada, para fazeres "ld -melf_i386 prog.o" em vez do segundo comando, e NÃO para usar "elf64". Ao final da aula 04 (página 26) deviam estar lá os seguintes exercícios adicionais: Tens as seguintes instruções aritméticas básicas: add eax, 1 sub eax, 1 Exercício 2: Altera agora o programa original para que em vez de responder com "Bem-vindo nome", responda com: Os dois primeiros caracteres sao: cc Os dois caracteres seguintes sao: cc Assume que o utilizador escreve sempre nomes com 4 ou mais caracteres. Dicas: 1. Lembra-te que o primeiro caracter do nome escrito pelo utilizador quando corre o programa está no endereço nome, o segundo caracter está no endereço nome+1 (ou seja, somei 1 ao registo que tinha o endereço de nome), o terceiro caracter está no endereço nome+2 e assim por diante. 2. Se precisares de escrever apenas uma quebra de linha, podes construir uma frase/string que consiste apenas desse caracter. Exercício 3: Altera o programa que acabaste de fazer para que também responda com uma terceira linha que diz: Os dois ultimos caracteres sao: cc O exemplo a06-conv.asm foi simplificado. Ao final do ficheiro a07-conv-func.asm não era suposto estar lá a instrução mov [num], edx Não é um erro ela estar lá, mas compreende-se melhor se não estiver. O ficheiro a08-ler-fich.asm e toda a aula 08 falam de ler uma linha de cada vez do ficheiro. Na realidade o Unix não é "line-buffered" quando lê de ficheiros e então lê blocos do tamanho MAX_BUFFER de cada vez. Na aula 11, a instrução fst devia ser fstp (para ser equivalente ao pop). Foi adicionado um novo exemplo a11-area-float.asm.