Preguntas sobre programación en ensamblaje
1)
segmento de datos
x dw ?
y dw ?
masg db 'Ingrese x , y: ', '$'
los datos terminan
segmento de código
proceso principal lejos
asume cs: código, ds: datos
inicio:
push ds
sub ax, ax
push ax
mov ax, datos
mov ds, ax
lea dx, mesg1
mov ah, o9
int 21h
lea dx, x
mov ah, 0ah
int 21h
lea dx, mesg2
mov ah, 09
int 21h
lea dx, y
mov ah, 0ah
int 21h
lea dx, x
mov ah, 09
int 21h
lea dx, y
mov ah, 09
int 21h
ret
final principal
finales del código
fin inicio
3)
SEGMENTO DE DATOS
SENTNECE DB 30H,?,30H DUP(?)
PALABRA CLAVE DB 30H,?,30H DUP(?)
MATCH DB 13,10,' Coincidencia en ubicación: $'
NOMATCH DB 13, 10, 'NO match$'
MSG3 DB 13, 10, 'Ingrese oración1: $'
MSG4 DB 13, 10, 'Introducir frase2: $'
TERMINOS DE DATOS
SEGMENTO DE PILAS
TERMINOS DE PILAS
SEGMENTO DE CÓDIGOS p> p>
ASUME CS: CODIGOS, DS: DATAS, SS: STACKS
INICIO:
MOV AX, DATAS
MOV DS, AX p>
LEA DX, MSG3
MOV AH, 09H
INT 21H
p>
LEA DX, PALABRA CLAVE
MOV AH, 0AH
INT 21H
OTRA VEZ:
LEA DX, MSG4
MOV AH, 09H
INT 21H
LEA DX, SENTNECE
MOV AH, 0AH
INT 21H
LEA SI, SENTNECE
LEA DI, KEYWORD
MOV CH, 0
MOV CL, [SI 1]
MOV BL, [DI 2]
AÑADIR S1, 2
L:
MOV BH, [SI]
INC SI
CMP BL, BH
JZ BEGIN
BUCLE L
JMP NOMAT
BEGIN:
PUSH SI
LEA DI, KEYWORD
PUSH CX
MOV CH, 0
MOV CL, [DI 1]
DEC CX
JZ MAT
L1:
MOV BL, [SI]
MOV AL, [DI 3]
CMP BL, AL
JNZ CONT
INC SI
INC DI
LOOP L1
JMP MAT
CONT:
POP CX
POP SI
LEA DI , PALABRA CLAVE
MOV BL, [DI 2]
BUCLE L
NOMAT:
LEA DX, NOMATCH
MOV AH, 09H
INT 21H
ERROR JMP
MAT:
LEA DX, PARTIDO
MOV AH, 09H
INT 21H
POP CX
LEA DX, [SENTNECE]
MOV BX, DX
MOV AL, [BX 1]
SUB AL, CL
MOV BL, AL
CALL DIS
JMP OTRA VEZ
ERROR:
MOV AH, 4CH
INT 21H
DIS PROC CERCA
MOV CL, 4
MOV DL,BL
ROL DL,CL
Y DL,0FH
CMP DL,0A
H
JB SIGUIENTE1
AÑADIR DL, 37H
JMP OK3
SIGUIENTE1:
AÑADIR DL, 30H
OK3:
MOV AH, 02
INT 21H
Y BL, 0FH
MOV DL, BL
CMP DL, 0AH
JB SIGUIENTE2
AÑADIR DL, 37H
JMP OK4
SIGUIENTE2:
AÑADIR DL, 30H
OK4:
MOV AH, 02H
INT 21H
RET p>
p>
DIS ENDP
CÓDIGOS FINALIZA
FIN INICIO
FIN
Hay exactamente 3 códigos para preguntas