Rama del lenguaje ensamblador
SEGMENTO DE DATOS
MEM DB 0,0,0,1,2,2,3,0,0,3,3,9 DUP(0),4,4,0,0,4,0 ,4,5 DUP(5),60 DUP(0),6 DUP(6),0,0
EXTREMOS DE DATOS
SEGMENTO DE CÓDIGO
ASUMAR DS:DATA,CS:CODE
INICIO:MOV AX,DATA
MOV DS,AX
LEA DI,MEM
MOV CX,100 //Establece el número de bucles
ABC: CMP BYTE PTR[DI],0 //Compara si es 0
JNZ LOP
MOV DX, CX //Guardar el contenido de CX
DEC CX //El número de veces que los elementos posteriores avanzan es CX-1 veces
MOV BX,DI
XYZ :MOV AX,01H[BX]
MOV [BX],AX //Utilice el contenido de la parte de dirección alta posterior para sobrescribir la parte con contenido 0 en la unidad de memoria p>
INC BX
LOOP XYZ
MOV 01H[BX],0 //Agregar 0
MOV CX,DX //Restaurar el contenido de CX
LOP: INC DI // Suma 1 a la dirección
LOOP ABC
MOV AX,4C00H
INT 21H
CÓDIGO FINALIZA
FIN INICIO