Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Asm: Общие вопросы > Команда JMP не компилируется TASM


Автор: iff 25.11.2010, 23:32
У меня в коде нужно поставить инструкцию JMP 0F80H:100H, но TASM выдает ошибку при ее компиляции. почему? как грамотно эту инструкцию записать в исходнике?

Я нашел только один выход: вместо JMP 0F80H:100H написать DB 0EAH,00H,01H,80H,0FH (маш. код)

Автор: 500mhz 26.11.2010, 00:51
не помню точно но по моему в тасме что то типа FAR нада было указывать

Автор: spin2 26.11.2010, 12:40
iff, а что именно тебе пишут? Может просто слишком далеко прыгаешь?

Автор: iff 26.11.2010, 14:20
JMP не может слишком далеко прыгать. Вот инструкции JE, JNE, JA и т.п. - да, они поддерживают только близкие переходы, а JMP может прыгать от 0000:0000 до FFFF:FFFF. Во всяком случае программа debug нормально транслирует эти инструкции (я ведь машинный код DB 0EAH,00H,01H,80H,0FH при помощи debug нашел, и он работает).

500mhz, указывал far, всеравно пишет Illegal immediate.

Добавлено через 2 минуты и 4 секунды
Illegal immediate значит Недопустим непосредственный операнд, т.е. нужно указывать адрес через память или регистр. странно, ведь debug нормально транслирует непосредственный операнд, может быть использовать дириктиву процессора... 

Автор: 500mhz 26.11.2010, 15:36
)))
push
push 
ret


ну если че )))

Автор: iff 26.11.2010, 17:25
500mhz, пишу загрузочный сектор для диска (512 байт), поэтому не хочу применять громосткие решения. Да и просто хочу, что бы в том месте где нужно инструкция JMP была инструкция JMP

Остановился пока что на том, чтобы использовать всавку машинного кода:
Код

DB    0EAH,00H,01H,80H,0FH

Автор: 500mhz 26.11.2010, 18:05
а таки надо прям на тасме это делать?

Автор: Logree 27.11.2010, 11:59
 smile 
fasm создан для того чтобы писать загрузочные сектора smile

Автор: 500mhz 27.11.2010, 14:22
вот именно )))

в фасме jmp 0000:0000 компилится на ура

Автор: newsoft 5.1.2012, 09:06

jmp    far ptr 0f80h:100h

Автор: iff 13.12.2016, 19:06
Спасибо

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)