Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

не работает цикл

86K
15 апреля 2013 года
arkx
6 / / 27.02.2013
Код:
int main()
{
    char c[]="*";
    int i=10;
    _asm
    {
    lea eax,c
        push eax
        mov ecx, 10
cycle:
        call printf
        loop cycle
        jecxz m
m:
    }
}
Есть цикл, ненаписанный с помощью ассемблерной вставки в среде VS2012
как сделать чтобы цикл был конечный?
326
21 апреля 2013 года
sadovoya
757 / / 19.11.2005
А это что не конечный цикл у вас?
 
Код:
mov ecx, 10
cycle:
        call printf
        loop cycle
Зачем сие?
 
Код:
jecxz m
m:
Подумайте: тут вы получаете эффективный адрес адреса нулевого элемента локального массива c:

 
Код:
lea eax,c
Не говоря уже о мелочах: неиспользуемая переменная i и использование для вывода единственного символа функции форматированного вывода printf.

Уже не помню, но возможно со стеком тут тоже не ладно (?) и каждый раз надо в цикле параметр функции передавать (?)

Знаете кого-то, кто может ответить? Поделитесь с ним ссылкой.

Ваш ответ

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог