Форум программистов, компьютерный форум, киберфорум
Наши страницы

Assembler для начинающих

Войти
Регистрация
Восстановить пароль
 
loskyto
0 / 0 / 0
Регистрация: 07.11.2013
Сообщений: 6
#1

Задачка - Assembler

10.11.2013, 20:29. Просмотров 731. Ответов 0
Метки нет (Все метки)

не получается сделать задачку.
Выдают ошибки по типу
D:\masm32\111.asm(29) : error A2008: syntax error : inkey
D:\masm32\111.asm(30) : error A2008: syntax error : exit
D:\masm32\111.asm(32) : error A2008: syntax error : cls
D:\masm32\111.asm(36) : error A2006: undefined symbol : StdOut
D:\masm32\111.asm(40) : error A2006: undefined symbol : dwtoa
D:\masm32\111.asm(41) : error A2006: undefined symbol : StdOut
D:\masm32\111.asm(42) : error A2006: undefined symbol : StdOut
D:\masm32\111.asm(43) : error A2006: undefined symbol : StdOut
D:\masm32\111.asm(47) : error A2006: undefined symbol : StdOut
D:\masm32\111.asm(48) : error A2006: undefined symbol : StdIn
D:\masm32\111.asm(49) : error A2006: undefined symbol : atol
D:\masm32\111.asm(56) : error A2006: undefined symbol : StdOut
D:\masm32\111.asm(59) : error A2006: undefined symbol : StdIn
D:\masm32\111.asm(60) : error A2006: undefined symbol : atol
D:\masm32\111.asm(87) : error A2008: syntax error : findMaxArray
D:\masm32\111.asm(89) : fatal error A1010: unmatched block nesting : findMaxArray


Вот код программки:

Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
 .586
 .model flat,stdcall
 option casemap: none
 
include D:\masm32\include\WINDOWS.INC 
 include D:\masm32\include\KERNEL32.INC 
 include D:\masm32\include\USER32.INC 
 include D:\masm32\include\ADVAPI32.INC 
 
 includelib D:\masm32\lib\comctl32.lib 
 includelib D:\masm32\lib\user32.lib 
 includelib D:\masm32\lib\gdi.lib 
 includelib D:\masm32\lib\karnel32.lib 
 includelib D:\masm32\lib\user32.lib 
 includelib D:\masm32\lib\advapi32.lib
  
    .data 
      array dd  100 dup (0)                  ;    
      num  dd  0                             ;  
      buff db  20 dup (0)                    ;    
      mess1 db  'Input number of elements: ',0 ;    
      mess2 db  'Input elements:',0dh,0ah,0  ;    
      mess3 db  'Summa elementov : ', 0            ;    
      mess4 db 'Incorrect number',0dh,0ah,0  ;    
      endl db  0dh, 0ah, 0                   ; 
.code 
start: ; 
    call main 
    inkey
    exit ; 
    main proc 
        cls                            ;  
        call   inputArray              ;    
        or     eax, eax                ;   
        jnz    next0                   ;   
        invoke StdOut, ADDR mess4      ;     
        ret                            ; 
next0: 
        call   findMaxArray            ;    
        invoke  dwtoa, eax, ADDR buff  ;    
        invoke StdOut, ADDR mess3      ;     
        invoke StdOut, ADDR buff       ;   
        invoke StdOut, ADDR endl       ;   
        ret                            ; 
main endp ;  
inputArray  proc                       ;   
        invoke StdOut, ADDR mess1      ;    
        invoke StdIn, ADDR buff, 20    ;   
        invoke atol, ADDR buff         ;   
        cmp    eax, 100                ;  100 
        jle    next0                   ;   ,   
        xor    eax, eax                ; eax 
        ret                            ; 
next0: 
        mov    num, eax                ;    num 
        invoke StdOut, ADDR mess2      ;     
        xor    ebx, ebx                ;   
loop0: 
        invoke StdIn, ADDR buff, 20    ;   
        invoke atol, ADDR buff         ;   
        mov    array [ebx*4], eax      ;    
        inc    ebx                     ;   
        cmp    ebx, num                ;    
        jnz    loop0                   ;     
        mov    eax, 1                  ;    
        ret                            ; 
inputArray endp ;  
findMaxArray proc           ; :  EAX -  
        xor    ebx, ebx                ;   
        dec  eax                       ;
loop0: 
        mov    edx, array [ebx*4]      ;  EDX 
        test edx, 1  
        jnz next1  
       
next0: 
        inc    ebx                     ;   
        cmp    ebx, num                ;    
        jnz    loop0                   ;    
        ret                            ; 
next1:
        add    edx, eax                ; 
        mov    eax, edx                ;  EAX  
        jnz    next0                  ;    
 
       findMaxArray end;
end start
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.11.2013, 20:29
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Задачка (Assembler):

Задачка! - Assembler
Ребят помогите, пожалуйста! Выполнить деление элементов 2х массивов {Xi}, {Yi} попарно. Запись элементов полученные данные в память...

Задачка - Assembler
Написать программу, для решения следующего выражения

Задачка - Assembler
Всем привет. Вообщем дана програмка. По дефолту для mov и jmp стоит регистровый и базово индексный относительный способ адресации...

Небольшая задачка - Assembler
1. Создайте исходный модуль nn_dt1.asm, содержащий сегмент данных с переменными согласно варианту задания. Здесь nn – номер в группе. ...

Задачка по Ассемблеру - Assembler
Разработать подпрограмму, которая подсчитывает, сколько раз заданный символ встречается в строке. Разработать программу, которая вводит с...

Задачка про матрицы - Assembler
Доброго времени суток! имеется такая задачка - все положительные элементы матрицы С(M,N) разделить на константу Е, все отрицательные -...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.11.2013, 20:29
Привет! Вот еще темы с ответами:

Легкая задачка и PUSH - Assembler
Задание: Вычислите значение выражения 4x^4 – 3x^2 + x % 4 для x = 2, 4, 6 в цикле (LOOP). Операция %- взятие остатка от деления. В сегменте...

Задачка из нескольких модулей - Assembler
Задание Необходимо создать основной модуль main программы, который после пуска программы осуществляет вывод на экран...

Необычная( для меня) задачка - Assembler
Задание Написать программу на языке ассемблер для решения квадратного уравнения. Но использовать assembler'ную вставку в си. И в си...

(MASM) Задачка по выводу ASCII символов - Assembler
Доброе суток! Имеется задача, где нужно выводить алфавит по 6 символов в строке и чтобы каждая следующая строка начиналась с пробела и с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru