HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Циклы в ассемблере[Help me]
  #1  
Старый 01.04.2010, 23:01
cheater_man
Постоянный
Регистрация: 13.11.2009
Сообщений: 437
С нами: 8680278

Репутация: 17
По умолчанию Циклы в ассемблере[Help me]

Нужно организовать оператор условия на асме, например
Код:
if(a>=34&&a<=100&&b==4)
Используя маш. команду OR

Последний раз редактировалось cheater_man; 02.04.2010 в 01:31..
 
Ответить с цитированием

  #2  
Старый 01.04.2010, 23:43
Gar|k
Постоянный
Регистрация: 20.03.2009
Сообщений: 564
С нами: 9023100

Репутация: 395


По умолчанию

o_O сам понял че написал? цикл например if...
 
Ответить с цитированием

  #3  
Старый 02.04.2010, 01:08
fluffylion
Познающий
Регистрация: 22.02.2010
Сообщений: 30
С нами: 8534832

Репутация: 15
По умолчанию

cheater_man, тот код, что ты привел, это оператор условия (который может использоваться в цикле), но не цикл

распиши подробнее задачу
 
Ответить с цитированием

  #4  
Старый 02.04.2010, 01:29
cheater_man
Постоянный
Регистрация: 13.11.2009
Сообщений: 437
С нами: 8680278

Репутация: 17
По умолчанию

Короче есть строчка кода на С
Код:
.....
if(a>=34&&a<=100)
.....
Нужно этот же код на асму переписать с командой OR
Без OR будет примерно так:
Код:
mov ax,a
mov bx,34
cmp ax,bx
mov ax,1
jge m1
sub ax,ax
m1:
test ax,ax
jnz переходим к след условию a<=100
jmp if невыполнился
....
А вот как сделать это с OR
Нужно сначала сравнить эти выражения, а потом проверить OR'ом.Вообще так возможно(используем только регистры ax и bx)???
 
Ответить с цитированием

  #5  
Старый 02.04.2010, 01:45
zeppe1in
Постоянный
Регистрация: 12.07.2006
Сообщений: 327
С нами: 10437270

Репутация: 117
По умолчанию

Код:
mov ax,a
cmp ax,34
JL невыполнился
cmp ax,100
JG невыполнился
наверное вот так как то. а что ты хочеш делать с OR непонятно)
 
Ответить с цитированием

  #6  
Старый 02.04.2010, 10:36
cheater_man
Постоянный
Регистрация: 13.11.2009
Сообщений: 437
С нами: 8680278

Репутация: 17
По умолчанию

Цитата:
Сообщение от zeppe1in  
Код:
mov ax,a
cmp ax,34
JL невыполнился
cmp ax,100
JG невыполнился
наверное вот так как то. а что ты хочеш делать с OR непонятно)
Это то да Но не то.
 
Ответить с цитированием

  #7  
Старый 02.04.2010, 12:07
Swat2k
Новичок
Регистрация: 12.09.2007
Сообщений: 14
С нами: 9822178

Репутация: 2
По умолчанию

Код:
include 'win32ax.inc'
.data
a db 34d;
b db 4d;
.code
OEP:
        mov ah,[a]  ;ah = a
        mov al,[b]  ;al = b
        cmp ah,34d  ;
        jnae _exit  ; exit if not above or equal (X < Y)
        cmp ah,100d;
        ja _exit    ; exit if above (X > Y)
        cmp al,4d;
        jnz _exit   ; exit if above (X != Y)
        invoke  MessageBox,HWND_DESKTOP,"Число a , находится на отрезке [34,100] и b == 4",invoke GetCommandLine,MB_OK
_exit:  invoke  ExitProcess,0
.end OEP
Интересно бы было посмотреть на вариант с OR

Последний раз редактировалось Swat2k; 02.04.2010 в 12:26..
 
Ответить с цитированием

  #8  
Старый 02.04.2010, 13:51
cheater_man
Постоянный
Регистрация: 13.11.2009
Сообщений: 437
С нами: 8680278

Репутация: 17
По умолчанию

Спасибо всем за советы Разобрался сам
Closed & deleted
 
Ответить с цитированием
Ответ



Предыдущая тема Следующая тема
Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Циклы при GD Ru}{eeZ PHP 14 15.12.2008 17:06



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.