home *** CD-ROM | disk | FTP | other *** search
-
- ; This program prints the square root of a number you put on the command line.
- ;
- ; Link this one with ARGC32, and enable CCHEKSTR.
-
- .386p
- jumps
- code32 segment para public use32
- assume cs:code32, ds:code32, ss:code32
-
- include start32.inc
- include argc32.inc
-
- public _main
-
- ;±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
- ; DATA
- ;±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
- syntaxmsg db 'SYNTAX: EXAMPLE3 <hex number to root>$'
- numbuf db 32 dup(0)
-
- ;±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
- ; CODE
- ;±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
-
- include sqrt.rt
- include pdosstr.rt
- include putnumtm.rt
- include strltu.rt
- include strhtn.rt
-
- ;-----------------------------------------------------------------------------
- exiterr:
- mov edx,offset syntaxmsg
- call _putdosmsg
- jmp _exit
-
- ;ÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕ
- _main:
- xor al,al ; get number string from command line
- mov edx,offset numbuf
- call _cchekstr
- jc exiterr
-
- call _strltu ; lower to uppercase cuz strhtn needz
- call _strhtn ; it that way
-
- call _sqrt
-
- mov cl,7
- call _putnumtomem
- call _putdosstr ; buffer was all zeros before, so its
- ; already zero-terminated
- jmp _exit
-
-
- code32 ends
- end
-
-