No sé de dónde sacaste tu título, si fue de la base de datos, pero puedo darte dos ideas:
1: Este es un caso especial, suponiendo dos comportamientos
x y
1 7
2 8
x y=x 6 (relación). )
p>
Esta relación le permite indexar por ID, pero esto es muy limitado, porque no está dispuesto a tener una relación tan coincidente entre ID
2: Leer de la base de datos, base de datos de requisitos previos. El conjunto de resultados devuelto se ha ordenado en 1, 2, 3. . .
Entonces puedes hacer esto
1 mover el siguiente 6 veces hasta 7
mover el anterior 6 veces y luego mover el siguiente una vez para obtener 2 y luego mover el siguiente 6 veces hasta 8
Y así sucesivamente, porque si usa una tabla para procesarla, debe generarse horizontalmente. No puede dibujar la primera columna primero y luego agregar una columna después como hacemos en un dibujo.
; Este programa está compilado y se ejecuta correctamente
Segmento de código
Asume CS: Code, DS: Code
; --------------------------------
Función: Establecer posición del cursor
; Entrada: Cursor_Row=coordenada de fila; Cursor_Col: coordenada de columna)
SetCursor Proc Near
PUSH CX
PUSH BX
PUSH AX
XOR BX, BX
MOV AH, 2
INT 10H
POP AX
POP AX
p>
POP BX
POP CX
RET
SetCursor EndP
- ------- ------------------------------
List_Colums Proc Near; lista de títulos de noticias
mov dx, palabra ptr Cursor_DX
llamar a SetCursor; establecer la posición del cursor
lodsw; leer la dirección del título
mov; dx, ax
mov ah, 9
int 21h
inc Cursor_DX[1] ; aumenta el número de línea en 1
loop List_Colums
ret
List_Colums EndP
------------------------- ------ --------
Título_01 db ' 1. AAAAAAAAAAA$' ; Título de la noticia
Título_02 db ' 2. BBBBBBBBBBB$'
Título_03 db ' 3. CCCCCCCCCCCC$'
Título_04 db ' 4. DDDDDDDDDDD$'
Título_05 db ' 5. EEEEEEEEEEEE$'
Título_06 db ' 6. FFFFFFFFFFF$ '
Título_07 db ' 7. GGGGGGGGGGG$'
Título_08 db ' 8. HHHHHHHHHHH$'
Título_09 db ' 9. IIIIIIIIIIII $'
Título_10 db '10. JJJJJJJJJJJ$'
Título_11 db '11. KKKKKKKKKKK$'
Título_12 db '12. >
Título_13 db '13. MMMMMMMMMMM$'
Título_14 db '14. NNNNNNNNNNN$'
Título_15 db '15. db '16.
p>Título_18 db '18. RRRRRRRRRRR$'
Título_19 db '19.
Título_20 db '20. 21. UUUUUUUUUU$'
Título_22 db '22. VVVVVVVVVVV$'
Título_23 db '23.
Título_25 db '25. YYYYYYYYYYY$'
Título_26 db '26.
Índice dw Título_01, Título_02, Título_03, Título_04, Título_05, Título_06 ,Título_07,Título_08,Título_09,Título_10
dw Título_11,Título_12,Título_13,Título_14,Título_15,Título_16,Título_17,Título_18,Título_19,Título_20
dw Título_21,Título_22,Título_23,Título_24 , Título_25, Título_26; Lista de clasificación original de títulos de noticias
Elementos equ ($-Index)/Tipo de índice
Líneas equ 10;
Columnas equ 3; número de filas y columnas
Cursor_DX db 0, 0; inicializa la posición del cursor
Inicio: presionar cs
pop ds; hacer segmento de datos Igual que el fragmento de código
; Muestra títulos de noticias, con un máximo de 10 títulos por columna y un máximo de 3 columnas. Suponga un máximo de 24 caracteres por título y 2 caracteres entre columnas.
cld
lea si, Índice; dirección actual de la tabla de clasificación de títulos de noticias
mov ax, Número de títulos de noticias
mov cx , Líneas; número de filas en cada columna
div cl
mov bx, ax; guarda el número de filas y columnas
mov cl, bl
xor ch, ch
jcxz Last_Colum
Si el número de filas = 0, solo se mostrará una fracción de una columna (menos de 10 títulos). >cmp cx, Columnas ; Número de columnas gt;
jbe List_Lines no mayor que, muestra el número especificado de columnas
mov cx, Colums si el número de columnas excede 3 columnas, muestra hasta 3 columnas
List_Lines: push cx
mov cx, Líneas; Número de filas en cada columna
llamar a List_Colums; mostrar una columna
agregar Cursor_DX, 26; agregue 26 al número de columna
mov Cursor_DX[1], 0; establezca el número de línea en 0
pop cx
loop List_Lines
Last_Colum: mov cl, bh; toma la última columna de líneas Número
xor ch, ch
jcxz Exit_Proc
cmp bl, número de columna; gt;3?
ja Exit_Proc; Mayor que, ya mostrado, finaliza el programa
llamar a List_Colums; Mostrar una columna
mov dx, 0a00h; >
llamar a SetCursor
Exit_Proc: mov ah, 4ch; finalizar programa
int 21h
Código FINALIZA
END Inicio; compilar aquí Fin