Assembler passa problema
Estou com um problema no meu montador 8086 que estou escrevendo. O problema é com as passagens do montador.
Durante o passe 1, você calcula a posição relativa ao segmento para cada etiqueta.
Agora, para fazer isso, o tamanho de cada instrução deve ser calculado e adicionado ao deslocamento.
Algumas instruções no 8086 devem ser menores se a posição da etiqueta estiver dentro de um intervalo. Por exemplo, "jmp _label" escolheria um salto curto se pudesse e, se não pudesse, faria um salto próximo.
Agora, o problema está na passagem 1 e o rótulo ainda não foi atingido; portanto, não é possível determinar o tamanho da instrução, pois a "etiqueta curta de jmp" é menor que a instrução "jmp perto de etiqueta".
Então, como eu decidi que o clima "jmp _label" se torna um "jmp short _label" ou não?
Três passes também podem ser um problema, pois precisamos saber o tamanho de cada instrução antes da instrução atual para fornecer um deslocamento.
obrigado