diff --git a/lib.c b/lib.c
index 7bb0a144f368e590d852a5c855315a891f4cffc9..5b605f33aeb2d8f37664d50559c673119b798f3f 100644
--- a/lib.c
+++ b/lib.c
@@ -845,20 +845,22 @@ void print_read(struct symtable * t,struct code * c, FILE* fout,int i)
             #ifdef LIBDEBUG
             fprintf(fout,"%s# float read section\n",tabulation);
             #endif
+            // System call read float
             fprintf(fout,"%sli $v0, 6\n",tabulation);
             fprintf(fout,"%ssyscall\n",tabulation);
-            fprintf(fout,"%ssw $v0, %s\n",tabulation,c->quads[i].sym1->u.name);
-            fprintf(fout,"%saddi $t0, $v0, 4\n",tabulation);
-            fprintf(fout,"%sla $t1, %s\n",tabulation,c->quads[i].sym1->u.name);
-            fprintf(fout,"%slwc1 $f0, 0($t1)\n",tabulation);
+            // Assign given value to float variable
+            fprintf(fout,"%slw $t2, %s\n",tabulation,c->quads[i].sym1->u.name);
+            fprintf(fout,"%saddi $t0, $t2, 0\n",tabulation);
             fprintf(fout,"%sswc1 $f0, ($t0)\n",tabulation);
             #ifdef LIBDEBUG
             fprintf(fout,"%s# end of float read section\n",tabulation);
             #endif
             break;
         case NAME_LOC:
+            // System call read int
             fprintf(fout,"%sli $v0, 5\n",tabulation);
             fprintf(fout,"%ssyscall\n",tabulation);
+            // Assign given value to int variable
             fprintf(fout,"%ssw $v0, %s\n",tabulation,c->quads[i].sym1->u.name);
             break;
         default: