CPC Rulez
https://cpcrulez.fr/forum/

Quelques petites fautes dans l'OCR ?
https://cpcrulez.fr/forum/viewtopic.php?f=4&t=4726
Page 1 sur 1

Auteur :  ced64k [ 28 Jan 2012, 11:38 ]
Sujet du message :  Quelques petites fautes dans l'OCR ?

Je suis en train de faire l'autoformation assembleur dr watson. Il y a de temps en temps des petites fautes dans l'OCR. Par exemple :

https://cpcrulez.fr/codingBOOK_watson_ch02.htm

Code :
------------------------------------------------
!  CASE      !  NUMERO    !  CODE  !  CODE     !
! MÉMOIRE    ! DE LIGNE   ! OBJET  ! SOURCE    !
------------------------------------------------
!  7530      !   10       !        ! ORG 30000 !
!  7530      !   20       ! 3E53   ! LD A,83   !
!  7532      !   30       ! C33673 ! JP 30006  !
!  7535      !   40       ! C9     ! RET       !
!  7536      !   50       ! C601   ! ADD A,1   !
!  7538      !   60       ! CD5ABB ! CALL 47962!
!  753B      !   70       ! 70     ! JP 30005  !
------------------------------------------------


La dernière ligne devrait être

Code :
!  753B      !   70       ! C33575     ! JP 30005  !


PROGRAMME 2.2
Code :
ORG 30000
LD C,10
LD A,65
CALL 47962
DEC C
JR NZ,30004
RET


L'avant dernière ligne devrait être

Code :
JR NZ,30001


Non ?

Ou alors c'est fait exprès parce que j'essaie d'apprendre l'assembleur, pour que je reste attentif et découvre les erreurs :D

Auteur :  hERMOL [ 28 Jan 2012, 14:25 ]
Sujet du message :  Re: Quelques petites fautes dans l'OCR ?

pour ce qui est du jr nz,30004 il est juste !
Je modifie le tableau, thk

Auteur :  ced64k [ 28 Jan 2012, 16:15 ]
Sujet du message :  Re: Quelques petites fautes dans l'OCR ?

hERMOL a écrit :
pour ce qui est du jr nz,30004 il est juste !


T'es sûr ? Parce que juste après il est écrit : "Cet opérateur teste l'état actuel du flag zéro et fait un saut relatif (Jumps Relative) à 30001 si la dernière instruction arithmétique a un résultat non-zéro."

Auteur :  hERMOL [ 28 Jan 2012, 17:18 ]
Sujet du message :  Re: Quelques petites fautes dans l'OCR ?

ok, j'ai pas lu la suite, a vu d'oeil je pensais que c'était une bête boucle, mais la ca reinit les variables d'entrée de la routine 47962 avant de la re-exécuter.

Auteur :  fano [ 28 Jan 2012, 17:28 ]
Sujet du message :  Re: Quelques petites fautes dans l'OCR ?

Ah bon ? si tu sautes en 30001 tu vas retomber sur un ld A,(BC) (le "10" de ld C,10 te donne cette instruction), ça me semble peu cohérent surtout si il est suivi d'un ld A,65 à moins de voir le reste du code (bien sur c'est pas impossible mais c'est plutot un trick comme les conditionnal RST ou les instructions casées dans les opérandes d'un jr/jp)

jr nz,30004 me semble tout de même plus logique à défaut d'autres éléments puisque tu vas retomber bien proprement sur ton call.

Auteur :  Plissken [ 28 Jan 2012, 19:13 ]
Sujet du message :  Re: Quelques petites fautes dans l'OCR ?

Ce serais pas mieux d'avoir les adresses en hexa ?

Auteur :  ced64k [ 28 Jan 2012, 22:41 ]
Sujet du message :  Re: Quelques petites fautes dans l'OCR ?

Bon ok j'ai rien dit pour ce 30004, c'est correct, je n'avais pas tout lu :)

Citer :
Observons le programme, la seule ligne qui n'a pas été encore rencontrée est JR NZ. Cet opérateur teste l'état actuel du flag zéro et fait un saut relatif (Jumps Relative) à 30001 si la dernière instruction arithmétique a un résultat non-zéro. Ainsi le programme met le contenu de l'accumulateur sur l'écran, DECremente le registre C et vérifie si le flag zéro a été mis par l'instruction de DECrémentation. S'il ne l'a pas été, autrement dit si c'est Non Zéro, il fait alors un saut relatif a 30004, sinon il va à la ligne suivante du programme où il RETourne au programme principal (ici le Basic).


Sinon pour les chiffres en décimal, l'auteur dit avoir mis ça pour ne pas perturber le lecteur avec l'hexadécimal au début. Un peu étrange en effet parce que tous les bouquins commencent justement par ça.

Auteur :  ced64k [ 16 Fév 2014, 20:33 ]
Sujet du message :  Re: Quelques petites fautes dans l'OCR ?

J'ai encore trouvé une faute dans ce tableau, à la 3ième c'est C33675 et pas C33673.

Code :
 
    !  7532      !   30       ! C33673 ! JP 30006  !

D'ailleurs c'est expliqué un peu plus loin
Citer :
Donc, en commençant par 30000, qui contient '3E', nous avons 53, C3, 36, 75, C9, et puis C6.

Auteur :  hERMOL [ 17 Fév 2014, 08:12 ]
Sujet du message :  Re: Quelques petites fautes dans l'OCR ?

:JC_doubleup:

Page 1 sur 1 Le fuseau horaire est UTC+1 heure
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/