📄 qiuhe.asm
字号:
INCLUDE filefuc.mac
PUBLIC QIUHE
STSG SEGMENT STACK 'S'
DW 32 DUP(?)
STSG ENDS
DATA SEGMENT
GILF DB '0'
REPMM DW ?
REPS DW ?
NGF DW ?
GIFL DB ?
SHUZU DW 30 DUP(?)
DB '$'
FILENAME DB 'F:\first.txt',0
CT EQU $-BUFFER
FILEHANDLE DW 2
SAS DB 7
DB ?
DB 7 DUP(?)
BUF DB 10
DB ?
DB 10 DUP(?)
BUFS DB 1020 DUP(?)
DATA ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
QIUHE PROC FAR
ASSUME CS:CODES,DS:DATA,SS:STACKS
PUSHREG
push DS
LOADDS DATA
OPENFILE FILENAME,FILEHANDLE
READFILE 1020,BUFS,FILEHANDLE
MOV BX,-6
MOV DI,0
MOV AL,0
KKSS:
ADD BX,36
CMP BX,1020
JA PPSS
MOV CL,1
MOV DX,0
XOR AH,AH
MOV AL,BUFS[BX]
SUB AL,48
CMP AL,0
JL KK
CMP AL,9
JA KK
MUL CL
MOV DX,AX
MOV AL,CL
PUSH BX
MOV BL,10
MUL BL
POP BX
MOV CL,AL
KK: XOR AH,AH
DEC BX
MOV AL,BUFS[BX]
SUB AL,48
CMP AL,0
JL KKS
CMP AL,9
JA KKS
MUL CL
ADD DX,AX
MOV AL,CL
PUSH BX
MOV BL,10
MUL BL
POP BX
MOV CL,AL
KKS:
XOR AH,AH
DEC BX
MOV AL,BUFS[BX]
SUB AL,48
CMP AL,0
JL PPSS
CMP AL,9
JA PPSS
MUL CL
ADD DX,AX
MOV SHUZU[DI],DX
INC DI
INC DI
JMP KKSS
PPSS:
MOV CX,DI
MOV SI,0
MOV DI,0
MOV AX,CX
MOV BL,2
DIV BL
MOV CL,AL
XOR CH,CH
MOV BX,0
DEC CX
LP:
MOV AX,SHUZU[BX]
PUSH CX
LP1:INC BX
INC BX
MOV DX,SHUZU[BX]
CMP AX,DX
JB X
LOOP LP1
JMP DONE
X:
MOV AX,DX
MOV DI,BX
LOOP LP1
DONE:
MOV AX,SHUZU[SI]
MOV BX,SHUZU[DI]
MOV SHUZU[SI],BX
MOV SHUZU[DI],AX
PUSH CX
PUSH SI
PUSH DI
MOV AX,SI
MOV BL,17
MUL BL
MOV SI,AX
MOV AX,DI
MUL BL
MOV DI,AX
MOV CX,33
CNSS:MOV BL,BUFS[SI]
MOV BH,BUFS[DI]
MOV BUFS[SI],BH
MOV BUFS[DI],BL
INC SI
INC DI
LOOP CNSS
POP DI
POP SI
POP CX
INC SI
INC SI
MOV DI,SI
MOV BX,SI
POP CX
LOOP LP
CLOSEFILE FILEHANDLE
OPENFILE FILENAME,FILEHANDLE
WRITEFILE 1020,BUFS,FILEHANDLE
CLOSEFILE FILEHANDLE
pop ds
POPREG
RET
QIUHE ENDP
CODES ENDS
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -