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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.04.2010, 19:42   #1
серг
Форумчанин
 
Регистрация: 02.11.2009
Сообщений: 179
По умолчанию Условные переходы

нужно сделать так чтобы при выполнении условия a<b & d<=e выполнялась метка ф1 а при не выполнении ф2
понял что работает таблица
a<b d<=e jmp
0____0___f2
0____1___f2
1____0___f2
1____1___f1
но никак не получается реализоват в коде никак не пойму как правильно пишутся команды условного перехода jx
вот примерный код помогите пожалуйста понять и поправить

Код:

#include <stdio.h>
#include <conio.h>

void main()
{
int const a=5,b=6,c=3,d=5,e=1; //) y=a+b/c-d*e
int delenie,umnogenie,y;
__asm
{
push eax
push ebx
push ecx
push edx

mov eax,a
cmp eax,b
jg f2
jl f1
mov ebx,d
cmp ebx,e
jng f1
mov ebx,d
cmp ebx,e
jnl f2
end:
f1:
mov edx,0
mov eax,b
div c
mov delenie,eax

mov eax,d
imul e
mov umnogenie,eax

mov ebx,delenie
mov eax,umnogenie
sub ebx,eax; (b/c-d*e)

add ebx,a; ()+a

mov y,ebx
jmp end
f2:
mov edx,0
mov eax,b
div c; b/c
imul a; (b/c*a)
add eax,a; ()+a
mov ebx,e
sub eax,ebx; ()+a-e

mov y,eax
jmp end

pop edx
pop ecx
pop ebx
pop eax
}
printf("%d",y);
_getch();
}
попробовал на разных наборах данных получается что отрабатывает только ф1 не понял почему как исправить
серг вне форума Ответить с цитированием
Старый 15.04.2010, 22:24   #2
airyashov
Форумчанин
 
Регистрация: 02.04.2008
Сообщений: 358
По умолчанию

Код:
#include <stdio.h>
#include <conio.h>

void main()
{
int const a=5,b=6,c=3,d=5,e=1; //) y=a+b/c-d*e
int delenie,umnogenie,y;
__asm
{
push eax
push ebx
push ecx
push edx

mov eax,a
cmp eax,b
jge f2
mov ebx,d
cmp ebx,e
jg f2

f1:
....
jmp end

f2:
...
end:
pop edx
pop ecx
pop ebx
pop eax
}
printf("%d",y);
_getch();
}
неплохо пишу на ассемблере для 80х86
icq: 3(один)7748666
mail: airyashov(а)inbox.ru
airyashov вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ассемблер условные переходы серг Помощь студентам 0 15.04.2010 19:25
Немогу сделать переходы назад по ссылкам solanto HTML и CSS 14 16.11.2009 10:07
Переходы между окнами Ark Общие вопросы Delphi 5 22.04.2009 00:22