Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Условия на асме

57K
01 апреля 2010 года
DarkD
4 / / 30.03.2010
вот задание
[ATTACH]4146[/ATTACH]
А теперь проблема: Помогите правильно расставить условия в программе.
Тоесть условия проверки остатка. В СИ коде зделал через 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);
        }
        for(i=0; i<n; ++i)
        {
                int flag=1;
                for(j=2; j<=a/2; ++j)
                if((a%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
        jg 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;
}
18K
10 апреля 2010 года
turbanoff
11 / / 25.08.2006
1) зачем этот огород с регистрами, при записи значений в переменные?
пиши сразу в переменные
mov m,0
и так же можно делить сразу на пеерменные
div j
2) там где написано
//вот здесь
идет сравнение остатка с 0.
прорвека условия на равенство
je метка_перехода //перейдет если равно
jne метка_ //переход если не равно
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог