Email: Password: Remember Me | Create Account (Free)

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
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


List of 6 messages in thread
TopicAuthorDate
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      

Back to Subject List