Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
This repository was archived by the owner on Nov 23, 2017. It is now read-only.
/ahmes-asmPublic archive

An assembler for the ISA of the hypothetical machine Ahmes

License

NotificationsYou must be signed in to change notification settings

ryukinix/ahmes-asm

Repository files navigation

Montadorassembler para a arquitetura (ISA) da máquina hipotéticaahmes proposta pelos professores daUFRGS Raul Fernando Weber e Taisy Silva Webe.

Compiling && Usage

  • Compilar:
    • make
  • Usar:
    • ./ahmes-asm.out <código-fonte>.txt
  • Debug:
    • ./ahmes-asm.out <código-fonte>.txt --debug

General information

  • Os endereços e valores podem ser finalizados emd ouh, indicando sua base númerica, respectivamente: decimal e hexadecimal.
  • Uma nova instrunção chamada deSET foi implementada para inserir um valor diretamente na memória. Sua estrutura é a seguinte:SET end value
  • Um exemplo de código-fonte com mnemônicos está neste repositório. Uma operação demultiplicação.
  • Ao codificar, para evitar problemas de sintaxe, lembre-se sempre de usar no seu editor de textoline endingsUnix:\n.

ISA Ahmes

Segue um resumo do conjunto de instrunções de arquitetura (ISA) da máquina Ahmes descrito na suawiki:

Código BinárioInstrunçãoDescrição da operaçãoComentário
0000 0000NOPnenhuma operaçãonenhuma operação
0001 0000STA endMEM(end) ← ACarmazena acumulador no endereço de memória
0010 0000LDA endAC← MEM(end)carrega acumulador com conteúdo da memória
0011 0000ADD endAC← MEM(end) + ACsoma acumulador com conteúdo da memória
0100 0000OR endAC← MEM(end) OR ACoperação 'ou' lógico
0101 0000AND endAC← MEM(end) AND ACoperação 'e' lógico
0110 0000NOTAC← NOT ACcomplemento a 1
0111 0000SUB endAC← MEM(end) -AC subtrai acumulador do conteúdo da memória
1000 0000JMP endPC ← enddesvio incondicional para o endereço
1001 0000JN endIF N=1 THEN PC ← enddesvio condicional se negativo
1001 0100JP endIF N=0 THEN PC ← enddesvio condicional se positivo
1001 1000JV endIF V=1 THEN PC ← enddesvio condicional se houve estouro
1001 1100JNV endIF V=0 THEN PC ← enddesvio condicional se não houve estouro
1010 0000JZ endIF Z=1 THEN PC ← enddesvio condicional se zero
1010 0100JNZ endIF Z=0 THEN PC ← enddesvio condicional se diferente de zero
1011 0000JC endIF C=1 THEN PC ← enddesvio condicional se foi-um
1011 0100JNC endIF C=0 THEN PC ← enddesvio condicional se não foi-um
1011 1000JB endIF B=1 THEN PC ← enddesvio condicional se emprestou-um
1011 1100JNB endIF B=0 THEN PC ← enddesvio condicional se não emprestou-um
1110 0000SHRC←AC(0); AC(i-1)←AC(i); AC(7)←0deslocamento para direita
1110 0001SHLC←AC(7); AC(i)←AC(i-1); AC(0)←0deslocamento para esquerda
1110 0010RORC←AC(0); AC(i-1)←AC(i); AC(7)←Crotação para direita
1110 0011ROLC←AC(7); AC(i)←AC(i-1); AC(0)←Crotação para esquerda
1111 0000HLTparadatérmino de execução

History

Este programa foi feito originalmente como trabalho acadêmico da disciplinaArquitetura e Organização de Computadores, Lecionada pelo professorAlexandre Beletti na Universidade Federal do Pará, primeiro semestre do ano de 2015 no 2º período do curso de Engenharia da Computação.

Credits

  • Eu (Manoel Vilela)

License

MIT

ROADMAP

  • Finalizar trabalho e entregá-lo
  • Filtrar os warnings
  • Fazer documentação oficial
    • Traduzir todo o conteúdo para inglês

About

An assembler for the ISA of the hypothetical machine Ahmes

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

[8]ページ先頭

©2009-2025 Movatter.jp