Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <bits/stdc++.h>
- #include "endereco.hpp"
- #include "instrucao.hpp"
- #include "blocoMemoria.hpp"
- #include "mmu.hpp"
- #include "maquina.hpp"
- using namespace std;
- int main(int argc, char const *argv[]){
- int tamanhoRam= 1000;
- int tamanhoCache1 = 8;
- int tamanhoCache2 = 16;
- int tamanhoPrograma = 49984;
- int qdePalavrasBloco = 4;
- Instrucao *memoriaInstrucoes = gerarInst(tamanhoPrograma);
- for(int i=0; i<tamanhoPrograma; i++){
- gerarEndInst(posToPointInst(memoriaInstrucoes, i));
- }
- BlocoMemoria *ram = gerarBM(tamanhoRam);
- BlocoMemoria *cache1 = gerarBM(tamanhoCache1);
- BlocoMemoria *cache2 = gerarBM(tamanhoCache2);
- montarRam(ram, tamanhoRam, qdePalavrasBloco);
- montarCacheVazia(tamanhoCache1, cache1);
- montarCacheVazia(tamanhoCache2, cache2);
- //montarInstrucaoDoTxT();
- carregarInstrucoesTXT(memoriaInstrucoes);
- // for(int i=0; i<tamanhoPrograma; i++){
- // cout<<"Opcode: |"<<getOpcodev(memoriaInstrucoes, i)<<"| b1: |"<<getEndBloco(getAdd1(memoriaInstrucoes, i))<<"| ep1: |"<<getEndPalavra(getAdd1(memoriaInstrucoes, i))<<"| b2: |"<<getEndBloco(getAdd2(memoriaInstrucoes, i))<<"| ep2: |"<<getEndPalavra(getAdd2(memoriaInstrucoes, i))<<"| b3: |"<<getEndBloco(getAdd3(memoriaInstrucoes, i))<<"| ep3: |"<<getEndPalavra(getAdd3(memoriaInstrucoes, i))<<"|"<<endl<<endl;
- // }
- //montarInstrucoesProgramaAleatorio(memoriaInstrucoes, tamanhoPrograma, qdePalavrasBloco, tamanhoRam);
- //montarInstrucoesProgramaMultiplicacao(512, 1024);
- maquina(&memoriaInstrucoes, &ram, &cache1, &cache2);
- deleteBM(cache2);
- deleteBM(cache1);
- deleteBM(ram);
- deleteInst(memoriaInstrucoes);
- cout<<"terminoun";
- cout<<"----------------------------------------------------"<<endl;
- return 0;
- }
- #include "instrucao.hpp"
- using namespace std;
- struct instrucao {
- Endereco *add1;
- Endereco *add2;
- Endereco *add3;
- int opcode;
- };
- Instrucao * gerarInst(int q){
- return new Instrucao[q];
- }
- Instrucao * gerarInst(){
- return new Instrucao;
- }
- void gerarEndInst(Instrucao* inst){
- inst->add1= gerarEnd();
- inst->add2= gerarEnd();
- inst->add3= gerarEnd();
- }
- void deleteInst(Instrucao *a){
- delete[] a;
- }
- Instrucao *posToPointInst(Instrucao *z, int k){
- Instrucao *aux=&z[k];
- return aux;
- }
- void juntarInst(Instrucao *a, Instrucao*b){
- a->add1 = getAdd1(b);
- a->add2 = getAdd2(b);
- a->add3 = getAdd3(b);
- a->opcode = getOpcode(b);
- }
- void juntarInst(Instrucao *a, Instrucao*b, int i){
- setAdd1(&a[i], getAdd1(b));
- setAdd2(&a[i], getAdd2(b));
- setAdd3(&a[i], getAdd3(b));
- setOpcode(&a[i], getOpcode(b));
- }
- Endereco *getAdd1(Instrucao *c) {
- return c->add1;
- }
- Endereco *getAdd1(Instrucao *c, int i) {
- Instrucao *aux=&c[i];
- return aux->add1;
- }
- void setAdd1(Instrucao *c, Endereco *add1) {
- c->add1 = add1;
- }
- Endereco *getAdd2(Instrucao *c) {
- return c->add2;
- }
- Endereco *getAdd2(Instrucao *c, int i){
- return c[i].add2;
- }
- void setAdd2(Instrucao *c, Endereco *add2) {
- c->add2 = add2;
- }
- Endereco *getAdd3(Instrucao *c) {
- return c->add3;
- }
- Endereco *getAdd3(Instrucao *c, int i){
- return c[i].add3;
- }
- void setAdd3(Instrucao *c, Endereco *add3) {
- c->add3 = add3;
- }
- int getOpcodev(Instrucao *c, int i) {
- return c[i].opcode;
- }
- int getOpcode(Instrucao *c) {
- return c->opcode;
- }
- void setOpcode(Instrucao *c, int opcode) {
- c->opcode = opcode;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement