htoi.asm
来自「dos 1.0 其中包含quick basic源代码、内存管理himem emm」· 汇编 代码 · 共 71 行
ASM
71 行
;***
;* $Workfile: htoi.asm $
;* $Revision: 1.0 $
;* $Author: Dave Sewell $
;* $Date: 28 Apr 1989 16:50:42 $
;*
;* Hex string to integer, assembly language version
;**/
INCLUDE dos.mac
TEXTSEG
; extern int pascal htoi(char *pnt);
PASCALDEF htoi
push bp
mov bp, sp
push si
IF LDATA
push ds
lds si, [BP + X]
ELSE
mov si, [BP + X]
ENDIF
xor dx, dx
mov cl, 4
xor ah, ah
hloop: lodsb
cmp al, 'f'
ja done
cmp al, 'a'
jb chkupper
sub al, '0' + ('a' - 'A') + 7
jmp short nextdig
chkupper: cmp al, 'F'
ja done
cmp al, 'A'
jb chkdigit
sub al, '0' + 7
jmp short nextdig
chkdigit: sub al, '0'
jc done
cmp al, 9
ja done
nextdig: shl dx, cl
add dx, ax
jmp hloop
done: mov ax, dx
IF LDATA
pop ds
ENDIF
pop si
pop bp
ret I
PASCALEND htoi
TEXTEND
END
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?