Programme de test

;==============================================================
;== TP5 : Programme test.s
;==============================================================
;Il s'agit ici d'un fichier commenté du programme test.s
;
; La première zone correspond à la zone "programme"
; Le début de chaque ligne correspond à la zone programme. Elle comporte :
;       Code assembleur : colonnes 1,2,3 (label, code, operande)
;La fin de chaque ligne est un commentaire comportant
;       Le PC corresponsant à l'adresse de l'instruction en cours : colonne 4
;       L'adresse en RAM de l'éventuelle opérande : colonne 5
;       Le registre I (instruction en cours) : colonne 6
;       Accumulateur, Z et C après exécution de l'instruction en cours : colonnes 7,8 et 9
;       Commentaire global : colonne 10
;
;Les constantes indiquées sous forme 0xxx sont en hexadécimal.
;
;La deuxieme zone correspond a la zone des données. De même, elle comporte
;       Code assembleur : colonne 1,2,3 (nom variable, valeur, adresse)
;       Valeur variable : colonne 4,5,6 (décimal, binaire et hexadécimal)
;

;=================================================================
;== Zone programme
;=================================================================

;label  code operande;   PC       I     AD        accu   C  Z  Commentaire

:DEBUT  NOP  ZERO    ;  0x00      0x0    0x39        0x00    0  0
        LDA  DATA0   ;  0x02      0xA    0x30        0xFF    0  0    (DATA0 : donnée à l'adresse 0x30)
        XOR  DATA1   ;  0x04      0x1    0x31        0x3A    0  0    (A = 0xFF XOR 0xC5)
        AND  DATA2   ;  0x06      0x2    0x32        0x10    0  0    (A = 0x3A AND 0x10)
        OR   DATA3   ;  0x08      0x3    0x33        0x31    0  0    (A = 0x10 OR  0x21)
        ADD  DATA4   ;  0x0A      0x4    0x34        0x00    1  1    (A = 0x31  +  0xCF)
        ADC  DATA5   ;  0x0C      0x5    0x35        0x01    0  0    (A = 0x00  +  0x00  + 1)
        SUB  DATA6   ;  0x0E      0x6    0x36        0xFF    1  0    (A = 0x01  -  0x02)
        SBC  DATA7   ;  0x10      0x7    0x37        0x00    0  1    (A = 0xFF  -  0xFD  - 1)
        XOR  DATA1   ;  0x12      0x1    0x31        0xC5    0  0    (A = 0x00 XOR 0xC5)
        ROL  ZERO    ;  0x14      0x8    0x39        0x8A    0  0    (A = ROL(0xC5))
        ROR  ZERO    ;  0x16      0x9    0x39        0xC5    0  0    (A = ROR(0x8A))
        STA  RESULT  ;  0x18      0xB    0x3B        0xC5    0  0    (Memoire[0x3B] <- 0xC5)
        LDA  ZERO    ;  0x1A      0xA    0x39        0x00    0  1    (A <- Memoire[0x39])
        LDA  RESULT  ;  0x1C      0xA    0x3B        0xC5    0  0    (A <- Memoire[0x3B])
        LDA  COUNT   ;  0x1E      0xA    0x38        0x03    0  0    (A <- Memoire[0x38])
        OUT  UN      ;  0x20      0xC    0x3A        0x03    0  0    (BZ <- Memoire[0x3A][0])
:COMPT1 SUB  UN      ;  0x22      0x6    0x3A        0x02    0  0    (A = 0x03  -  0x01)
        JNC  COMPT1  ;  0x24      0xE    0x22        0x02    X  0    Retour à COMPT1 3 fois
        LDA  COUNT   ;  0x26      0xA    0x38        0x03    0  0    (A <- Memoire[0x38])
        OUT  ZERO    ;  0x28      0xC    0x39        0x03    0  0    (BZ <- Memoire[0x39][0])
:COMPT2 SUB  UN      ;  0x2A      0x6    0x3A        0x02    0  0    (A = 0x03  -  0x01)
        JNZ  COMPT2  ;  0x2C      0xF    0x2A        0x02    0  0    Retour à COMPT2 2 fois
        JMP  DEBUT   ;  0x2E      0xD    0x00        0x00    0  1    Retour à debut
;===================================================================
;== Zone donnees
;===================================================================
;Nom variable    Valeur    Ad   Décimal  Binaire     Hexadécimal
:DATA0    .db   255     ; 0x30    255     11111111      0xFF
:DATA1    .db   197     ; 0x31    197     11000101      0xC5
:DATA2    .db   16      ; 0x32     16     00010000      0x10
:DATA3    .db   33      ; 0x33     33     00100001      0x21
:DATA4    .db   207     ; 0x34    207     11001111      0xCF
:DATA5    .db   0       ; 0x35      0     00000000      0x00
:DATA6    .db   2       ; 0x36      2     00000010      0x02
:DATA7    .db   254     ; 0x37    254     11111110      0xFD
:COUNT    .db   3       ; 0x38      3     00000011      0x03
:ZERO     .db   0       ; 0x39      0     00000000      0x00
:UN       .db   1       ; 0x3A      1     00000001      0x01
:RESULT   .db   0       ; 0x3B      0     00000000      0x00
Fichier attachéTaille
Binary Data Pour télécharger le programme de test4.33 Ko