Comunidade OSDevBrasil.net
Maio 20, 2012, 03:32:30 *
Bem-vindo, Visitante. Por favor faça o Login ou Registro.

Login com nome de usuário, senha e duração da sessão
Notícias: Anuncie a nossa comunidade a amigos, fóruns...
 
   Home   Ajuda Pesquisa Login Registrar  
Páginas: [1]
  Imprimir  
Autor Tópico: Montagem de ambiente de programação Assembly para AMD64 (Atlhon 2 x2)  (Lida 215 vezes)
rpm-linux
OS Newbie
*

Karma: 0
Mensagens: 1


Ver Perfil Email
« : Outubro 03, 2011, 04:48:32 »


Desde o dia 27/09/2011 estou tentando resolver um problema o qual já relatei na comunidade Assembly do site vivaolinux e até agora não obti nenhuma resposta (link: http://www.vivaolinux.com.br/topico/Assembly/Montagem-de-ambiente-de-programacao-Assembly-para-AMD64-%28Atlhon-2-x2%29/ )

Abaixo segue a pergunta:
Olá caros colegas, resolvi neste mês setembro/2011, aprender a linguagem assembly, baixei uma centena de .pdf's e outros materiais e fiz algumas descobertas e tais descobertas geraram dúvidas, então lá vão elas:

1)Instalei o NASM no ubuntu 11.04, tem como eu gerar código assembly para meu processador (ou para a família de processadores) amd64 (Athlon 2 x2)? Que tipo de saída devo pedir ao nasm, bin, elf, etc, para que o código possa ser executado diretamente pelo processador?


2)Descobri que os primeiros 512bytes das mídias são a MBR delas. Como faço para gravar o binário gerado em um PENDRIVE de forma que eu possa "dar boot" por ele e executar o código assembly?

3) Como faço para gravar o código gerado no pendrive à partir de um determinado byte da mídia (exemplo, o binário_1 tem 100bytes e eu quero que ele seja gravado do byte 0 em diante, o binario_2 tem 50bytes e eu quero colocar ele no byte 400 em diante)?

4) Quais são as precauções que devo ter, eu posso perder a mídia se fizer algo errado?

(usando o "dd"? como?)


Agradeço desde já qualquer colaboração dos colegas!
Robison 03/10/2011.
Registrado
Mounter
Administrador
OS Sr. Member
*****

Karma: 12
Mensagens: 432


mrjostz@hotmail.com
Ver Perfil WWW Email
« Responder #1 : Outubro 19, 2011, 11:03:01 »

Bom dia!

1) Tem, no nasm adicione a flag -felf64 ou no código mesmo, se for em binarios, use o comando [BITS 64].

Código:
[BITS 64]

; código

2) Olha, tem vários programas para se fazer isso, você não precisa criar um...

Exemplo: http://www.baixaki.com.br/download/a-bootable-usb.htm

Possivelmente funciona para qualquer ISO...

3) Agora se você mesmo quer fazer um bootloader, tem vários tutoriais no Google, principalmente em inglês. Como ISO é somente um arquivo com estruturas organizadas, você mesmo pode fazer seu arquivo com os binários concatenados, se você usa alguma distro linux, pode fazer isso facilmente com o comando cat ou usar um programa como o mkisofs para passar o bootloader e os arquivos.

Sugiro você ler a especificação da ISO para CDs, e ai você fazer um bootloader para isso, por exemplo, no projeto SOmBRA usasse o GRUB como bootloader, tanto que se quiser pode-se por mais de um kernel na mesma media.

4) Se for uma mídia como CD-R pode perder, agora USB ou media regravável, só se a bobagem for muito grande (queimar a media). Jah fiz CDs com o SOmBRA e funcionam em medias regraváveis ou pendrives.
Registrado

╔╗╔╦══╦╗╔╦══╦╗
║╚╝║╔╗║╚╝║╔╗║║
║╔╗║╠╣║╔╗║╠╣╠╣
╚╝╚╩╝╚╩╝╚╩╝╚╩╝

Projeto SOmBRA - http://code.google.com/p/projeto-sombra

S.O.: Ubuntu 10.04
Browser: Google Chrome 10

Páginas: [1]
  Imprimir  
 
Ir para:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.16 | SMF © 2006-2009, Simple Machines XHTML 1.0 Válido! CSS Válido!