1 / 1 / 0
Регистрация: 22.09.2014
Сообщений: 32
|
||||||
1 | ||||||
Не работают переходы22.11.2015, 01:24. Показов 1359. Ответов 3
Метки нет (Все метки)
Уже долгое время воюю с организацией связи между Си и ассемблером. Пишу через Visual Studio. С подключением асм модулей в проэкт, организацией связи между функциями более-менее разобрался, теперь наткнулся на новую, уже необъяснимую проблему: не работают условные переходы. Выводил значения сравниваемых регистров dx и bx - все значения верны. Перебирал всевозможные варианты (dx>bx, dx<bx, dx=bx), и во всех трёх случаях по команде jbe , после сравнения, происходил переход на метку. При замене на jae - переходы не осуществяются. Значения регистров dx и bx разные (одинаковые только в случае, если 2 введённых слова одной длины) и совпадают с введённой информацией. Вот часть кода программы:
0
|
22.11.2015, 01:24 | |
Ответы с готовыми решениями:
3
Не работают переходы Не работают переходы во frame Не работают переходы между страницами WP 8.1 Notepad++ не работают переходы по ссылкам в тексте |
593 / 390 / 70
Регистрация: 29.03.2013
Сообщений: 813
|
|
22.11.2015, 04:33 | 2 |
CX надо инициализировать, а не CL, ну и с BX вместо BL, соответственно. И ещё CLD на всякий случай в начало кода. Да, регистр ES чему равен? (команды типа SCASx используют регистровую пару ES:DI). Остальное не смотрел. И да, есть такая штука, очень помогает, ага.
0
|
642 / 151 / 60
Регистрация: 08.04.2015
Сообщений: 390
|
|
22.11.2015, 05:36 | 3 |
Принципиальный вопрос: вы исполняемый файл пытаетесь собрать 16- или 32-битный?
0
|
1 / 1 / 0
Регистрация: 22.09.2014
Сообщений: 32
|
|
22.11.2015, 14:21 [ТС] | 4 |
Большое спасибо! Записал значения в cx и bx и всё заработало, хотя непонятно почему. Когда в ТД открывал программу, и заносил значения только в cl и bl, ch и bh не изменялись и цикл проходил ровно столько раз, сколько было записано в cl. На Си тоже, я постоянно выводил значения регистров, всё работало, конфликт происходил только на переходе. Но уже всё работает, большое спасибо за помощь)
0
|
22.11.2015, 14:21 | |
22.11.2015, 14:21 | |
Помогаю со студенческими работами здесь
4
В NeroVision когда я режу видеоролик на части и вставляю между ними разные переходы, то эти они не работают Не работают задние USB а передние работают как по маслу в чем дело. Материнка AsRock N68C-GS FX - не работают слоты DDR3 2 шт, DDR2 работают нормально Win 7 64, периодически не работают порты USB. Перезагрузив раза 2-3 комп, работают Кнопки регулировки громкости на клавиатуре иногда не работают и/или работают некорректно СМА LG WD-80480S не работают исполнительные механизмы, не работают клапана ,мотор,насос Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |