Pergunta

Estou trabalhando na portabilidade do uc/OS-II do DOS para x86 (modo real).Eu preciso de:

  1. Um compilador para gerar assembly x86 de 16 bits em modo real

  2. Um montador para montar o assembly gerado em um arquivo objeto

  3. Um vinculador para vincular os arquivos de objeto e produzir um executável (formatos de binário bruto, coff, pe ou elf são bons)

  4. Uma biblioteca padrão sem invocar nenhum serviço DOS (int 21h), dependem apenas do serviço do BIOS.

Estou me perguntando se existe alguma cadeia de ferramentas que possa fazer isso.

Foi útil?

Solução

Confira a FreeDOS projeto.Eles têm ferramentas de desenvolvimento que incluem compiladores, montadores e vinculadores.Você provavelmente terá que modificar a biblioteca padrão para que ela use chamadas de BIOS em vez de int 21h.

Outras dicas

Compiladores de 16 bits?Vários deles são mencionados aqui:

Existe um compilador C direcionado ao 8086?

Geralmente eles são usados ​​para exercícios acadêmicos, então se você se concentrar em uma instituição de ensino, também poderá encontrar muitos exemplos:

http://www.google.com.sg/search?q=site%3Aedu+C+compiler+8086

Em um trabalho anterior, tínhamos um projeto baseado em uc/OS rodando em uma plataforma x86 de modo real.Usamos o TopSpeed ​​C em vez dos mais conhecidos compiladores Borland ou Microsoft, porque o TopSpeed ​​C era o único do conjunto disponível e viável na época que chegou volatile certo.O que você precisa muito ao construir o uc/OS.Tanto o Turbo C quanto o Microsoft C (e acho que também é QuickC) compilaram incorretamente os acessos volatile variáveis ​​- normalmente armazenando valores em cache em registros e quebras semelhantes.

No entanto, seria difícil obter o TopSpeed ​​​​C.E sua sintaxe assembler é...exclusivo.(Acho que é baseado no Modula-2 ou algo assim;acaba sendo muito diferente do MASM/TASM/nasm com o qual você pode estar 100 vezes mais familiarizado.)

Confira qualquer projeto de bootloader, como o GRUB.Deve ficar claro que eles também precisam de tudo o que você mencionou.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top