Formato da instrução Atenção o formato da instrução abordado neste texto NÃO é um formato MIPS padrão. Nossa instrução possuí 12bits (diferente do MIPS que possui 32bits). O formato aqui apresentado busca APENAS instroduzir o conceito de representação da instrução no computador e orientar os alunos quanto a construção e operação da ULA de 3bits (que está sendo construída em sala). Formato e Tipo de Instruções suportadas pela ULA3bits Instrução RR A instrução RR é uma instrução de registrador-registrador. Nesta instrução são informados os endereços dos registradores rd rs e rt, além da operação. O resultado da operação com os operandos rs e rt é armazenado em rd. 1 bit opcode campo tipo 2 código da operação 3 4 5 rd 6 7 8 9 10 rs 11 12 rt endereço do registrador de endereço do primeiro endereço do segundo destino operando no banco de operando no banco de registradores registradores Instruções do tipo RR suportadas pela ULA3bits. • And 000 Instrução AND lógico • or 001 Instrução OR lógico • add 010 Instrução aritmética de soma • sub 011 Instrução aritmética de subtração Exemplos: Instrução Comentário A = B+C Alto nível add $1,$2,$3 MIPS 010001010011 Liguagem de máquina Instrução Comentário D = A-E Alto nível sub $4,$1,$5 MIPS 011100001101 Liguagem de máquina Instrução RI A instrução RI é uma instrução de carga imediata. Nesta instrução é informado do registrador rd, o valor e a operação. O valor informado fica armazenado em rd. 1 bit 2 3 opcode campo 5 6 7 rd código da operação tipo 4 8 9 10 $zero 11 12 valor endereço do registrador de endereço do registrador dado a ser armazenado em destino zero (registrador reservado rd do MIPS). Instruções do tipo RI suportadas pela ULA3bits. • li 110 Pseudo-Instrução MIPS Load Immediate Exemplos: Instrução Comentário A=10; Alto nível li $1,$zero,010 MIPS 110001000010 Liguagem de máquina Instrução RM A instrução RM é uma instrução de registrador-memória. Nesta instrução é informado do registrador rd, a operação, o endereço da memória e o offset. O dado do endereço de memória informado é armazenado em rd. 1 bit campo tipo 2 opcode código da operação 3 4 5 rd 6 7 8 9 10 MEM 11 12 offset endereço do registrador de endereço do registrador espaço reservado destino que contém o endereço da memória. variável no banco de memória de Instruções do tipo RI suportadas pela ULA3bits. • lw 100 Instrução MIPS Load Word • sw 101 Instrução MIPS Store Word Exemplos: Instrução Comentário lw $1,$2,offset MIPS 100001010000 Liguagem de máquina sw $3,$1,offset MIPS 101011001000 Liguagem de máquina Exemplo de execução de programa de alto nível em linguagem de máquina na ULA3bits Pseudo linguagem MIPS Comentário Linguagem de máquina Var int a; int b; int c; li $1,$zero,1 li $2,$zero,2 li $3,$zero,3 Armazena em $1 o endereço da variável a(1); Armazena em $2 o endereço da variável b(2); Armazena em $3 o endereço da variável c(3); 110001000001 110010000010 110011000011 read a; li $4,$zero,3 sw $4,$1,offset Armazena em $4 o valor da variável a(3); Armazena no banco de memória o valor de $4 no endereço da variável a; 110100000011 101100001000 read b; li $4,$zero,2 sw $4,$2,offset c = a+b; lw $4,$1,offset lw $5,$2,offset add $6,$4,$5 sw $6,S3,offset Begin End Armazena em $4 o valor da variável b(2); Armazena no banco de memória o valor de $4 no endereço da variável b; carrega em $4 o valor da variável a; carrega em $5 o valor da variável b; soma $4+$5 e armazena no registrador$6 Armazena no banco de memória o valor de $6 no endereço da variável c; 110100000010 101100010000 100100001000 100101010000 010110100101 101110011000