Pergunta

Gostaria de aprender a programar em Assembler.Já fiz algumas montagens antes (durante meu curso de Computação de Nível A), mas isso foi definitivamente um 'pseudo-assembler' simplificado.Peguei emprestado o antigo manual de referência do Z80 Assembler do meu pai, e isso parece bastante interessante, então, se possível, eu gostaria de experimentar o Z80 assembler.

Porém, não tenho um processador Z80 em mãos e gostaria de fazê-lo no meu PC (tenho windows ou linux, então qualquer um é bom).Encontrei vários montadores na internet, mas não estou particularmente interessado em montar um arquivo hexadecimal, quero apenas poder montá-lo em algo que algum tipo de simulador no PC possa rodar.De preferência, este simulador me mostraria o conteúdo de todos os registros, locais de memória, etc., e me deixaria seguir as instruções.Encontrei alguns softwares que sugerem que eles podem fazer isso - mas eles se recusam a compilar ou parecem não funcionar corretamente.Alguém tem alguma sugestão?Se houver bons simuladores/IDE disponíveis para outro tipo de montador, eu poderia tentar isso (supondo que haja um bom manual de referência on-line disponível).

Foi útil?

Solução

Encontrei alguns bits de software que sugerem que eles podem fazer isso - mas eles se recusam a compilar ou não parecem funcionar corretamente.Alguém tem alguma sugestão?

Escreva um.É melhor você escolher um conjunto de instruções simples e agradável (o Z80 deve ser perfeito).Lembro-me de fazer isso como um exercício de graduação do primeiro ano - acho que escrevemos o simulador em C++ e simulamos o assembly 6800, mas na verdade qualquer conjunto de linguagem/instrução serve.

A idéia de "aprender linguagem assembly" hoje em dia é ter uma ideia de como os computadores funcionam no nível mais baixo, apenas alguns poucos selecionados (escritores de compiladores, etc.) têm algum motivo real para realmente escrever código assembly atualmente.Os processadores modernos estão repletos de recursos projetados para serem usados ​​por compiladores para ajudar a otimizar o código para velocidade/execução simultânea/consumo de energia/etc., e tentar escrever assembly manualmente para um processador moderno seria um pesadelo.

Não se preocupe em preparar seu aplicativo para produção, a menos que você queira - com toda a probabilidade, os softwares que você encontrou até agora foram escritos por pessoas exatamente como você, que queriam descobrir como o assembly funciona e escreveram seu próprio simulador, então percebi quanto trabalho seria necessário para deixá-lo "pronto para produção" para que o público em geral pudesse usá-lo.

Outras dicas

Você pode querer verificar o simulador 8085 de código aberto "GnuSim8085", destina-se especificamente a ser usado para fins educacionais e, na verdade, foi escrito pelo aluno durante a preparação para os exames.Ele roda em Linux e Windows.

Se você estiver no Windows Simulador 8085 é a melhor escolha.8085 Simulator by J-tech Softwares

Sua interface de usuário é excelente do que qualquer outro simulador.Além disso, este simulador fornece visualização ao vivo do mapa de memória muito tempo (também durante a execução).

Mas este não suporta Windows 98 ou inferior, por isso você precisa verificar outros simuladores como o "GnuSim8085".

MipSim é GRATUITO

http://www.mipsim.com

Principais recursos do MIPSim 2

  • Editor de código integrado com recursos como realce de sintaxe e dobramento
  • Exibir valores de registro e memória em diferentes representações (inteiro assinado, inteiro não assinado, hexadecimal e ASCII)
  • Defina o tamanho do bloco (palavra completa, meia palavra, byte) das células de memória para facilitar o exame dos valores de memória
  • Altere valores de registros e células de memória com um único clique, mesmo durante simulação e depuração
  • A atualização da interface do usuário em tempo real permite ver como os valores dos registros e das células de memória mudam durante a execução
  • Depurador integrado com execução de instruções passo a passo, salto de instrução e recursos de ponto de interrupção
  • Ferramentas para inserir strings ASCII, UNICODE e valores inteiros na memória para testar seu código
  • Ferramentas para verificar rótulos e parâmetros de instrução duplicados ou ausentes
  • Salve o estado do computador (valores de todos os registros e células de memória) para que na próxima vez que você executar o simulador você possa continuar de onde parou!
  • Defina a velocidade da simulação – velocidades baixas são ótimas para rastrear seu código e ver como ele se comporta
  • Instruções de codificação - produza código de máquina em representação binária ou hexadecimal
  • Detecte erros de tempo de montagem e de execução
  • Depuração mais fácil com mensagens de erro descritivas
  • Design multithread - MIPSim não trava (espero;) mesmo se o código assembly executado estiver errado ou contiver loops infinitos
  • API MIPSim - crie seus próprios programas que podem ler e gravar nos registros e na memória do MIPSim, grande flexibilidade para testes poderosos!

Aponta mais alto!Experimente obter um simulador para uma linguagem assembly mais poderosa.Lembre-se de que Z80 e 808x eram processadores de baixo custo com conjuntos de instruções de baixo custo e estranhos.

Algo como o VAX da DEC era considerado o Rolls-Royce dos conjuntos de instruções.E também existem conjuntos de instruções Risc malucos que fazem coisas realmente estranhas.Talvez você possa encontrar definições deles para que possa tentar implementá-los.

Você pode estar interessado esse para um simulador Z80, e tive boas experiências com WinAsm.

Você também pode considerar aprender a linguagem assembly x86, o que você poderia fazer usando o assembler in-line no Visual Studio - embora seja um conjunto de instruções maior que o Z80, você teria a vantagem de poder usar ferramentas muito melhores do que as disponíveis para o Z80.

Acabei de lembrar também que as ferramentas Keil 8051 e Arm possuem um simulador no IDE - existem versões com restrição de tamanho disponíveis para download gratuito em www.keil.com

Se você já conhece o .NET, isso pode ser útil:

http://www.viksoe.dk/code/asmil.htm

É um pouco limitado e pode funcionar apenas com o .NET 1.1, mas você pode pelo menos usar um IDE "moderno" para ele, e há muitos documentos disponíveis para isso.

<%@ page language="Asm80386" %>
<%
Str:  DB "Testing...", 0

  mov eax, -2
  cmp eax, 2
  jle Label1
  xor eax, eax
Label1:
  lea esi, Str
  push esi
  call "Response.Write(string)"
  pop esi
%>
<br>EAX: <%= eax %>

Outra opção, se você quiser ir para o "hard core", é pegar algo como FreeDOS e VMWare e usar isso.Tenho certeza de que será uma venda de garagem (venda de malas de carro?venda de garagem?) ou uma livraria de segunda mão teriam uma cópia da antiga Bíblia de interrupções do DOS de Peter Norton.:)

Pessoalmente, aprendi x86 asm usando o Turbo Pascal (que acho que agora está livre da Borland?), Que tinha a capacidade de incorporar instruções de montagem dentro de uma função.Ficou mais fácil configurar o aplicativo e pude me concentrar nas coisas que queria fazer.Mais tarde, usei o MacVAX na Auckland Uni, o que foi bom, mas o VAX está praticamente morto - você também pode aprender x86 :)

SimpSim definitivamente vale a pena dar uma olhada.É apenas Windows, mas o conjunto de recursos é bastante decente:

  • Memória principal e display de registro
  • Editor integrado com destaque de sintaxe
  • Funções de execução, etapa e interrupção

WinApe é um bom emulador de um CPC da Amstrad.O Amstrad CPC foi um computador doméstico produzido na década de 80.Ele usou um Z80 como CPU.Usando o emulador você pode exibir muitos detalhes internos durante a programação.Inclui um depurador e um desmontador para código Z80.

Isso não faria nenhum sentido para você agora, mas apenas para as pessoas que passam por aqui.Este é o melhor simulador de código assembly que encontrei.Realmente vale a pena!

http://www.emu8086.com/

Dê uma olhada Emuladores Thomas Scherrer Z80 para obter uma lista de emuladores em potencial que você pode usar.

Eu escrevo z80 asm para o ZX Spectrum (ainda, eu sei :)) e uso o SJasmPlus para vincular a um arquivo do emulador de espectro.Muitos dos melhores emuladores Spectrum, como Fuse e ZXSpin, também possuem editores integrados para depuração e correção imediata.

Quando eu estava na faculdade, usávamos microprocessadores PIC.Eles são fabricados por uma empresa chamada Microchip.Eles também têm um ótimo IDE com um emulador/simulador de chip que permite que você faça coisas sem realmente ter os chips.

Por que usar um emulador?

Download MASM ou NASM e escreva a boa e velha arquitetura 80386.Muitos exemplos online e ferramentas de aprendizagem.

Muitas razões do mundo real para usar o assembler!

existe um simulador que é o Visual6502 para ensinar os fundamentos da arquitetura de microprocessadores.Possui editor, assembler, operação de I/O e animação de como funciona um microprocessador.Estou disponível no seguinte link.

http://www.pcsistem.net/visual/index.htm

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