STACKS SEGMENT STACK
DW 100H DUP(?)
TOP LABEL WORD
STACKS ENDS --定义栈
DATAS SEGMENT
LINK DW 10,1,2,3,4,5,6,0FFFFh,8,9,0FFFFh
BUFF DW 11 DUP(?)
DATAS ENDS --定义变量
CODES SEGMENT
ASSUME CS:CODE,SS:STACKS,DS:DATAS
MAIN PROC FAR
MOV AX,STACKS
MOV SS,AX
LEA SP,TOP
MOV AX,DATAS
MOV DS,AX
MOV BX,0 --BX用于记录BUFF的长度
LEA SI,LINK --将LINK的首地址传到SI
MOV CX,[SI] --将LINK字符串的长度传入CX
LEA DI,BUFF+2 --将BUFF串的第二个位置地址传给DI,第一位用来存长度,因为是DW,所以要加2
L1:
ADD SI,2 --指向LINK中的存的元素
MOV AX,[SI] --将元素存入AX中
MOV [SI],0 --将该元素变为零,之后会存入新的元素作为替代
CMP AX,0FFFFH --和0FFFFH比较,如果不相同则跳转至CUN
JNZ CUN
LOOP L1 --循环L1
JMP FUZHI
CUN:
MOV