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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.04.2010, 22:29   #1
DartDayring
Пользователь
 
Регистрация: 10.02.2010
Сообщений: 55
По умолчанию Условия

Вот само задание:
2010.jpg
А теперь проблема: Помогите правильно расставить условия в программе.
Тоесть условия проверки остатка. В СИ коде зделал через if(flag). На Асме не получается.
Код:
#include "stdafx.h" 
#include <math.h> 
#include "iostream"

int _tmain(int argc, _TCHAR* argv[])
{
	setlocale(LC_ALL,"Russian"); 
	int a[100];
	int i, n, j,ost,s,m;
	printf("Введите количество элементов массива: "); scanf_s("%d",&n);
	for(i=0; i<n; i++)
        {
                printf("a[%d] = ", i);
                scanf_s("%d",&a[i]);
        }
        for(i=0; i<n; ++i)
        {
                int flag=1;
				for(j=2; j<=a[i]/2; ++j)
                if((a[i]%j)==0)
                {
                        flag=0;
                        break;
                }
                if(flag)
				  printf("Номер элемента: %d\n",i);
        }

_asm
	{

		mov ebx,0
		mov m,ebx
		mov edi,0
A:
		lea edx,a
		mov eax,[edx+edi*4]
		mov i,eax


		mov ecx,2
		mov j,ecx
B:
		xor edx,edx
		mov eax,i
		mov ecx,j
		div ecx
		mov ost,edx
		cmp ost,0
		jge Y          // вот здесь!!!

		inc j

		xor edx,edx
		mov eax,i
		mov ecx,2
		div ecx
		mov s,eax

		cmp j,eax
		jle B

c:
		inc m
		inc edi
		mov eax,n
		cmp m,eax
		jl A
	} goto ext;
Y:   printf("(ASM)Номер элемента: %d\n",m); goto c;   
ext: return 0; 
}
DartDayring вне форума Ответить с цитированием
Старый 02.04.2010, 10:08   #2
Kastaneda
Пользователь
 
Регистрация: 26.02.2010
Сообщений: 22
По умолчанию

А по какому условию доложен осуществлятся переход, если есть остаток или если нет остатака?
Код:
cmp edx,0
je Y     ; это если остаток 0
Код:
cmp edx,0
jne Y     ; это если остаток не 0
Kastaneda вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Условия и их выполнение kta87 Помощь студентам 8 28.02.2010 15:37
условия в ComboBox Dotha Компоненты Delphi 4 26.12.2009 11:20
условия( if ) на запросе mavlon_m SQL, базы данных 6 20.10.2009 15:38
условия glupayastudentka Помощь студентам 7 25.06.2009 09:43
Проверка условия artemavd БД в Delphi 21 07.05.2009 18:20