Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Asm для начинающих > error A2070


Автор: JTV 20.11.2011, 18:12
написала программу, ошибки в строках 16, 21, 22, 25, 31. Ошибка одна и та же везде: error A2070. Подскажите, что не так?
 в задаче нужно найти сумму элементов<0 и еще найти максимальный и его позицию

Код

.586 
.model flat,stdcall 
.data
    mas DB 5,-3,-2, 1, 8 
    sum DB 1 dup(?)
    max DB 1 dup(?)
    p_nom DB 1 dup(?)
    len_mas=$-mas  
.code 
    _start:
        mov ESI,0 
        mov ECX,0 
        ;mov EBX,0 
        mov EAX,0
        mov CL,len_mas
        mov max,mas[ESI] 
        CYC1:    
            CMP mas[ESI],AL 
            JL ZNACH 
            JMP MX 
            ZNACH: add sum,mas[ESI]
            MX: CMP max,mas[ESI]
            JL ZN
            JMP EN
            ZN: mov max,mas[ESI] 
            EN: add ESI,1
        LOOP CYC1
        mov ESI,0
        mov CL,len_mas
        CYC2:
            CMP mas[ESI],max
            JE PFF
            INC ESI
        LOOP CYC2
        PFF: mov p_nom, CL 
        Ret  
    end _start 


Автор: iff 20.11.2011, 19:47
нельзя обращаться в обоих оперендах к памяти.

Добавлено через 2 минуты и 37 секунд
Цитата(JTV @  20.11.2011,  18:12 Найти цитируемый пост)
.586 
.model flat,stdcall 

зачем?

Цитата(JTV @  20.11.2011,  18:12 Найти цитируемый пост)
len_mas=$-mas

вы понимаете что означает "$-mas"?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)