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

questionAnswers(1)

yourAnswerToTheQuestion