untab.asm

来自「dos 1.0 其中包含quick basic源代码、内存管理himem emm」· 汇编 代码 · 共 50 行

ASM
50
字号
;
; Expand all tabs to spaces
;

.xlist
include ..\h\cmacros.inc
.list

sBegin	code
assumes cs,code

cProc	UnTab,<PUBLIC>,<si,di>
ParmW	src
ParmW	dst
cBegin
	push	ds
	pop	es
	cld
	mov	si,src
	mov	di,dst
	mov	dx,di
	mov	cx,1
	mov	ah,' '
getc:
	lodsb
	cmp	al,9
	jz	tab
store:
	rep	stosb
	inc	cx
	or	al,al
	jnz	getc
	jmp	done
tab:
	mov	cx,di
	sub	cx,dx
	and	cx,7
	sub	cx,8
	neg	cx
	mov	al,ah
	jmp	store
done:
	lea	ax,[di-1]
	sub	ax,dst
cEnd

sEnd

end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?