En ensamblador, cómo usar la subrutina n.° 2 con 21 interrupciones para generar "¡Hola, mundo!".
1. Después de la definición del segmento, la definición de datos pasa a la siguiente línea. Esto es válido para los tres segmentos del programa.
2. Por conveniencia, las variables en la sección de datos deben tener nombre.
3. Una vez iniciado el código, se debe asignar un valor de dirección de segmento al registro de segmento de datos DS.
4. El operando fuente en la instrucción LEA no puede ser un carácter como "H" y debe ser un operando de memoria.
5. Tu recuento de bucles es incorrecto, 12 caracteres son 0CH, mientras que el 1CH que escribiste tiene 28 caracteres.
Puedes intentar cambiarlo a:
STACK SEGMENT
STACK DW 40H DUP(?)
TOP ETIQUETA WORD
p>TERMINA LA PILA
SEGMENTO DE DATOS
S DB '¡HOLA,MUNDO!','$
TERMINA LOS DATOS
SEGMENTO DE CÓDIGO
ASUMIR CS.CODE,SS:STACK,DS:DATA
INICIO:
MOV AX, DATA
MOV DS , AX
MOV CX,1H
LEA BX, S
L1:
MOV DL,[BX]
MOV AH,2
INT 21H
INC BX
INC CX
CMP CX, 0CH
JNE L1
MOV AH,4CH
INT 21H
CÓDIGO FINALIZA
FINAL INICIO
CÓDIGO