www

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

commit 300d616928dd000476012d3171a9a50bafef1774
parent a0ac4b19d60da0361cd89d05bbacd0e2ce89c36d
Author: Georges Dupéron <jahvascriptmaniac+github@free.fr>
Date:   Thu, 21 Oct 2010 17:29:04 +0200

Merge branch 'master' of https://github.com/dumbs/2010-m1s1-compilation

Diffstat:
Minstruction.lisp | 29+++++++++++++++++++++++++----
Mtest-unitaire.lisp | 3+--
2 files changed, 26 insertions(+), 6 deletions(-)

diff --git a/instruction.lisp b/instruction.lisp @@ -16,6 +16,8 @@ (BP . 0) ;; Sommet de la pile. (SP . 0) + ;; Sommet du cadre de la pile + (FP . 0) ;; Pointeur de code : fin de la mémoire. (PC . ,(- size 1)) ;; registres booléens = faux (nil). @@ -111,7 +113,7 @@ et termine par la liste APPEND." (format T "~&~4a ~2,'0x ~3d" (string reg) val val))) (get-register-list vm)) (let ((isn (get-memory vm (get-register vm 'PC)))) - (format T "~&Current instruction : ~2,'0x ~a" isn (isn-decode isn)))) + (format T "~&Current instruction : ~2,'0x ~a~&" isn (isn-decode isn)))) (defun ISN-LOAD (vm address register) (set-register vm register (get-memory vm address))) @@ -199,8 +201,8 @@ et termine par la liste APPEND." (defvar vm (make-vm (+ 10 (random 10)))) (defvar t-address (random (size-memory vm))) (defvar t-value (random 42)) -(set-memory vm t-address t-value) +(set-memory vm t-address t-value) (deftest virtual-machine (progn (ISN-LOAD vm t-address 'R0) (get-register vm 'R0)) @@ -212,5 +214,25 @@ et termine par la liste APPEND." (get-memory vm t-address)) (get-register vm 'R0)) +(setf t-value (random 42)) +(set-register vm 'R0 t-value) +(deftest virtual-machine + (progn (ISN-MOVE vm 'R0 'R1) + (get-register vm 'R1)) + t-value) + +(set-register vm 'R0 21) +(set-register vm 'R1 21) +(deftest virtual-machine + (progn (ISN-ADD vm 'R0 'R1) + (get-register vm 'R1)) + 42) + +(set-register vm 'R0 21) +(set-register vm 'R1 21) +(deftest virtual-machine + (progn (ISN-SUB vm 'R0 'R1) + (get-register vm 'R1)) + 0) -(dump-vm vm) -\ No newline at end of file +(dump-vm vm) diff --git a/test-unitaire.lisp b/test-unitaire.lisp @@ -46,4 +46,4 @@ ;; exécuté avant environnement quel que soit l'ordre des paramètres. ;(run-test environnement vm) ;(run-test environnement vm environnement2) -;(run-test t) ;; t => tous -\ No newline at end of file +;(run-test t) ;; t => tous