Intentando centrar 4 líneas de cadenas en lenguaje ensamblador.
Entonces, soy nuevo en lenguaje ensamblador y estoy tratando de centrar 4 cadenas. Pero no sé por qué no funciona.
Estas son las 4 cadenas que estoy usando en el código. Cuando ejecuto el programa, str1 es la única que se va al centro. El resto está a la izquierda.
str1 db "ADRIAN PAUL", 0AH, 0DH, "$"
str2 db "BS Computer Science", 0AH, 0DH, "$"
str3 db "09462524725", 0AH, 0DH, "$"
str4 db "macatopaul@gmail.com", 0AH, 0DH, "$"
Aquí está el código que estoy utilizando:
MOV AX, @DATA
MOV DS, AX
MOV AX, 0600H
MOV BH, 07H
MOV CX, 0000H ;BORRAR PANTALLA
MOV DX, 184FH
INT 10H
MOV AX, 0600h
MOV BH, 07h
MOV CX, 0000h
MOV DX, 184Fh
INT 10h
MOV AH, 02h
MOV BH, 00h
MOV DH, 0Ch
MOV DL, 24h
INT 10h
MOV AH,09h
MOV DX, OFFSET str1
INT 21h
MOV CX,001Ah
MOV AH, 02h
INT 21h
MOV AH,09h
MOV DX, OFFSET str2
INT 21h
MOV CX,001Ah
MOV AH, 02h
INT 21h
MOV AH,09h
MOV DX, OFFSET str3
INT 21h
MOV CX,001Ah
MOV AH, 02h
INT 21h
MOV AH,09h
MOV DX, OFFSET str4
INT 21h
MOV CX,001Ah
MOV AH, 02h
INT 21h
davy.ai
Una posible razón por la que las cadenas no se centran correctamente es que el código no alinea adecuadamente la posición del cursor antes de imprimir cada cadena. Dado que el tamaño de la pantalla es de 80×25 caracteres y cada cadena tiene una longitud máxima de 16 caracteres, debes calcular la coordenada x para el centro de la pantalla (40 – 8) = 32 y utilizar este valor para posicionar el cursor antes de imprimir cada cadena.
Puedes modificar el código de cada cadena de la siguiente manera:
Para str1:
Para str2:
Para str3:
Para str4:
Al alinear adecuadamente el cursor para cada cadena, deberías poder centrar las cuatro cadenas en la pantalla.