; helder.correia@fe.up.pt ; -------== Ex8 ==------- ; Suponha já existente a rotina CountBits que conta o número de bits a um ; do acumulador, devolvendo o resultado também no acumulador. ; ; a) Escreva um programa que, recorrendo a essa rotina, conte o número ; de bits a um de uma zona de memória de dados interna com início ; apontado pelo registo R0 e comprimento indicado no registo R7. O ; resultado deve ficar em R7. cseg at 0 mov r1,#0 ciclo: mov a,@r0 acall CountBits add a,r1 mov r1,a inc r0 djnz r7,ciclo mov r7,1 sjmp $ ; b) Escreva a rotina CountBits. CountBits: mov r3,#8 mov r2,#0 loop: rlc a jnc nc inc r2 nc: djnz r3,loop mov a,r2 ret end