quarta-feira, 12 de outubro de 2011

SDK

GPR's

General Purpose Registers
Registos de ambito geral, fisicamente integrados no CPU, onde todos os dados que vão ser processados passam. Desde dados para operações aritméticas a apontadores de endereços de blocos de dados (data segments)




Registo AX[AH+AL] - Acumulador
Registo BX[BH+BL] - Base
Registo CX[CH+CL] - Contador
Registo DX[DH+DL] - Dados

style sheet





;O meu estilo consiste em não ter estilo(...) - Herberto Hélder




Ambition

A minha ambição é criar um Sistema Operativo. A recolha de dados do mundo físico (input) pode ser de qualquer tipo, através de teclado(s), microfones, videocameras, ou qualquer outro tipo de sensores físicos. A reacção da máquina (output) pode em qualquer um destes ,ou todos estes formatos (panmidia). Quanto ao SO (acção/reacção=função) só pode ser concebido em Assembly. Quanto à máquina preciso de uma torre velhinha, com um INTEL 386 ou 486, para começar.
Pelo caminho, haverá muito folclore...

call css

;Adoramos a perfeição, porque não a podemos ter; repugna-la-íamos, se a tivéssemos. O perfeito é desumano, porque o humano é imperfeito. - Bernardo Soares

start:

Primeiro foi o ZX Spectrum e o BASIC:
GOTO
Depois veio o PC (o primeiro foi um 386) e o DOS.
Comecei a aprender Pascal e em seguida C e C++.
Mas tudo mudou quando comecei a aprender Assembly para microcontroladores (uC) e microprocessadores (uP), o 8051 e o 16F628 em particular, e a famillia 16f e 12f em geral, ambos com registos de 8 bit.
A partir dos conceitos e práticas adquiridos com estes uP's, inevitavelmente saltei para o INTEL com registos de 32 bit, que é o que a maioria dos computadores tem. O que me cativa é o controlo bit a bit de cada registo para executar uma função. Um input em função de um output. Acção e reacção.

call ambition


;A América [EUA] não inventou os direitos humanos. Na realidade, os direitos humanos é que inventaram a América. - Jimmy Carter

sábado, 1 de outubro de 2011

Salutom Universo!

Ficheiro '.com' executável programado em Assembly (FASM). Este programa envia para a consola de comandos do DOS a mensagem em esperanto 'Salutom Universo!'.

Aqui fica o código fonte.



;Salutom Universo.asm
;adaptado por Manuel Pedro de um dos muitos ;tutoriais que se encontram no youtube

ORG 100h
USE16      ; Usa os primeiros 16 bits dos GPR's
mov ah,09  ; Indexação de subfunção de printstr

mov dx,msg ; Coloca primeiro endereço do segmento                      ;de caracteres
int 21h ;Executa chamada à subfunção print str
mov ah,01 ;Indexação de subfunção - input do teclado
int 21h ;Executa subfunção
int 20h ;Terminar programa e sair

msg db "Salutom Universo!$" ;Segmento de data.




;Se não existe vida fora da Terra, então o universo é um grande desperdício de espaço. - (Carl Sagan)

quinta-feira, 29 de setembro de 2011

Estrutura interna de um microprocessador

Estrutura Interna do micro-Processador 8085

Esta ligação contém a estrutura interna de um 8085. O 8085 é um uP usado para fins didácticos. Indicado para iniciantes visto que os modernos CPU's obedecem a pilares básicos encontrados na simplicidade da arquitectura do 8085. Neste 'mapa' de endereçamento e armazenamento de bit's é introduzido o conceito de registo. O manejo e controle bit a bit desses registos é o propósito da linguagem Assembly.

;A vida pode mudar a arquitetura. No dia em que o mundo for mais justo, ela será mais simples. - Oscar Niemeyer.

quarta-feira, 28 de setembro de 2011

IDE

IDE - Integrated Development Environment

Tal como o nome indica é uma programa (aplicação, (sofware) que permite desenvolver outros programas (aplicações) e integram no seu ambiente de trabalho edição de texto, com opções dedicadas à escrita de programas, compilador do código e muitas vezes ferramentas de correcção (debuger).

Lista de IDE's para assembly:

FASM
- Flat Assembler. Bom potêncial, de uso simples. Fácil instalação (o IDE inclui Linker).
Recomendo.

MASM
Microsoft Assembler (só DOS e Windows). Com grande potêncial, para quem gosta de SDK's.

NASM
- Netwide Assembler. Menos recomendado.

MPLAB IDE - Assembler para PIC's da Microchip (requer programador de PIC's)

;I'm a great believer that any tool that enhances communication has profound effects in terms of how people can learn from each other, and how they can achieve the kind of freedoms that they're interested in. - Bill Gates

Assemblador

Neste Blog partilho a minha experiência e conhecimento em Assembly - a linguagem mãe de todas as outras.

Sendo uma linguagem Homem-Máquina, i.e., uma linguagem em que o programador escreve menmónicas que são traduzidas pelo IDE em código hexadecimal que, por sua vez, é traduzido em código binário pelo Compilador (Assembler), a fim de enviar os dados para o CPU sob a forma bit's (0's e 1's).

Só através do domínio desta linguagem é que podemos ter absoluto controle sobre a máquina, como tal para programar em Assembly é preciso, antes de mais, conhecer a arquitectura do processador.
Em seguida temos que saber o conjunto de instruções (palavras) entendidas e usadas pelo processador.


;Sem uma língua comum não se podem concluir os negócios. - Confúcio