Jump to content

Simulador de processador


Recommended Posts

  • Apoiador Nibble

Como eu disse no texto que coloquei como resposta ao colega sobre um bom livro de arquitetura de computadores, eu não sou expert no assunto, mas apenas estudante. Como estudante, eu tenho também algumas dúvidas. Teria alguém aqui disposto a me ajudar?

Eu tenho o projeto de um processador de 32bits. Os registradores são dos tipos UFS (o Professor resolveu usar a sigla da Universidade). Cada processador tem um conjunto de instruções. 

Bem, a tarefa inicial é a seguinte: criar um script em C o qual, quando o Professor executar (colocando no executável criado por ele, como argumento o nome do script criado, mais o nome do arquivo de saída, ou seja, a função main deverá está completa com int argc e char *argv[]) , este deverá retornar as instruções assembly deste script, mas no padrão de saída o qual o Professor já especificou.

O registrador U, possui a seguinte arquitetura: O primeiro campo OP com 6 bits(estes 6 bits começam com 0-zero e os 5 demais serão preenchidos), mais 3 campos (x,y,z) cada um com 5 bits e um campo L com 11 bits.

O registrador F, possui a seguinte arquitetura: O primeiro campo OP com 6 bits(este 6 bits começam com 1-hum e o 5  restantes serão preenchidos), mais 3 campos (x,y,z) com 5 bits cada um, mas somente z preenchido com 0-zeros e um campo L com 11 bits.

O registrador S, possui a seguinte arquitetura: O primeiro campo OP com 6 bits(estes 6 bits começam com 11 e os 4 restantes serão preenchidos), mais 3 campos (x,yz) cada um com 5 bits, mas y e z são preenchidos com 0-zeros e um campo L com 11 bits.

Eu já vi que terei de trabalhar com binários no meu script em C.  Eu consigo fazer o script, mas a minha única dúvida é: Como eu preencho determinado campo (o qual será representado por uma variável, logicamente!) com 0-zeros ou com 1-hum  usando C?  ficando assim: " 000000-11111-00000-11100-11001100101".

Estes valores deverão está em "char" para depois fazer um "cast" para binários? ou posso usar "0bXXXXXX" e trabalhar diretamente com binários?

Pelo que percebo, deverei ter vários "if", inclusive aninhados( ou "case") para as condições dadas acima. O que acham? Confesso que estou meio confuso no desenvolvimento.  

 

Eu tentei buscar alguma "luz"com o Fernando Mendes, mas ele nem respondeu. Deve está sufocado de tantos e-mails de postagens. Eu entendo.

 

Link to post
Share on other sites
  • Administradores

Oi @Rubem!

Desculpe não responder antes. De fato já não lembro por onde me contactou. São realmente muitas mensagens e trabalhos aqui...

De qualquer forma, minha sugestão seria realmente abrir um tópico aqui. Então tomei a liberdade de transformar sua resposta em um novo tópico (fica à vontade para mudar o título se quiser), na área de programação em C. Assim o pessoal consegue ajudar mais. No entanto, é importante você colocar um código inicial e falar sobre suas dúvidas, sabe? Fica mais fácil para a galera ajudar.

Grande abraço!

Link to post
Share on other sites
  • Apoiador Nibble

Ok. Fernando. Quando eu falei lá no tópico, não foi uma cobrança. Eu sei e compreendo bem as demandas as quais você a equipe tem. Mesmo com a pandemia, as coisas não estão paradas, mas cada vez mais avançando, principalmente na área tecnológica.

Quanto ao código, eu realmente não sei por onde começar, visto que, está me travando em como escrever nos campos do registrador, como eu coloquei la no tópico sobre arquitetura de computadores. Mas eu sinto que falta muito pouco. Como eu me conheço, eu sei que se eu conseguir começar e entender bem o que devo fazer, eu vou muito mais além do que até eu mesmo possa imaginar, por que eu busco ser autodidata e eu gosto muito dos assuntos relacionados a Arquitetura de Computadores, Engenharia Reversa, Análise de Binários, Análise de Malware, etc, assuntos relacionados. Por isto é que resolvi contribuir com o MB. aqui tem conteúdo e assunto para eu aprender muito. 

Edited by Rubem
  • Curtir 1
Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...