Artigos com a tag 'Assembléia'

Como desenvolver em PHP com o Xcode e Objective-C

Quantos programadores de usar, eu também construir a minha própria biblioteca de funções prontas para serem reutilizados em vários projetos e contextos múltiplos. Deixe-me passar o título deste post, talvez um pouco arriscada, mas, no entanto, como veremos, não muito longe da realidade.

Em Objective-C código pode chamar e escrever C / C + +, incluindo a montagem para essa matéria. Esta característica o torna uma linguagem muito versátil e, em alguns aspectos, fenomenal. Por um lado, você pode usar e apreciar a sintaxe puramente Objective-C, o outro pode correr rápido portabilidade de código escrito em ANSI C (talvez para o Digital Unix ou Sun) e pode caber confortavelmente em nosso iPhone e aplicações IPAD; para não mencionar todo o kernel BSD já está disponível no Mac OS X!

Leia mais ...

Linguagens de desenvolvimento

Eu "revivido" deste artigo meu escrevi um pouco "de anos atrás. Eu ligeiramente revisto, atualizando um pouco aqui e ali, mas eu acho que ainda é relevante e interessante.

INTRODUÇÃO

O que é uma linguagem de desenvolvimento? Um computador, PC aka (Personal Computer), tem uma linguagem pessoal. Esta linguagem é chamada de código de máquina, significa que cada máquina, de modo que qualquer computador (PC compatível, Apple, Unix, etc ...), tem um. Patenteada e única Os programas que vemos "correr" em nossos PCs são realizados principalmente pelo objeto misterioso chamado de microprocessador. Este representa o coração, a unidade inteligente, de cada processador electrónico. Na realidade, uma aplicação não é executado pelo microprocessador, mas depende apenas, por assim dizer, no que é chamado sistema operativo: uma camada de software do fabricante da máquina (ver, por exemplo, o Apple Macintosh).

Leia mais ...

Constantes e variáveis: qual é a diferença real?

Parece óbvio, mas alguns escapam a sutil diferença entre constantes e variáveis ​​em uma linguagem de programação. As constantes, a partir do nome, não altere o seu valor durante o curso de um programa, enquanto as variáveis ​​podem fazê-lo! Muitas vezes, porém, acontecerá a usar variáveis ​​em vez de constantes sem perceber, também, porque isto não irá afetar a lógica de uma aplicação. Apesar disso, a diferença entre constantes e variáveis, e surge todo em tempo de compilação, onde a constante desempenha um ruole definitivamente mais poderoso.

Vindo de C ou de programação Assembly sabe a diferença entre constantes e variáveis, especialmente porque, tanto na Assembleia e C, constantes de desempenhar um papel de MACRO. Para MACRO indendo um "pedaço de código" que é rotulado e substituído no código em tempo de compilação. O compilador, em suma, realiza uma espécie de encontrar .. substituir (e é sostituitsci) no código de cada vez que encontra uma constante.

Imagine que você escrever no fragmento de código C simples seguinte:

1
2
3
4
5 ; int a = 5;
3 ; int b = 3;
int c;
b ; c = a + b;

sono indicate come variabili in questo caso. Tanto a que b são mostrados como as variáveis ​​do presente caso. Em C, de facto, as constantes são definidos com a palavra-chave #define . sono state definite come int . Fazemos notar que imediatamente a que b tem sido definida como int . Já aqui você pode fazer uma otimização em primeiro lugar. Se sabemos que a nossa variável a nunca exceder um determinado valor, você deve declará-la corretamente e não usar tipos de dados de forma aleatória. Alguns desenvolvedores não se preocupam em declarar os tipos corretos, pensando que isso não afeta a performace! Errado! Alternativamente, é aceitável que a primeira versão do Código não envolve esse nível de detalhe. No entanto, uma boa regra, durante o processo de desenvolvimento, analisar o código e verificar os tipos de dados.
No entanto, em uma montagem da família Motorola, por exemplo, como a 68.000 mítico, nosso código tomariam completado (sem otimizações) numa espécie de:

1
2
3
4
, d0 ; int a move o # 5, d0; int.
, d1 ; int b movimentos. o # 3, d1, int b
d2 ; int c - foo movimentos D1, D2, int. C - foo
l d0 , d2 ; risultato in d2 ovvero c adicionar. o resultado d0, d2, d2, ou em c

ou:

1
2
3
, d0 ; int a move o # 5, d0; int.
, d1 ; int b movimentos. o # 3, d1, int b
d1 ; risultato in d1... movimentos. o d0, d1, d1 resultado em ...

O compilador, por mais inteligente esforço, em otimizações, em seguida, escrever o código com a palavra certa só pode ajudar a melhorar a saída compilada. No nosso caso, se o valor 5 é uma constante, não é conveniente usar uma variável inteiro, porque o compilador, correctamente, enquanto a variável variável, precisamente, um predisponde toda a conter o valor simples de 5, que em binário é 101, isto é ocupa três bits simples (se alguma coisa, int é o pior 32bit ou 53bit ponto flutuante de precisão dupla!). Se tivesse escrito o código como este:

1
2
3
4
5
# Define MIA_COSTANTE 5

3 ; int b = 3;
int c;
b ; c = MIA_COSTANTE + b;

O compilador saberia desde o início que MIA_COSTANTE , sendo constante, o valor não vai mudar para que eu possa reservar menos espaço para tratá-la. Na prática, a Assembléia diverebbe código:

1
2
3
d0 ; la "q" indica una istruzione "quick", cioè che tratta valori compresi tra -128 e +127 moveq # 3, d0, e "q" indica uma instrução "quick", que são os valores entre -128 e +127
; Uma educação "rápido" leva menos tempo de CPU (4 ciclos de clock, neste caso)
d0 ; anche qui uso una istruzione "quick" addq # 5, d0; aqui um manual de instruções "rápido"

Este código é extremamente rápido e ocupa menos bytes. O que devemos ter em mente é que quando você declarar uma variável de ambiente está pronto para tratá-lo como tal, mesmo que os compiladores de hoje podem fazer milagres, realizando uma série de etapas antes de compilar o código (alguns compiladores, mesmo realizar uma espécie de programa de simulação para otimizar a compilação em código de máquina).

Uma boa regra é, portanto, para declarar o tipo certo para nossas variáveis, ainda que estes sejam. Alternativamente usar as constantes, especialmente se a linguagem de programação estamos a utilizar o esperado (como no caso do novo Flash CS3).

Leia mais ...

Assembler emulador 6502

Enquanto estamos no assunto de nostalgia, aqui é um bom emulador do historiador do microprocessador 6502 , montado nos anos 80 no console e computadores, como Apple, NS Nintendo e Commodore 64 (que se formou em 6510, ...). Esta jóia bonitinho é inteiramente escrito em JavaScript, rodando em praticamente todos os navegadores (Safari, Opera), com a única desvantagem de ser um pouco lento. Mas vale a pena. No site ( http://www.6502asm.com/ ) encontrei alguns exemplos legais, mas lente curiosa.

Leia mais ...


Pare SOPA