comment # Author: Vincent Castellano Date: 10/18/05 Class: CSIS 165 Assignment: 2. ASCII to Binary Write an AtoB fucntion, which is essentially an asm implimentation of the function atoi. Converts an ascii string of numbers to it's binary representation. # .586 .model flat, stdcall .stack 1024 .data binary dword ? ;double word answer ascii byte "123456789",0 ;input null-terminated string .code main PROC call AtoB ;convert ASCII to Binary nop ;landing spot for debugger main ENDP AtoB PROC mov eax, 0 ;clear out eax mov ebx, offset ascii ;load address of first char into ebx mov esi, 10 ;store multiple per digit calc: movsx ecx, byte ptr [ebx] ;store first digit char sub ecx, 30h ;subtract offset on ascii inc ebx ;move ebx addr to next char add eax, ecx ;add digit value into accum cmp byte ptr [ebx],0 ;see if we just grabbed the last digit je nmult ;last digit, don't multiply for ones place value mul esi ;multiply value by 10 to get new place value nmult: cmp byte ptr [ebx], 0 ;compare character value to our EOL ja calc ;jump if the char value is greater then 0 (if not, EOL) mov binary, eax ;store answer ret AtoB ENDP END main ;lead in comment # For values of: "429496729" x00403FF3 00 00 00 00 00 00 00 00 00 00 00 00 00 99 ............. 0x00404001 99 99 19 34 32 39 34 39 36 37 32 39 00 00 .429496729.. "0" 0x00403FF3 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .............. 0x00404001 00 00 00 30 00 00 00 00 00 00 00 00 00 00 ...0.......... "123456789" 0x00403FF3 00 00 00 00 00 00 00 00 00 00 00 00 00 15 .............. 0x00404001 cd 5b 07 31 32 33 34 35 36 37 38 39 00 00 [.123456789.. #