我是靠谱客的博主 完美果汁,最近开发中收集的这篇文章主要介绍将首地址为MEM的100个字的数组中所有为0的项删除 ;并将后续项向前压缩,最后将数组剩余部分补上0。方法2!!!,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
;方法2
;将首地址为MEM的100个字的数组中所有为0的项删除
;并将后续项向前压缩,最后将数组剩余部分补上0DATA SEGMENT
MEM DW 1,2,0,3,0,0,4,5,0,0
COUNT DW ($-MEM)/2
DATA ENDS
STACK SEGMENT PARA STACK
DW 128 DUP(?)
TOP LABEL WORD
STACK ENDS
CODE SEGMENT
ASSUME SS:STACK,CS:CODE,DS:DATA
MAIN PROC FAR
START:
MOV AX,DATA
MOV DS,AX
MOV AX,STACK
MOV SS,AX
LEA SP,TOP
MOV CX,COUNT
LEA SI,MEM
SUB SI,2 ;先减2再加2相互抵消
L1: CMP CX,0 ;在数组中找到0后定位
JZ EXIT
ADD SI,2
DEC CX
MOV AX,[SI]
CMP AX,0
JNZ L1
MOV DI,SI
PUSH CX
L2: CMP CX,0 ;在定位的位置往后找非0,找到后定位;若再无非0项,则程序结束
JZ EXIT
ADD DI,2
DEC CX
MOV AX,[DI]
CMP AX,0
JZ L2
MOV [SI],AX ;将非0项复制到0项,并将非0项清零,继续在0定位位置往后找0
MOV WORD PTR [DI],0
POP CX
JMP L1
EXIT:LEA SI,MEM ;输出数组
MOV CX,COUNT
L3: MOV DX,[SI]
ADD SI,2
ADD DL,30H
MOV AH,2
INT 21H
LOOP L3
MOV AX,4C00H
INT 21H
CODE ENDS
MAIN ENDP
END START
最后
以上就是完美果汁为你收集整理的将首地址为MEM的100个字的数组中所有为0的项删除 ;并将后续项向前压缩,最后将数组剩余部分补上0。方法2!!!的全部内容,希望文章能够帮你解决将首地址为MEM的100个字的数组中所有为0的项删除 ;并将后续项向前压缩,最后将数组剩余部分补上0。方法2!!!所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复