Просмотр полной версии : Циклы в ассемблере[Help me]
cheater_man
01.04.2010, 23:01
Нужно организовать оператор условия на асме, например
if(a>=34&&a<=100&&b==4)
Используя маш. команду OR
o_O сам понял че написал? цикл например if...
fluffylion
02.04.2010, 01:08
cheater_man, тот код, что ты привел, это оператор условия (который может использоваться в цикле), но не цикл
распиши подробнее задачу
cheater_man
02.04.2010, 01:29
Короче есть строчка кода на С
.....
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 невыполнился
....
:D А вот как сделать это с OR :confused:
Нужно сначала сравнить эти выражения, а потом проверить OR'ом.Вообще так возможно(используем только регистры ax и bx)???
zeppe1in
02.04.2010, 01:45
mov ax,a
cmp ax,34
JL невыполнился
cmp ax,100
JG невыполнился
наверное вот так как то. а что ты хочеш делать с OR непонятно)
cheater_man
02.04.2010, 10:36
mov ax,a
cmp ax,34
JL невыполнился
cmp ax,100
JG невыполнился
наверное вот так как то. а что ты хочеш делать с OR непонятно)
Это то да :) Но не то.
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
cheater_man
02.04.2010, 13:51
Спасибо всем за советы ;) Разобрался сам :)
Closed & deleted
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot