quinta-feira, 21 de outubro de 2021

Subprogramas em C e Assembly

A seguir, dois programas serão disponibilizados para análise. O primeiro implementa em C++ um algoritmo que decompõe um número inteiro em seus dígitos formadores. Este programa ainda conta com um apêndice, que implementa o mesmo algoritmo na linguagem Assembly.

O segundo programa implementa o mesmo algoritmo do primeiro, mas organiza seus códigos fontes em dois subprogramas, um para decompor o número e outro para exibir as suas parcelas.

Observa-se no algoritmo implementado, que este usa do processo de múltiplas divisões por 10 para, em cada iteração: i) calcular o resto da divisão; ii) armazenar o resto em uma estrutura de dados (string em C++ e pilha em Assembly) e; ii) retirar esta parcela do número original. Após serem armazenadas, cada uma das parcelas serão exibidas na ordem inversa a que foram inseridas na estrutura de dados.

Como objeto de aprendizagem, cada um dos programas é composto por sua implementação em C++ e a respectiva adaptação para Assembly (8 Bit Assembler Simulator). De modo a melhorar a compreensão por parte dos iniciantes na programação em Assembly, o código relacionado ao processo de decomposição, está fortemente documentado.

terça-feira, 5 de outubro de 2021

Inversão de String em Assembly

O programa tem como objetivo apresentar, nas linguagem C e Assembly, um algoritmo para inverter o conteúdo de uma String.
Como objeto de aprendizagem o programa é compreendido por um programa em C++, que implementa inicialmente uma "varredura" na String, de modo a obter o seu tamanho. Obtido o tamanho, a  "varredura" é feita de forma inversa, exibindo cada um dos caracteres da String. Em comentário ao programa em C é apresentada uma adaptação deste programa, para Assembly (8-Bit Assembler Simulator).

quinta-feira, 23 de setembro de 2021

Convertendo Binário (em 8 bits) para Hexadecimal.

Os programas exibidos a seguir têm como objetivo permitir a análise comparativa de um programa escrito em linguagem de alto nível, como o C++, com um programa escrito em Assembly. Observa-se que o código em assembly é destinado a uma máquina com características organizacionais bem "discretas", onde destacam-se: i) o armazenamento e endereçamento de dados em 8 bits; ii) a pouca disponibilidade de registradores e; iii) o conjunto restrito de instruções.
No referido a análise do programa é sugerido ao aluno, que observe o modo como são implementadas, em assembly, as instruções da linguagem C. Outro elemento importante é o modo como os dados são gerenciados e tratados. O aluno deve observar como o programa em assembly trata as indicações e denominações aos locais de memória em que os dados são armazenados.

Para os iniciantes, ou com pouco prática nas linguagens de programação usadas acima, destaca-se que o algoritmo também foi implementado na plataforma Google Blocky e pode ser executado na janela a seguir. Observa-se na aplicação a possibilidade da visualização do código em mais 6 linguagens.

quinta-feira, 16 de setembro de 2021

Microprocessador de 8 Bits

Microprocessador de 8 Bits, que até pode ser considerado como um infográfico interativo, é uma aplicação computacional que implementa um microprocessador com estrutura e funcionalidades bem simples; podendo executar apenas 5 operações entre registradores e/ou constantes inteiras, a saber: i) movimentação de dados (MOV); ii) adição (ADD); iii) subtração (SUB); iv) multiplicação (MUL) e; v) divisão (DIV).

Para usar o aplicação, basta clicar no botão de "Comando" e selecionar a operação desejada. Após isso o usuário deve definir os dados necessários à operação, clicando nos botões abaixo do comando - os quais serão devidamente ajustados, dependendo da operação selecionada. Feito isso, basta clicar em "Exec" e observar o processo de execução do comando.

Observando a Organização e a Arquitetura de Sistemas

Esta oficina, através da execução de pequenos programas (em diferentes plataformas computacionais), tem como objetivo, conduzir o aluno à observação de elementos e características que possivelmente permitirão a estes, a observação dos elementos da organização e da arquitetura das plataformas de programação usadas.

São cinco pequenos programas (1 em linguagem de máquina, 3 em Assembly e 1 em C++). O programa em C++ é encontrado diretamente no link, para execução via Web. Os outros programa, assim como as instruções de uso, são disponibilizados como comentários ao programa em C++. Basta seguir as orientações encontradas logo após o cabeçalho do programa. A seguir você pode observar o programa.

terça-feira, 25 de abril de 2017

Curso de Programação - Dados e Variáveis

No mundo da computação, dados podem ser definidos como quaisquer elementos que serão "manipulados/usados" por um programa de computador. Para serem usados, os dados necessitam ser armazenados na memória do computador. O local onde cada elemento de dado (p.ex. o peso de uma pessoa) é armazenado chama-se variável.

A figura a seguir mostra um pequeno programa que manipula dados numéricos (valor1, valor2, valor3, soma e média) e de caracteres (mensagem). O programa calcula e exibe o resultado da média aritmética entre valores.


A janela a seguir permite a execução do programa apresentado na figura anterior - é só clicar na bandeira verde.


Observa-se que os dados são apenas apresentados, fazendo com que para outro conjunto de dados haja a necessidade de alterar o programa ou inserir comandos de entrada de dados - o que será mostrado no próximo exemplo.

Para Saber Mais

domingo, 13 de novembro de 2016

Aprendendo a Programar com o Scratch

O Scratch é um ferramenta que pode ser usado para conduzir o aluno iniciante à compreensão dos elementos fundamentais da programação de computadores. Este software utiliza de elementos gráficos para representar as principais estruturas de programação, assim e outros eventos necessários para execução de operações em um ambiente totalmente interativo e de fácil compreensão e utilização.


O software pode ser obtido em seu site oficial, na sua página de download, onde também pode ser encontrado um pequeno tutorial para instalação. O módulo de ajuda conta também com um completo guia de referência e outras informações úteis.

Para Saber Mais