Estrazione radice quadrata con registri da 8 o 16 bit ===================================================== ;PROGRAMMA IN ASSEMBLER 51 - ESTRAZIONE RADICE QUADRATA ;REGISTRI A 8 BIT - RISULTATO INTERO IN R2 OPPURE IN ACC ;IL PROGRAMMA ESEGUE A=A+2 FINO A QUANDO A=R1 ;I DATI SONO TUTTI IN DECIMALE MOV PSW,#0 ;USO REGISTRI BANCO 0 MOV R1,#200 ;NUMERO DA ESTRARRE RQ IN R1 MOV R2,#0 ;REGISTRO RISULTATO MOV ACC,#1 ;REGISTRO ACCUMULATORE MOV R3,#1 ;REGISTRO USO COMUNE CLR C UNO: INC R2 INC R3 INC R3 ADD A,R3 JC DUE ;SALTA CON CARRY CLR C PUSH ACC DEC ACC SUBB A,R1 POP ACC JC UNO ;SALTA CON CARRY DUE: MOV A,R2 ;FINE NOP END ;PROGRAMMA IN ASSEMBLER Z80 - ESTRAZIONE RADICE QUADRATA ;REGISTRI A 16 BIT - RISULTATO INTERO NEI REGISTRI A E B ;IL PROGRAMMA ESEGUE HL=HL+2 FINO A QUANDO HL=DE ;I DATI SONO TUTTI IN DECIMALE LD DE,50000 ;NUMERO DA ESTRARRE RQ IN DE LD BC,1 ;REGISTRO USO COMUNE LD A,0 ;REGISTRO RISULTATO LD HL,1 ;REGISTRO ACCUMULATORE AND A ;CARRY = 0 UNO: INC A INC BC INC BC ADD HL,BC JRC DUE ;SALTO RELATIVO CON C=1 AND A PUSH HL DEC HL SBC HL,DE POP HL JRC UNO ;SALTO RELATIVO CON C=1 DUE: LD B,A ;FINE NOP END Saluti, Emilio - ik1wjq. (Vai a pagina1)