diff --git a/notes.txt b/notes.txt index e69de29..fed892a 100644 --- a/notes.txt +++ b/notes.txt @@ -0,0 +1,126 @@ + +a = 0 +b = 1 +c = 1 + +print a + +loop + print b + c = a + b + a = b + b = c +loop si b < c + + + + +a b +R0 R1 R2 R3 +233 121 -233 121 + + +OUT +0 +1 +1 +2 + +233 + + + + + +a + b = a - -b + +SUB R0 R1 +R0 - R1 + +R0 = 0 +R1 = b +R2 = a +0 - b +R0 = -b + + +R0 = a +R1 = b +R2 = 0, -b +R3 = ? + + + +_data: +_add: + PUSH R2 + MOV R2 0 + SUB R2 R1 ; 0 - b + SUB R0 R2 ; a - (0 - b) = a - -b = a + b + POP R2 + RET +_main: + MOV R0 0 + MOV R1 1 + + ... + + R2 = 7 + CALL _add + R2 + +SUB R0 R1 +SUB R2 R0 +a - -b + + + + + + + + + + + + + + + + + + + + + + + +LDR Rx Ry _label ;génération binaire 1011xxyy aaaaaaaa avec xx et + ;yy = R0,R1,R2,R3 + ;load dans le registre xx la valeur à l'adresse aaaaaaaa+Ry + + +CMP Rx Ry ;génération binaire 0011xxyy avec xx et yy = R0,R1,R2,R3 + ;compare le registre xx à la valeur du registre yy, modifie + ;les flags LT et EQ + ;LT= (Rx