home *** CD-ROM | disk | FTP | other *** search
-
- ; FILENAME: OCMDNUM.ASM
- ; Copyright (c) 1988, 1989 by Borland International, Inc.
- ;
- ; Description: This module implements the routine CmdNum. CmdNum
- ; parses the command line.
- ;
- ; ASSEMBLY INSTRUCTIONS: To assemble this module use the following
- ; TASM command line.
- ;
- ; TASM ocmdnum
-
- include globals.inc
-
- _TEXT segment
-
- CmdNum proc
-
- ; This function reads in a command line number.
- ; The command line number is returned in cx
- ; Input
- ; si - address of start of command line
- ; Output
- ; command processed
- ; cx - command line number
- ; Registers modified
- ; ax, bx, cx
-
- sub cx, cx
-
- cmdnum1:
- cmp bx, si ;check if done
- je cmdnum2
- cmp BYTE PTR [si], '0' ;check if below zero
- jb cmdnum2
- cmp BYTE PTR [si], '9' ;check if above nine
- ja cmdnum2
-
- mov ax, 10 ;base ten
- mul cx ;multiply
- jc cmdnum3 ;jump if overflow
- mov cx, ax ;back into total
- lodsb ;load number
- sub al, '0' ;convert to binary
- sub ah, ah
- add cx, ax ;add to total
- jmp cmdnum1
-
- ;--- finished
-
- cmdnum2:
- ret
-
- ;--- overflow
-
- cmdnum3:
- mov al, 0 ;error number
- call ErrorExit ;call error routine
- CmdNum endp
-
- _TEXT ends
-
- end