| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Asm для начинающих > как формировать opcode |
| Автор: scuter 24.11.2011, 00:42 | ||
| к сожалению я могу писать ASM коды только на flat assembler компилятор этот неплохой, только вот не хочет он компилить некоторые команды в связи с такими обстоятельствами приходится вводи команды opcode-ми если команда цельная, такая как XLAT MOVSB токоманду просто ввести, но если в команде используются указатели на регистры или стек возникает затруднения к примеру комманда LDS в opcode пишут C5 r
скажите как мне переводить это всё безобразие и как формировать нормальный код |
| Автор: arcsupport 24.11.2011, 09:49 |
| Простите, пожалуйста, а не могли бы Вы привести шапку программы. Я подозреваю, что у Вас там имеются ошибки. |
| Автор: 500mhz 24.11.2011, 10:12 |
| что то вы не так делаете, FASM компилит все, и вдоль и поперек. на мой взгляд на данный момент это самый продвинутый и поддерживаемый компилятор |
| Автор: 500mhz 24.11.2011, 11:01 |
| scuter выложи код где у тебя не работает xlat |
| Автор: scuter 24.11.2011, 11:05 | ||||
проблема та не только в этом, нужны команды
и ещё множество других комманд |
| Автор: 500mhz 24.11.2011, 12:24 |
| xlatb xlat[bx] |
| Автор: scuter 24.11.2011, 12:55 | ||||
500mhz, по пробуй запустить такую инструкцию
или такую
|
| Автор: 500mhz 24.11.2011, 13:05 |
| и что? lds ax,[si] Добавлено через 1 минуту не понятно что вы хотите делать с lds к примеру? |
| Автор: iff 24.11.2011, 13:11 |
| scuter, зачем в 34-ой строке ret 6. Во первых откуда 6? Команда ret позволяет завершить com-программу. но так как у вас бесконечный цикл, то её вообще можно убрать (она никогда не выполнится). |
| Автор: scuter 24.11.2011, 13:14 | ||||||
самое главное не пробует, а пишет
FASM пишет
если заглянуть в описание команды
это означает что в FASM далеко не все команды поддерживаются |
| Автор: iff 24.11.2011, 13:15 | ||
| scuter, на счёт lds и др. - в качестве параметра нужно передовать не текст а адрес. напрмер в tasm это выгядит так:
тогда es=1234h, а si=5678h. |
| Автор: scuter 24.11.2011, 13:42 | ||||||
именно это и требуется от команды можед быть TASM это дело поддерживает но FASM поддерживает эту комманду в другом формате
а как сделать этот offset в FASM непонятно ничего не помогает. |
| Автор: 500mhz 24.11.2011, 13:54 |
| не нада в фасме offset |
| Автор: scuter 24.11.2011, 14:52 |
а что писать. так как http://flatassembler.net/docs.php?article=manual написано уже перепробовано. |
| Автор: 500mhz 24.11.2011, 15:02 |
| просто mov BX,addr |
| Автор: scuter 24.11.2011, 16:16 | ||
спосибо, пояснение но всё таки мне нужно узнать как формировать команды
вот идёт команда с описанием с начала название команды FADD потом цифра 0-7 или r ничего не указывается /0 потом названия регистров которые используются прямо называется регистр AL, BX,DX ...... либо указывается общий формат регистра или указателя m16/32 , r/m16/32, m16/32&16/32, imm16/32, m32real так вот как перевести это дело в нормальнай вид как правильно сформировать вторую часть команды т.е. как записываются регистры m8/16/32 как такие r/m8/16/32 r8/16/32 imm8/16/32 xmm/m128 mm/m64 m64 rel8/16/32 m32real, m64real m32int и что всё таки означает эта цифорка 0-7 или r после Opcode http://ref.x86asm.net/coder32.html |
| Автор: iff 24.11.2011, 17:45 | ||
http://ru.wikipedia.org/wiki/FASM |