| ??? 06/01/02 00:00 Read: times |
#23711 - RE: converting an assembly to C |
Hi,
here r the comments TW2HX : PUSH ACC MOV A,R0 PUSH ACC CALL SWAP_DPTR ;GETS PTR TO STRING MOVX A,@DPTR ;GETS 1ST CHAR INC DPTR CALL CH2HX ;CONVERTS TO HEX SWAP A ; SWAPS NIBBLES MOV R0,A ; SAVES MOVX A,@DPTR ;GETS NEXT CHAR INC DPTR ;POINT TO NEXT CHAR CALL CH2HX XCH A,R0 ORL A,R0 ;OR'S THE UPPER NIB (A) WITH THE LOWER (R0) CALL SWAP_DPTR ;GET PTR TO VAR MOVX @DPTR,A ;SAVE THE HEX # IN VAR INC DPTR POP ACC MOV R0,A POP ACC RET ------------------------------------------- CH2HX : ; CVTS HEX DIGIT INTO NIBBLE TESTS IF CHAR IN ACC IS HEX AND CVTS CLR OV ;IF NOT SET OV CLR C SUBB A,#48 ;SUB 48D TO CVT '0'< TO 0< CJNE A,#23,IS_1 ;IF > F EXIT JMP HX_BAD IS_1 EQU $ JNC HX_BAD ;IF UNDERFLOW, OR GREATER THAN 22 EXIT CJNE A,#09,IS_2 ;IF = 9 THEN IT GOOD JMP HX_GOOD IS_2 EQU $ JC HX_GOOD ;IF < 9 THEN IT GOOD CJNE A,#16,IS_3 ;IF < 16 THEN BAD JMP HX_BAD IS_3 EQU $ JC HX_BAD CLR C SUBB A,#07 ;SUB 7 TO GET 'A' TO 10D JMP HX_GOOD HX_BAD: SETB OV HX_GOOD: CLR C RET -------------------------------------------- SWAP_DPTR : ; SIMPLY SWAPS DPTR WITH R6:R7 PUSH ACC MOV A,DPL MOV DPL,R7 MOV R7,A MOV A,DPH MOV DPH,R6 MOV R6,A POP ACC RET --------------------------------------------- hope its clear couldn't edit in a better way regards roger |
| Topic | Author | Date |
| converting an assembly to C | 01/01/70 00:00 | |
| RE: converting an assembly to C | 01/01/70 00:00 | |
| RE: converting an assembly to C | 01/01/70 00:00 | |
| RE: converting an assembly to C | 01/01/70 00:00 | |
| RE: converting an assembly to C | 01/01/70 00:00 | |
RE: converting an assembly to C | 01/01/70 00:00 |



