;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ; IN: ESI = OFFSET TO A STRING CONTAINING A HEX NUMBER LIKE '3abh' ; OUT: EBX = THE NUMBER ;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ STR2HEX: XOR EBX, EBX ADDNEXTHEX: MOV AL, [DS:ESI] CMP AL, 'h' JE ENDOFSTR2HEX CMP AL, 0 JE ENDOFSTR2HEX CMP AL, ' ' JE ENDOFSTR2HEX MOV EDI, HEXTABLO MOV CL, 0 TRYNEXTHEX: MOV AH, [DS:EDI] ; GET A VALUE FROM THE HEXTAB CMP AH, 0 JE ENDOFSTR2HEX ; ENDOF HEXTAB, JMP CMP AL, AH ; EQUAL ? JNE NOTTHISHEXCHAR ; NOPE SHL EBX, 4 MOVZX ECX, CL ADD EBX, ECX INC ESI JMP ADDNEXTHEX NOTTHISHEXCHAR: INC EDI INC CL JMP TRYNEXTHEX ENDOFSTR2HEX: RET