|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
28.10.2013, 22:08 | #1 | |
Форумчанин
Регистрация: 19.11.2011
Сообщений: 198
|
32 бит в 16
Программирую на ТР7 с ассемблерными вставками.
Т.к. там команды только 16-битные, то я не могу использовать регистры EDX,ECX, а необходимая информация возвращается именно в них Цитата:
|
|
28.10.2013, 22:39 | #2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Никак. Возьми паскаль поновее.
I'm learning to live...
|
29.10.2013, 00:32 | #3 |
Участник клуба
Регистрация: 23.12.2010
Сообщений: 1,129
|
На самом деле способ есть, но он не для слабых духом
В древних версиях паскаля можно было вставлять машинные коды напрямую с помощью директивы inline. Потому, например, получить доступ к старшему слову edx можно, используя коды инструкций Код:
Ну а быстро узнать опкоды можно тут, например - https://defuse.ca/online-x86-assembler.htm В итоге получаем Код:
|
29.10.2013, 00:45 | #4 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
I'm learning to live...
|
|
29.10.2013, 08:30 | #5 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
сильно удивлён. похоже, что действительно, внутри 16-битной программы можно работать с 32-х битными регистрами! Последний раз редактировалось Serge_Bliznykov; 29.10.2013 в 08:39. |
|
29.10.2013, 09:18 | #6 |
Форумчанин
Регистрация: 19.11.2011
Сообщений: 198
|
Ок, спасибо большое)
|
29.10.2013, 09:20 | #7 | |
Ваш К. О.
Участник клуба
Регистрация: 26.12.2012
Сообщений: 1,774
|
Цитата:
Способ по-любому есть -- это разработка на ассемблере и компиляция в OMF (obj-файлы) внешним ассемблером, а потом компоновка Паскалем директивой external. Но с удобством встроенного ассемблера не сравнить, согласен. Я читал об этом, но на практике не пользовал, поэтому решил не флудить почем зря. |
|
29.10.2013, 10:59 | #8 |
Форумчанин
Регистрация: 19.11.2011
Сообщений: 198
|
Ошибка синтаксиса((
Код:
Подкажите, плз, где можно скачать паскать чтобы с 32 битами работать было можно? Скачивал TP7.1 тоже не хочет работать( |
29.10.2013, 11:14 | #9 |
Форумчанин
Регистрация: 19.11.2011
Сообщений: 198
|
Скачал BC 3.1
Пишу Код:
Код:
Код:
Как правильно-то? |
29.10.2013, 11:53 | #10 |
Ваш К. О.
Участник клуба
Регистрация: 26.12.2012
Сообщений: 1,774
|
Есть Free Pascal (FPC), были также Virtual Pascal и TMT Pascal. Попробуй также обычный TP в связке с TASM, как уже говорил. При большом желании можно и самостоятельно кодогенератор TP 6.0 доработать, благо исходники давно открыты.
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
ОС: 32 vs 64 бит | Буратино | Операционные системы общие вопросы | 29 | 18.01.2011 11:10 |
C++ перевод 8 бит в 7 | 0479 | Помощь студентам | 1 | 25.09.2010 12:25 |
Ковертирование из png 24 бит в png 8 бит | isat | Общие вопросы .NET | 0 | 22.03.2010 13:38 |
Бит чётности | fogmistery | Общие вопросы C/C++ | 1 | 02.01.2010 22:58 |
1 байт 9 бит ?! | Иллидан | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 4 | 13.04.2008 12:47 |