📄 零.asm
字号:
DATAS SEGMENT ; 输出结果有点问题
;此处输入数据段代码
ARRAY dB 2,0,0,2,0,0,0,1,2,3,6,4,7,8,2,1,5,0,45,7,5,1,2,0,5,89
dB 0,0,54,5,0,2,4,7,8,0,5,6,2,1,4,8,5,1,45,7,0,2,4,0,2
dB 5,1,2,0,2,4,0,2,54,0,12,0,0,0,0,0,1,2,3,6,4,7,8,2,1,0
dB 5,0,2,4,7,8,0,5,6,2,1,4,8,5,1,45,7,5,1,2,0,2,4,0,2
LEN dw $-ARRAY
LASTLEN DB 0
DATAS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS
START:
MOV AX,DATAS
MOV DS,AX
;此处输入代码段代码
MOV AH,00H
MOV CX,LEN
LEA SI,ARRAY
LOP:
MOV DH,[SI]
CMP DH,0
JE MOVEFRONT
JNE LOP2
MOVEFRONT:
MOV BX,SI
LEA DI,[SI+1]
LOP1:
MOV AL,[DI]
CMP AL,0
JNE LOP4
INC DI
LOOP LOP1
LOP4:
MOV [SI+ARRAY],AL
INC DI
INC SI
CMP DI,CX
JBE LOP1
MOV SI,BX
MOV AL,[SI+1]
CMP AL,0
JE MOVEFRONT
LOP2:
ADD AH,1
INC SI
CMP SI,CX
JBE LOP
MOV DX,0000H
MOV CL,AH ;不为0的数的个数存放在CX里面
MOV CH,00H
LEA SI,ARRAY
OUTPUT:
MOV DL,[SI] ;取数组中的值
MOV AL,DL
MOV AH,00H ;放在AX
MOV BL,0AH
MOV BH,00H
STORE:
DIV BL
MOV DL,AH ;余数保存
MOV DH,00H
PUSH DX
INC BH
MOV AH,00H
CMP AL,0 ;判断商是否为0
JNE STORE
OUTPUT1:
POP DX
ADD DL,30H
MOV AH,02H
INT 21H
DEC BH
CMP BH,0
JNZ OUTPUT1
MOV DL,2CH
MOV AH,02H
INT 21H
INC SI
DEC CL
CMP CL,0
JNZ OUTPUT
MOV AH,4CH
INT 21H
CODES ENDS
END START
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -