Ayuda en lenguaje ensamblador
; Quince números del 1 al 15 están dispuestos en un círculo. Para volver a hacer cola, el conteo comienza desde 1. Cualquiera que informe 5 será expulsado de la cola e ingresará a una nueva cola. /p>
;Los números detrás de él comienzan a contar desde 1 hasta que todos los números están en la cola y se genera una nueva cola.
SEGMENTO DE DATOS
buf db 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
cuf db 15 dup(0)
TERMINOS DE DATOS
SEGMENTO DE PILAS
dw 10 dup(0)
PILAS FINALIZA
SEGMENTO DE CÓDIGOS
ASUME CS: CÓDIGOS, DS: DATAS, SS: PILAS
INICIO:
MOV AX, DATAS
MOV DS, AX
lea di, cuf; dirección de desplazamiento de secuencia
lea si, buf; dirección de almacenamiento
mov cx, 0 ; contador que informa a 5
jixu: mov bx, 0; contador que verifica si la secuencia de números ha sido transmitida
jixu1: cmp byte ptr [si], 0; Si la posición correspondiente ya es 0, sáltala
jne a1
inc bx; cuenta el número de ceros para finalizar
cmp bx, 15
je jieshu
inc si
cmp si, 000FH si la secuencia llega al final, comienza de nuevo
jne a4
lea si, buf
a4: jmp jixu1
a1: inc cx; reportar valor 1
cmp cx, 0005H; luego estadísticas
je a2
inc si
jmp jixu
a2: mov al, [si]; >
mov [di], al
inc di
mov byte ptr [si], 0; posición original borrada
mov cx, 0; Valor del informe borrado
jmp jixu
jieshu: MOV AH, 4CH
INT 21H
CÓDIGOS FINALES
FINALIZAR INICIO