linumber.s

来自「坦尼保姆」· S 代码 · 共 70 行

S
70
字号
! This program is meant to produce line number comments! for the non-empty lines of a program . It reads from! standard input and writes standard output.#include	"../syscalnr.h".SECT .TEXTlinnumst:	PUSH _GETCHAR	MOV  DX,0	MOV  CX,DX	MOV  BX,DX	MOV  DI,linnumbf1:	SYS	CMP  AX,0	JLE  9f	CMPB AL,'\n'	JE   8f	CMPB AL,'\t'	JE   7f	CMPB AL,' '	JL   1b	CMPB AL,0177	JG   1b	STOSB	INC  DX	INC  CX	JMP  1b7:	STOSB	INC  CX	ADD  DX,8	AND  DX,0XFFF8	JMP  1b8:	CMP  CX,0	JE   8f	PUSH CX	PUSH linnumbf	PUSH _STDOUT	PUSH _WRITE	SYS	AND  DX,0XFFF8	push 9	push _PUTCHAR3:	SYS	ADD  DX,8	CMP  DX,40	JL   3b	ADD  SP,12	INC  BX	PUSH BX	PUSH linnumfm	PUSH _PRINTF	SYS	MOV  DI,linnumbf	ADD  sp,6	MOV  CX,0	MOV  DX,CX	JMP 1b8:	PUSH AX	PUSH _PUTCHAR	SYS	ADD  SP,4	JMP 1b9:	PUSH 0	PUSH _EXIT	SYS.SECT .DATAlinnumfm: .ASCIZ "!%3d\n".SECT .BSSlinnumbf: .SPACE 80

⌨️ 快捷键说明

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