; ASLA / ASLX ; Décalage arithmétique d'un bit à gauche du registre A / X. ; ; ASLA: code instruction: 0001110r, soit 00011100 (r:0 (registre A)) hexa:1C ; ASLX: code instruction: 0001110r, soit 00011101 (r:1 (registre X)) hexa:1D ; ; lors du décalage vers la gauche, le bit de gauche est copié dans le témoin C et un bit 0 est inséré à droite ; LDA 8,i ; A=0008 (0000 0000 0000 1000) (8 en décimal) ASLA ; A=0010 (0000 0000 0001 0000),(16 en décimal) témoins:N=0,Z=0,V=0,C=0 (bit perdu -> C) ; ; multiplie le nombre par 2 BRV déborde ASLA ; A=0020 (0000 0000 0010 0000),(32 en décimal) témoins:N=0,Z=0,V=0,C=0 (bit perdu -> C) ; ; multiplie le nombre par 4 BRV déborde ASLA ; A=0040 (0000 0000 0100 0000),(64 en décimal) témoins:N=0,Z=0,V=0,C=0 (bit perdu -> C) ; ; multiplie le nombre par 8 BRV déborde ASLA ; A=0080 (0000 0000 1000 0000),(128 en décimal) témoins:N=0,Z=0,V=0,C=0 (bit perdu -> C) ; ; multiplie le nombre par 16 BRV déborde ASLA ; A=0100 (0000 0001 0000 0000),(256 en décimal) témoins:N=0,Z=0,V=0,C=0 (bit perdu -> C) ; ; multiplie le nombre par 32 BRV déborde ASLA ; A=0200 (0000 0010 0000 0000),(512 en décimal) témoins:N=0,Z=0,V=0,C=0 (bit perdu -> C) ; ; multiplie le nombre par 64 BRV déborde ASLA ; A=0400 (0000 0100 0000 0000),(1024 en décimal) témoins:N=0,Z=0,V=0,C=0 (bit perdu -> C) ; ; multiplie le nombre par 128 BRV déborde ASLA ; A=0800 (0000 1000 0000 0000),(2048 en décimal) témoins:N=0,Z=0,V=0,C=0 (bit perdu -> C) ; ; multiplie le nombre par 256 BRV déborde ASLA ; A=1000 (0001 0000 0000 0000),(4096 en décimal) témoins:N=0,Z=0,V=0,C=0 (bit perdu -> C) ; ; multiplie le nombre par 512 BRV déborde ASLA ; A=2000 (0010 0000 0000 0000),(8192 en décimal) témoins:N=0,Z=0,V=0,C=0 (bit perdu -> C) ; ; multiplie le nombre par 1024 BRV déborde ASLA ; A=4000 (0100 0000 0000 0000),(16384 en décimal) témoins:N=0,Z=0,V=0,C=0 (bit perdu -> C) ; ; multiplie le nombre par 2048 BRV déborde ASLA ; A=8000 (1000 0000 0000 0000),(-32768 en décimal) témoins:N=1,Z=0,V=1,C=0 (débordement) ; ; multiplie le nombre par 4096 BRV déborde ; il y aura un branchement à déborde car le nombre devient négatif ; ASLA ; A=0000 (0000 0000 0000 0000),(0 en décimal) témoins:N=0,Z=1,V=1,C=1 (bit perdu -> C) ; ; multiplie le nombre par 8192 BRV déborde ; il y aura un branchement à déborde car le nombre devient positif ; LDX mot,d ; X=CAFE (1100 1010 1111 1110) ASLX ; X=95FC (1001 0101 1111 1100) témoins:N=1,Z=0,V=0,C=1 (bit perdu -> C) ASLX ; X=2BF8 (0010 1011 1111 1000) témoins:N=0,Z=0,V=1,C=1 (bit perdu -> C) * débordement * ASLX ; X=57F0 (0101 0111 1111 0000) témoins:N=0,Z=0,V=0,C=0 (bit perdu -> C) ASLX ; X=AFE0 (1010 1111 1110 0000) témoins:N=1,Z=0,V=1,C=0 (bit perdu -> C) * débordement * ; ; Tous les TEMOINS sont affectés. ; ; le TEMOIN de débordement (V=1) quand le contenu change de signe ; le TEMOIN C contient le bit perdu lors du décalage ; déborde: NOP0 ; usage futur STOP mot: .WORD 0xCAFE ; hexa: CAFE .END