PDA

Ver la versión completa : POR QUÉ "JMP 125" EN 0100h Y NO DESPUÉS?



dnumgisduerf
23-11-2004, 16:02
En el siguiente programa, tengo dos dudas: ¿por qué no se puede crear la cadena antes del "jmp 125"? (lo he probado y no va) y ¿por qué el salto es hasta 0125 y no hasta antes?



- a100
0C1B:0100 jmp 125
0C1B:0102 [Enter]
- e 102 'Cadena a visualizar 15 veces' 0d 0a '$'
- a125
0C1B:0125 MOV CX,000F
0C1B:0128 MOV DX,0102
0C1B:012B MOV AH,09
0C1B:012D INT 21
0C1B:012F LOOP 012D
0C1B:0131 INT 20


Un saludo

SxR
23-11-2004, 19:32
Porque hasta 125 (no siempre es ese aunque para la arquitectura pc si) es un espacio reservado para vectorizar interrupciones, ya sean externas, internas, timers, CAD... etc etc etc

Por tanto si lo intentas direccionar antes se lo cargará el hardware (no 'exactamente') y no lo ejecutará, por ello siempre, la primera instrucción debe ser algo como lo que has hecho, un jmp (o ljmp, etc) a una dirección 'alta' como por ejemplo la 125 (yo normalmente uso la 200, por ser un número mas redondo :-P)

Saludos

PD: Por cierto, qué estas haciendo? Ese peaso de codigo me suena de algo pero no se de q (esta memoria..)