Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.04.2019, 08:52   #11
R71MT
Участник клуба
 
Аватар для R71MT
 
Регистрация: 16.06.2011
Сообщений: 1,428
По умолчанию

мой пример выше отрабатывает цикл 50-раз.
если-же не сохранять счётчик, то получишь "мёртвый цикл",
т.е. никогда не выйдешь из него - вот пример:
Код:
start:
      xor   eax,eax     ; int x = 0
      xor   ecx,ecx     ; int i = 0
; начало цикла for
@00:  sub   ecx,eax     ; ecx = (i - x)
      shl   ecx,1       ; ecx * 2
      mov   eax,ecx     ; x = 2 * (i - x)
      inc   ecx         ; инкремент счётчика (i++)
      cmp   ecx,50      ; проверить его на 50
      jbe   @00         ; повторить, если счётчик меньше/равно 50
Нашедшего выход - затаптывают первым..
R71MT вне форума Ответить с цитированием
Старый 01.04.2019, 10:55   #12
FPaul
Форумчанин
 
Регистрация: 25.01.2015
Сообщений: 472
По умолчанию

Нет - ошибка. Формула x += 2*(i-x), т.е. x=x+2*(i-x)
Код:
        mov     eax,    0       ; x=0
        mov     ecx,    0       ; i=0
        @@:
                neg     eax
                add     eax,    ecx
                add     eax,    ecx

                inc     ecx
                cmp     ecx,    50
        jbe @b
        mov     [Result],       eax

Последний раз редактировалось FPaul; 01.04.2019 в 11:14.
FPaul вне форума Ответить с цитированием
Старый 01.04.2019, 11:03   #13
FPaul
Форумчанин
 
Регистрация: 25.01.2015
Сообщений: 472
По умолчанию

Единственно - эти все "помогания" бесполезны, т.к. название темы "Turbo Assembler - аналог цикла FOR" и все примеры кода нужно "выбросить".
FPaul вне форума Ответить с цитированием
Старый 01.04.2019, 11:54   #14
R71MT
Участник клуба
 
Аватар для R71MT
 
Регистрация: 16.06.2011
Сообщений: 1,428
По умолчанию

FPaul, а можно узнать, почему их нужно выбросить?
Нашедшего выход - затаптывают первым..
R71MT вне форума Ответить с цитированием
Старый 01.04.2019, 12:05   #15
FPaul
Форумчанин
 
Регистрация: 25.01.2015
Сообщений: 472
По умолчанию

В TASM, обычно, программы для DOS и все 32-разрядные регистры формально недоступны. Можно добавить директиву i386, но ученик плавает в базовых представлениях и - вдруг - решение в 32-разрядном режиме. Для меня очевидна самостоятельная работа по современным учебникам - я бы сразу 5+++++ ему поставил.
FPaul вне форума Ответить с цитированием
Старый 01.04.2019, 12:23   #16
R71MT
Участник клуба
 
Аватар для R71MT
 
Регистрация: 16.06.2011
Сообщений: 1,428
По умолчанию

ну так тс получил наводку,
пусть и преобразует как ему нужно - зачем-же их выбрасывать?
Нашедшего выход - затаптывают первым..
R71MT вне форума Ответить с цитированием
Старый 01.06.2019, 15:00   #17
Nif-naf
Форумчанин
 
Аватар для Nif-naf
 
Регистрация: 05.09.2016
Сообщений: 131
По умолчанию

BoT Takou BapuaHT c FPU-FOR (int cnt=0; cnt<100000; cnt++) ires=sin(++i1); .....
mov ECX,100000
finit
next:
fld1
fadd dword ptr i1
fstp dword ptr i1
fld dword ptr i1
fsin
fstp dword ptr ires
dec ECX
JNZ next
fwait
Немного о GoAsm.
Nif-naf вне форума Ответить с цитированием
Старый 01.06.2019, 18:41   #18
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Nif-naf Посмотреть сообщение
BoT Takou BapuaHT c FPU-FOR (int cnt=0; cnt<100000; cnt++) ires=sin(++i1); .....
глупость. Это никакого отношения к Turbo Assembler не имеет
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
TASM (Turbo assembler) - Посмотреть код, указать на ошибки dimwow Помощь студентам 2 02.06.2019 03:19
Turbo Assembler/Перевод десятичного числа в двоичное Equality Помощь студентам 0 04.03.2014 00:24
turbo assembler/exe->com narco3 Помощь студентам 2 17.02.2013 12:04
Программа в Turbo Assembler 4atik Помощь студентам 2 28.12.2012 09:28
График функции на языке TURBO ASSEMBLER - (tasm) максат Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 9 02.06.2011 14:37