АСМ vs Си

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить
Аватара пользователя
Tohey
Грызет канифоль
Сообщения: 257
Зарегистрирован: Сб сен 09, 2006 19:00:18
Откуда: СССР

АСМ vs Си

Сообщение Tohey »

Сорри за такое название темы.
Как можно реализовать СИ команду на АСМе, например сравнение ">=" ?
Реклама
Аватара пользователя
moLCHec
Мявтор!
Сообщения: 825
Зарегистрирован: Вс дек 18, 2005 20:04:42
Откуда: Свердловская обл.
Контактная информация:

Сообщение moLCHec »

В асемблере для таких команд свои команды имеются например BRGE
cp r11, r12
brge greater
...
greater:
...
дл таких случаем есть ветка про мелкие вопросы. кстати это Си ипользует команды асмы
Настоящий кот всегда либо голоден,
либо невыспался ...
Реклама
Аватара пользователя
Tohey
Грызет канифоль
Сообщения: 257
Зарегистрирован: Сб сен 09, 2006 19:00:18
Откуда: СССР

Сообщение Tohey »

Спасибо, я думал таких ASM команд нет.
Аватара пользователя
Abakt
Вечно гонимый
Сообщения: 568
Зарегистрирован: Ср янв 10, 2007 19:15:51

Re: АСМ vs Си

Сообщение Abakt »

Tohey писал(а):Сорри за такое название темы.
Как можно реализовать СИ команду на АСМе, например сравнение ">=" ?
Сделать то что нужно в Си компиляторе и посмотреть листинг на АСМе.
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
Abakt
Вечно гонимый
Сообщения: 568
Зарегистрирован: Ср янв 10, 2007 19:15:51

Сообщение Abakt »

moLCHec писал(а):кстати это Си ипользует команды асмы
нет. Си это язык на котором можно записать алгоритм.

а команды АСМ используют лишь некоторые компиляторы - те что компилят прогу на Си в АСМ а затем АСМ ассемблируют ассемблером (например от производителя процессора).
Реклама
Аватара пользователя
moLCHec
Мявтор!
Сообщения: 825
Зарегистрирован: Вс дек 18, 2005 20:04:42
Откуда: Свердловская обл.
Контактная информация:

Сообщение moLCHec »

Abakt либо ты чё то напутал либо я тебя не так понял. Но компилятор под Си преобразует Сишные функции в асемблеровские т.е. елементарные команды микронтроллера которые затем и преобразует в зависимости от типа МК с систему булевых команд. Где то может стадия Си-код АСМ не показана но она есть.
Настоящий кот всегда либо голоден,
либо невыспался ...
Реклама
Аватара пользователя
Tohey
Грызет канифоль
Сообщения: 257
Зарегистрирован: Сб сен 09, 2006 19:00:18
Откуда: СССР

Сообщение Tohey »

Что то я не пойму как BRGE и BRLT работает :o .

Если сделать cp FF, 0F - тогда переходит.
Если сделать cp FE, 0F - тогда не переходит.
???
Аватара пользователя
Abakt
Вечно гонимый
Сообщения: 568
Зарегистрирован: Ср янв 10, 2007 19:15:51

Сообщение Abakt »

moLCHec писал(а):Abakt либо ты чё то напутал либо я тебя не так понял. Но компилятор под Си преобразует Сишные функции в асемблеровские т.е. елементарные команды микронтроллера которые затем и преобразует в зависимости от типа МК с систему булевых команд. Где то может стадия Си-код АСМ не показана но она есть.
может я тебя и не понял. но как ты говоришь "елементарные команды микронтроллера " это машинные коды.

а АСМ инструкции это мнемоники т.е. абревиатуры от описания того что инструкция делает.

Существуют компиляторы Си не использующие АСМ сторонний, т.е. компилятор содержит в себе ассемблер не ввиде отдельного файла.
Аватара пользователя
moLCHec
Мявтор!
Сообщения: 825
Зарегистрирован: Вс дек 18, 2005 20:04:42
Откуда: Свердловская обл.
Контактная информация:

Сообщение moLCHec »

Tohey вот слушай как если r11>=r12 то переходтит нет работает дальше по строке. работают команды cp и brge в паре

Abakt так и не понял тебя нуда фиг с ним
Настоящий кот всегда либо голоден,
либо невыспался ...
Аватара пользователя
coder
Открыл глаза
Сообщения: 57
Зарегистрирован: Вт фев 06, 2007 14:09:10
Откуда: Россия.Пермь
Контактная информация:

Сообщение coder »

Tohey писал(а): Если сделать cp FF, 0F - тогда переходит.
Если сделать cp FE, 0F - тогда не переходит.
На сколько я понял, вы сравниваете числа. А надо сравнивать регистры. ИМХО числа в данном случае интерпретируются, как адреса к данным.

Код: Выделить всё

ldi r16, 0xFE
ldi r17, 0x0F
cp r16, r17
brge greater 
... 
greater: 
... 
Аватара пользователя
Tohey
Грызет канифоль
Сообщения: 257
Зарегистрирован: Сб сен 09, 2006 19:00:18
Откуда: СССР

Сообщение Tohey »

Я сравниваю регистры, просто написал так, коротко :wink: .
2 moLCHec. Я понимаю что работают в паре, но я не понимаю почему FF - меньше FE и меньше 0.
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18556
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Сообщение ARV »

Когда же вы научитесь читать хотя бы доки ? Ну сказано же английским языком: BRGE онализирует результат сравнения регистров, в которых хранятся числа со знаком (вольный перевод). Вот и получается у вас, что 0FFh это -127, a 0FEh - это -126. И все становится на свои места.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
moLCHec
Мявтор!
Сообщения: 825
Зарегистрирован: Вс дек 18, 2005 20:04:42
Откуда: Свердловская обл.
Контактная информация:

Сообщение moLCHec »

Действительно это команда для знаковых, для беззнаковых BRSH.
Настоящий кот всегда либо голоден,
либо невыспался ...
Ответить

Вернуться в «Разные вопросы по МК»