Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Вт фев 13, 2007 16:14:50
Сорри за такое название темы.
Как можно реализовать СИ команду на АСМе, например сравнение ">=" ?
Вт фев 13, 2007 16:27:54
В асемблере для таких команд свои команды имеются например BRGE
cp r11, r12
brge greater
...
greater:
...
дл таких случаем есть ветка про мелкие вопросы. кстати это Си ипользует команды асмы
Вт фев 13, 2007 16:41:29
Спасибо, я думал таких ASM команд нет.
Вт фев 13, 2007 16:48:08
Tohey писал(а):Сорри за такое название темы.
Как можно реализовать СИ команду на АСМе, например сравнение ">=" ?
Сделать то что нужно в Си компиляторе и посмотреть листинг на АСМе.
Вт фев 13, 2007 16:51:29
moLCHec писал(а):кстати это Си ипользует команды асмы
нет. Си это язык на котором можно записать алгоритм.
а команды АСМ используют лишь некоторые компиляторы - те что компилят прогу на Си в АСМ а затем АСМ ассемблируют ассемблером (например от производителя процессора).
Вт фев 13, 2007 18:03:02
Abakt либо ты чё то напутал либо я тебя не так понял. Но компилятор под Си преобразует Сишные функции в асемблеровские т.е. елементарные команды микронтроллера которые затем и преобразует в зависимости от типа МК с систему булевых команд. Где то может стадия Си-код АСМ не показана но она есть.
Вт фев 13, 2007 18:07:14
Что то я не пойму как BRGE и BRLT работает
.
Если сделать cp FF, 0F - тогда переходит.
Если сделать cp FE, 0F - тогда не переходит.
???
Вт фев 13, 2007 18:52:00
moLCHec писал(а):Abakt либо ты чё то напутал либо я тебя не так понял. Но компилятор под Си преобразует Сишные функции в асемблеровские т.е. елементарные команды микронтроллера которые затем и преобразует в зависимости от типа МК с систему булевых команд. Где то может стадия Си-код АСМ не показана но она есть.
может я тебя и не понял. но как ты говоришь "елементарные команды микронтроллера " это машинные коды.
а АСМ инструкции это мнемоники т.е. абревиатуры от описания того что инструкция делает.
Существуют компиляторы Си не использующие АСМ сторонний, т.е. компилятор содержит в себе ассемблер не ввиде отдельного файла.
Вт фев 13, 2007 19:27:25
Tohey вот слушай как если r11>=r12 то переходтит нет работает дальше по строке. работают команды cp и brge в паре
Abakt так и не понял тебя нуда фиг с ним
Ср фев 14, 2007 10:38:40
Tohey писал(а):Если сделать cp FF, 0F - тогда переходит.
Если сделать cp FE, 0F - тогда не переходит.
На сколько я понял, вы сравниваете числа. А надо сравнивать регистры. ИМХО числа в данном случае интерпретируются, как адреса к данным.
- Код:
ldi r16, 0xFE
ldi r17, 0x0F
cp r16, r17
brge greater
...
greater:
...
Ср фев 14, 2007 12:06:37
Я сравниваю регистры, просто написал так, коротко
.
2 moLCHec. Я понимаю что работают в паре, но я не понимаю почему FF - меньше FE и меньше 0.
Ср фев 14, 2007 12:35:09
Когда же вы научитесь читать хотя бы доки ? Ну сказано же английским языком: BRGE онализирует результат сравнения регистров, в которых хранятся числа со знаком (вольный перевод). Вот и получается у вас, что 0FFh это -127, a 0FEh - это -126. И все становится на свои места.
Ср фев 14, 2007 16:08:26
Действительно это команда для знаковых, для беззнаковых BRSH.
Powered by phpBB © phpBB Group.
phpBB Mobile / SEO by Artodia.