como SOs que com partes em ASM fucionam em varios computadores [RESOLVIDO]

1. como SOs que com partes em ASM fucionam em varios computadores [RESOLVIDO]

marcelo
marceloiaverafa

(usa Linux Mint)

Enviado em 28/11/2013 - 11:00h

Olá amigos, fiquei sabendo em outro tópico que o linux possui partes em assembly. Mais como isso aconteci? Como ele funciona? já que assembly não é portável. se alguém poder me explicar eu agradeço.


  


2. Re: como SOs que com partes em ASM fucionam em varios computadores [RESOLVIDO]

Buckminster
Buckminster

(usa Debian)

Enviado em 28/11/2013 - 13:09h

marceloiaverafa escreveu:

Olá amigos, fiquei sabendo em outro tópico que o linux possui partes em assembly. Mais como isso aconteci? Como ele funciona? já que assembly não é portável. se alguém poder me explicar eu agradeço.


O GCC provê um construtor especial, asm, para inserir instrucões de linguagem de montagem em C.
Como a maioria dos processadores mais usuais hoje em dia são x86, o Assembly utilizado é para x86.

O código Assembly fica embutido no código em C.

Por exemplo, o Kernel Linux tem instruções para diversas arquiteturas, instruções estas separadas em arquivos para cada arquitetura. No momento da compilação o Kernel verifica qual a arquitetura da máquina, se não for uma arquitetura compatível dará erro.
Por isso também que existem distribuições Linux para cada arquitetura de máquina.

No caso específico do Kernel, ele verifica a arquitetura da máquina e chama o arquivo correspondente (x86, PowerPC, etc).
Para as ocasiões em que os programadores precisam usar instruções Assembly em seus programas, a coleção de compiladores GNU (GNU Compiler Collection) permite aos programadores usar instruções em Assembly, independente da arquitetura das máquinas.

Contudo, se você for fazer um programa em C, por exemplo, e usar código Assembly, logicamente este programa será utilizado em um sistema já instalado em uma determinada arquitetura, então o Assembly deverá ser obrigatoriamente para esta arquitetura.
É mais ou menos isso.

Já postei essa resposta no teu outro tópico também.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts