

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Asignatura: Introducció als Computadors, Profesor: Juan J. Navarro, Carrera: Enginyeria Informàtica, Universidad: UPC
Tipo: Ejercicios
1 / 2
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!


1514131211109876543210
Mnemonic Example Assembler Example Operation (in pseudo C language) 0 0 0 0 a a a b b b d d d f f f AND,ADD, SUB,^ OR,^ SHA,XOR, SHL^ NOT,NOTADD^ Rd,Rd,^ RaRa, Rb Rd=~Ra;Rd=Ra+Rb;
0 0 0 1 a a a b b b d d d f f f CMPLT,CMPLTU,^ CMPLE, CMPLEU,^ -, -,CMPEQ, - CMPLECMPLEU^ Rd,Rd,^ Ra,Ra,^ RbRb if(Ras<Rbs)Rd=1 else^ Rd=0; if(Rau<Rbu)Rd=1 else Rd=0; 0 0 1 0 a a a d d d n n n n n n ADDI ADDI Rd, Ra, N6 Rd=Ra+SE(N6); 0 0 1 1 a a a d d d n n n n n n LD LD Rd, N6(Ra) (^) Rd=Memw[(Ra+SE(N6))&(~1)] 0 1 0 0 a a a b b b n n n n n n ST ST N6(Ra), Rb Memw[(Ra+SE(N6))&(~1)]=Rb 0 1 0 1 a a a d d d n n n n n n LDB LDB Rd, N6(Ra) Rd=SE(Memb[Ra+SE(N6)]); 0 1 1 0 a a a b b b n n n n n n STB STB N6(Ra), Rb Memb[Ra+SE(N6)]=Rb<7..0>; 0 1 1 1 a a a d d d x x x x x x JALR JALR Rd, Ra (^) PC=PC+2;tmp=Ra&(~1);Rd=PC;PC=tmp 1 0 0 0 a a a^0 n n n n n n n n BZ^ BZ^ Ra,^ N8^ PC=PC+2;if(Ra==0)PC=PC+SE(N8)* 1 BNZ BNZ Ra, N8 PC=PC+2;if(Ra!=0)PC=PC+SE(N8)* d d d 0 MOVI MOVI Rd, N8 Rd=SE(N8); 1 0 0 1 a a a 1 n n n n n n n n MOVHI MOVHI Rd, N8 Rd<15..8>=N8; d d d 1 0 1 0 d d d 0 n n n n n n n n IN^ IN^ Rd,^ N8^ Rd=Input[N8]; a a a 1 OUT OUT N8, Ra Output[N8]=Ra; 1 0 1 1 x x x x x x x x x x x x Future Extensions 1 1 x x
Assembler Operation (in pseudo C language)^1 Foot Note Format Op. Code e F Name AND Rd, Ra, Rb Rd=Ra&Rb 2 3R 0 - 0 Bitwise logical And OR Rd, Ra, Rb Rd=Ra|Rb 2 3R 0 - 1 Bitwise logical Or XOR Rd, Ra, Rb Rd=Ra^Rb 2 3R 0 - 2 Bitwise logical Xor NOT Rd, Ra Rd=~Ra 2 3R 0 - 3 Bitwise logical Not ADD Rd, Ra, Rb Rd=Ra+Rb (^2) 3R 0 - 4 Add SUB Rd, Ra, Rb Rd=Ra-Rb (^2) 3R 0 - 5 Subtraction SHA Rd, Ra, Rb Rd=Ras2Rb<4..0>s 2, 3, 4 3R 0 - 6 Shift arithmetic SHL Rd, Ra, Rb Rd=Rau2Rb<4..0>s 2, 3, 4 3R 0 - 7 Shift logic CMPLT Rd, Ra, Rb if(Ras<Rbs)Rd=1^ else^ Rd=0^2 3R 1 - 0 Compare if less than CMPLE Rd, Ra, Rb if(Ras<=Rbs)Rd=1^ else^ Rd=0^2 3R 1 - 1 Compare if less or equal CMPEQ Rd, Ra, Rb if(Ra==Rb)Rd=1 else Rd=0 (^2) 3R 1 - 3 Compare if equal CMPLTU Rd, Ra, Rb if(Rau<Rbu)Rd=1^ else^ Rd=0^2 3R 1 - 4 Compare less than for unsigned CMPLEU Rd, Ra, Rb if(Rau<=Rbu)Rd=1^ else^ Rd=0^2 3R 1 - 5 Compare if less or equal for unsigned ADDI Rd, Ra, N6 Rd=Ra+SE(N6) 2, 5, 6 2R 2 - - Add immediate LD Rd, N6(Ra) Rd=Memw[(Ra+SE(N6))&(~1)]^ 2, 5, 6, 8 2R 3 - - Load ST N6(Ra), Rb Memw[(Ra+SE(N6))&(~1)]=Rb^ 2, 5, 6, 8 2R 4 - - Store LDB Rd, N6(Ra) Rd=SE(Memb[Ra+SE(N6)])^ 2, 5, 6, 7 2R 5 - - Load byte STB N6(Ra), Rb Memb[Ra+SE(N6)]=Rb<7..0>^ 2, 4, 5, 6, 7 2R 6 - - Store byte JALR Rd, Ra PC=PC+2;tmp=Ra&(~1);Rd=PC;PC=tmp 9 2R 7 - - Jump and link register BZ Ra, N8 PC=PC+2;if(Ra==0)PC=PC+SE(N8)2 1R 8 0 - Branch on zero BNZ Ra, N8 PC=PC+2;if(Ra!=0)PC=PC+SE(N8)2 1R 8 1 - Branch on not zero MOVI Rd, N8 Rd=SE(N8) (^) 2, 5, 6 1R 9 0 - Move immediate MOVHI Rd, N8 Rd<15..8>=N8 (^) 2, 4 1R 9 1 - Move immediate high IN Rd, N8 Rd=Input[N8] 2, 5 1R A 0 - Input OUT N8, Ra Output[N8]=Ra 2, 5 1R A 1 - Output
Format 1514131211109 8 7 6 5 4 3 2 1 0 Instruction Mnemonic 3R (Three register format):
c c c c a a a b b b d d d f f f AND,CMPLT,^ OR, CMPLE,^ XOR,^ NOT,-, CMPEQ,^ ADD,^ SUB, SHA,CMPLTU, CMPLEU,^ SHL -, -
2R (Two register format): c c c c a a a b b b n n n n n n ST, STB c c c c a a a d d d n n n n n n ADDI, LD, LDB, JALR 1R (One register format): c c c c a a a e n n n n n n n n BZ, BNZ, OUT c c c c d d d e n n n n n n n n MOVI, MOVHI, IN
a b d, , ∈{0 1 , , … , 7 }