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.