Problemas con el lenguaje ensamblador
Este programa puede compilarse y ejecutarse correctamente
Segmento de código.
Asumir CS:Code,DS:Code
STRING db 230,69,89,35,46,57,68,79,51,81,98,43,56, 19,123 ,98 ,102,87,65,156
STRING1 db 20 dup(0) ;matriz par
STRING2 db 20 dup(0) ;matriz impar
Inicio: push cs
pop ds
push cs
pop es; make El segmento de datos, el segmento adicional y el segmento de código son iguales
lea si,STRING ;tomar dirección de variable de matriz
lea di,STRING1 ;dirección de matriz par
lea bx,STRING2 ;dirección de matriz impar
mov cx, 20 ;número de elementos
cld
Partición: lodsb ;Leer un elemento
test al,1 ;¿par?
jnz $ +5 ;No
stosb ;Guardar en matriz par
jmp $+5
mov [bx],al ;Guardar en matriz impar
inc bx
partición de bucle
Exit_Proc: mov ah.4ch ;Finalizar programa
int 21h
Código FINALIZA p> p>
FIN Inicio; La compilación termina aquí
II. Analice la función del siguiente segmento del programa y convierta el segmento en un programa completo utilizando el marco de definición de segmento completo o la definición de segmento simplificada. framework y vea los resultados experimentales a través de CodeView.
MOV DX,0
LOP1:MOV AH.1 recibe caracteres del teclado y la codificación ASCII de los caracteres está en AL
INT 21H
CMP AL,'$'
JZ SIGUIENTE
CMP AL, 30H
JB LOP1
CMP AL,39H
JA LOP1
Y AL,0FH
AÑADIR DL,AL
ADC DH,0 p>
JMP LOP1
NEXT: HLT
1. Función del programa
Ingresa caracteres en el teclado, y si es así. un número, conviértalo en un número binario, luego se acumula en el registro DX; de lo contrario, los caracteres se vuelven a ingresar hasta que el carácter de entrada sea $ y se detenga;
2. Complete el programa
; Este programa se compila y ejecuta correctamente
Segmento de código
Supongamos CS: código, DS: código
Inicio: presione cs
Pop ds; haga que el segmento de datos sea el mismo que el segmento de código
MOV DX,0
LOP1 : MOV AH,1 recibe caracteres del teclado, la codificación ASCII de los caracteres es en AL
INT 21H
CMP AL,'$
JZ SIGUIENTE
CMP AL, 30H
JB LOP1
CMP AL,39H
JA LOP1
Y AL,0FH
AÑADIR DL,AL
ADC DH,0
JMP LOP1
SIGUIENTE: HLT
Exit_Proc: mov ah,4ch ;finalizar programa
int 21h
Código FINALIZA
END Inicio ;La compilación termina aquí.