Форум программистов, компьютерный форум, киберфорум
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
1 / 1 / 0
Регистрация: 31.01.2015
Сообщений: 197
1

Принадлежит ли точка фигуре

03.04.2017, 20:50. Показов 946. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток, дали задачу но на ассембелере раньше не писал...
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
Start:
  
  nop
  nop
  nop
  ;F dw ?
  F1 dd 0
  x1 dd 0
  x2 dd 2
  x3 dd 4
  x4 dd 8
  x5 dd 6
  x6 dd 14
  x7 dd 12
  x8 dd 2
  x9 dd 20
  y1 dd 10
  y2 dd 4
  y3 dd 2
  y4 dd 0
  y5 dd 8
  y6 dd 6
  y8 dd 3
  y9 dd 1
  nop
  x dd 1
  y dd 1
  nop
  
  mov eax ,[x]
  mov ebx ,[y]
  nop
           
      ;proverka pervogo       
  cmp eax,[x1]
  jge m1
  cmp eax,[x3]
  cmp ebx,[y1]
  cmp ebx,[y2]
;              proverka vtorogo
  m1: cmp eax,[x1]
  cmp eax,[x2]
  cmp ebx,[y3]
  cmp ebx,[y4]
    ;proverka tretego
  cmp eax,[x3]
  cmp eax,[x2]
  cmp ebx,[y3]
  cmp ebx,[y4]
 ; proverka chetvertogo
  cmp eax,[x3]
  cmp eax,[x8]
  cmp ebx,[y4]
  cmp ebx,[y9]
 ; proverka piatogo
  cmp eax,[x8]
  cmp eax ,[x9]
  cmp ebx,[y1]
  cmp ebx, [y4]
;  proverka shestogo
  cmp eax,[x7]
  cmp eax,[x8]
  cmp ebx,[y5]
  cmp ebx,[y6]
;  proverka sedmogo
  cmp eax,[x5]
  cmp eax,[x6]
  cmp ebx,[y5]
  cmp ebx,[y8]
 ; proverka vosmogo
  cmp eax,[x3]
  cmp eax,[x4]
  cmp ebx,[y5]
  cmp ebx,[y6]
  
Exit:
  invoke  ExitProcess, 0
вот примерно вот такой код...но при первой же операции присваивания
Assembler
1
F dd 0
дебагинг прикращается...что за ошибка??? Делаю в FASM и OllyDbg
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.04.2017, 20:50
Ответы с готовыми решениями:

Принадлежит ли точка фигуре
Определить принадлежность точки областям, обозначенным прописными буквами A и B. Строчными буквами...

Принадлежит ли точка фигуре
Помогите пожалуйста..

Принадлежит ли точка фигуре
Всем привет помогите с задачей. определить, принадлежит ли заданная точка (x, y) плоской фигуре,...

Принадлежит ли точка x, y фигуре
Даны х, у . Выяснить принадлежит ли точка х, у фигуре , изображенной на рисунке

8
Модератор
Эксперт по электронике
8505 / 4360 / 1646
Регистрация: 01.02.2015
Сообщений: 13,530
Записей в блоге: 8
03.04.2017, 22:54 2
Данные, должны быть сгруппированы в сегмент данных, исполняемый код - в сегмент кода.
Вот пример консольного приложения на FASM под Windows x32 https://www.cyberforum.ru/post9639321.html
0
Asm/C++/Delphi/Py/PHP/VBA
6670 / 1989 / 230
Регистрация: 14.12.2014
Сообщений: 4,166
Записей в блоге: 12
03.04.2017, 23:36 3
Если не вдаваться в код программы, а сделать просто "чтобы запускалось", то так:
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
format PE GUI 4.0
 
include 'win32axp.inc'
 
.data  
 
  nop
  nop
  nop
  ;F dw ?
  F1 dd 0
  x1 dd 0
  x2 dd 2
  x3 dd 4
  x4 dd 8
  x5 dd 6
  x6 dd 14
  x7 dd 12
  x8 dd 2
  x9 dd 20
  y1 dd 10
  y2 dd 4
  y3 dd 2
  y4 dd 0
  y5 dd 8
  y6 dd 6
  y8 dd 3
  y9 dd 1
  nop
  x dd 1
  y dd 1
  nop
 
.code
 
Start:
 
  mov eax ,[x]
  mov ebx ,[y]
  nop
           
      ;proverka pervogo       
  cmp eax,[x1]
  jge m1
  cmp eax,[x3]
  cmp ebx,[y1]
  cmp ebx,[y2]
;              proverka vtorogo
  m1: cmp eax,[x1]
  cmp eax,[x2]
  cmp ebx,[y3]
  cmp ebx,[y4]
    ;proverka tretego
  cmp eax,[x3]
  cmp eax,[x2]
  cmp ebx,[y3]
  cmp ebx,[y4]
 ; proverka chetvertogo
  cmp eax,[x3]
  cmp eax,[x8]
  cmp ebx,[y4]
  cmp ebx,[y9]
 ; proverka piatogo
  cmp eax,[x8]
  cmp eax ,[x9]
  cmp ebx,[y1]
  cmp ebx, [y4]
;  proverka shestogo
  cmp eax,[x7]
  cmp eax,[x8]
  cmp ebx,[y5]
  cmp ebx,[y6]
;  proverka sedmogo
  cmp eax,[x5]
  cmp eax,[x6]
  cmp ebx,[y5]
  cmp ebx,[y8]
 ; proverka vosmogo
  cmp eax,[x3]
  cmp eax,[x4]
  cmp ebx,[y5]
  cmp ebx,[y6]
  
Exit:
  invoke  ExitProcess, 0
 
.end Start
0
1 / 1 / 0
Регистрация: 31.01.2015
Сообщений: 197
04.04.2017, 10:28  [ТС] 4
Jin X, .code/.data/.end illegal instruction. Выдает такую вот ошибку...пишу в консоле...вот полный кодЪ
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
88
89
90
91
92
93
94
95
96
97
 format PE Console 4.0
entry Start
 
include 'win32a.inc'
 
;section '.text' code readable executable
;       .data
        nop
  nop
  nop
  ;F dw ?
  F1 dd 0
  x1 dd 0
  x2 dd 2
  x3 dd 4
  x4 dd 8
  x5 dd 6
  x6 dd 14
  x7 dd 12
  x8 dd 2
  x9 dd 20
  y1 dd 10
  y2 dd 4
  y3 dd 2
  y4 dd 0
  y5 dd 8
  y6 dd 6
  y8 dd 3
  y9 dd 1
  nop
  x dd 1
  y dd 1
  nop
  .code
Start:
  
 
  
  mov eax ,[x]
  mov ebx ,[y]
  nop
           
      ;proverka pervogo       
  cmp eax,[x1]
  jge m1
  cmp eax,[x3]
  cmp ebx,[y1]
  cmp ebx,[y2]
;              proverka vtorogo
  m1: cmp eax,[x1]
  cmp eax,[x2]
  cmp ebx,[y3]
  cmp ebx,[y4]
    ;proverka tretego
  cmp eax,[x3]
  cmp eax,[x2]
  cmp ebx,[y3]
  cmp ebx,[y4]
 ; proverka chetvertogo
  cmp eax,[x3]
  cmp eax,[x8]
  cmp ebx,[y4]
  cmp ebx,[y9]
 ; proverka piatogo
  cmp eax,[x8]
  cmp eax ,[x9]
  cmp ebx,[y1]
  cmp ebx, [y4]
;  proverka shestogo
  cmp eax,[x7]
  cmp eax,[x8]
  cmp ebx,[y5]
  cmp ebx,[y6]
;  proverka sedmogo
  cmp eax,[x5]
  cmp eax,[x6]
  cmp ebx,[y5]
  cmp ebx,[y8]
 ; proverka vosmogo
  cmp eax,[x3]
  cmp eax,[x4]
  cmp ebx,[y5]
  cmp ebx,[y6]
  
Exit:
  invoke  ExitProcess, 0
;  .end Start
 
 
  library kernel, 'KERNEL32.DLL'
 
  import kernel,\
    SetConsoleTitleA, 'SetConsoleTitleA',\
    GetStdHandle, 'GetStdHandle',\
    WriteConsoleA, 'WriteConsoleA',\
    ReadConsoleA, 'ReadConsoleA',\
    ExitProcess, 'ExitProcess'
0
4174 / 1824 / 218
Регистрация: 06.10.2010
Сообщений: 4,111
04.04.2017, 10:32 5
В коде какая-то не рабочая лажа - куча cmp и только один условный переход.
0
1 / 1 / 0
Регистрация: 31.01.2015
Сообщений: 197
04.04.2017, 10:33  [ТС] 6
murderer, он еще недописан...просто хотел попробовать запустить проверить все ли проходит...переходы еще будут добавлятся...ето не окончательное решение
0
4174 / 1824 / 218
Регистрация: 06.10.2010
Сообщений: 4,111
04.04.2017, 10:33 7
Перевод кода Cи → Asm
0
1 / 1 / 0
Регистрация: 31.01.2015
Сообщений: 197
04.04.2017, 11:12  [ТС] 8
murderer, спасибо,но оно не подходит...мне не нужно графической реализации...просто нужно чтоб проверяло по координатам

Добавлено через 35 минут
murderer, Jin X, вот полностью законченный логически код,задание опишу по точнее...дан многоугольник,нужно узнать принадлежит ли точка этому многоугольнику...для этого разделил его на 8 прямоугольников и уже проверяю принадлежит ли точка какому-то из них...
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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
format PE Console 4.0
entry Start
 
include 'win32a.inc'
 
;section '.text' code readable executable
;       .data
        nop
  nop
  nop
  F dd 1
  x1 dd 0
  x2 dd 2
  x3 dd 4
  x4 dd 8
  x5 dd 6
  x6 dd 14
  x7 dd 12
  x8 dd 2
  x9 dd 20
  y1 dd 10
  y2 dd 4
  y3 dd 2
  y4 dd 0
  y5 dd 8
  y6 dd 6
  y8 dd 3
  y9 dd 1
  nop
  x dd 1
  y dd 1
  nop
  .code
Start:
  
 
  
  mov eax ,[x]
  mov ebx ,[y]
  
  nop
           
      ;proverka pervogo       
  cmp eax,[x1]
  jb m2
  cmp eax,[x3]
  ja m2
  cmp ebx,[y1]
  ja m2
  cmp ebx,[y2]
  jb m2
  mov ecx,1
  cmp ecx,[F]
  je m9;
  
;              proverka vtorogo
  m2: cmp eax,[x1]
  jb m3
  cmp eax,[x2]
  ja m3
  cmp ebx,[y3]
  ja m3
  cmp ebx,[y4]
  jb m3
  mov ecx,1
  cmp ecx,[F]
  je m9;
    ;proverka tretego
 m3: cmp eax,[x3]
    ja m4
  cmp eax,[x2]
  jb m4
  cmp ebx,[y2]
  ja m4
  cmp ebx,[y4]
  jb m4
  mov ecx,1
  cmp ecx,[F]
  je m9;
 ; proverka chetvertogo
 m4: cmp eax,[x3]
 jb m5
  cmp eax,[x8]
  ja m5
  cmp ebx,[y4]
  jb m5
  cmp ebx,[y9]
  ja m5
  mov ecx,1
  cmp ecx,[F]
  je m9;
 ; proverka piatogo
 m5: cmp eax,[x8]
 jb m6
  cmp eax ,[x9]
  ja,m6
  cmp ebx,[y1]
  ja m6
  cmp ebx, [y4]
  jb m6
  mov ecx,1
  cmp ecx,[F]
  je m9;
;  proverka shestogo
 m6: cmp eax,[x7]
 jb m7
  cmp eax,[x8]
  ja m7
  cmp ebx,[y5]
  ja m7
  cmp ebx,[y6]
  jb m7
  mov ecx,1
  cmp ecx,[F]
  je m9;
  mov ecx,1
  cmp ecx,[F]
  je m9;
;  proverka sedmogo
 m7: cmp eax,[x5]
 jb m8
  cmp eax,[x6]
  ja m8
  cmp ebx,[y6]
  ja m8
  cmp ebx,[y8]
  jb m8
 ; proverka vosmogo
 m8: cmp eax,[x3]
 jb m10
  cmp eax,[x4]
  ja m10
  cmp ebx,[y5]
  ja m10
  cmp ebx,[y6]
  jb m10
  mov ecx,1
  cmp ecx,[F]
  je m9;
 m9: ; точка пренадлежит многоугольнику
 m10: ; точка не пренадлежит многоугольнику
Exit:
  invoke  ExitProcess, 0
;  .end Start
 
 
  library kernel, 'KERNEL32.DLL'
 
  import kernel,\
    SetConsoleTitleA, 'SetConsoleTitleA',\
    GetStdHandle, 'GetStdHandle',\
    WriteConsoleA, 'WriteConsoleA',\
    ReadConsoleA, 'ReadConsoleA',\
    ExitProcess, 'ExitProcess'
получилось что-то такое...но запустить так и не могу нормально...
0
Asm/C++/Delphi/Py/PHP/VBA
6670 / 1989 / 230
Регистрация: 14.12.2014
Сообщений: 4,166
Записей в блоге: 12
04.04.2017, 18:11 9
Цитата Сообщение от Raketa Посмотреть сообщение
Jin X, .code/.data/.end illegal instruction. Выдает такую вот ошибку...
Может, у тебя какой-то очень старый fasm?
Обнови попробуй...

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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
format PE Console 4.0
entry Start
 
include 'win32a.inc'
 
section '.data' data readable writeable
 
  nop
  nop
  nop
  F dd 1
  x1 dd 0
  x2 dd 2
  x3 dd 4
  x4 dd 8
  x5 dd 6
  x6 dd 14
  x7 dd 12
  x8 dd 2
  x9 dd 20
  y1 dd 10
  y2 dd 4
  y3 dd 2
  y4 dd 0
  y5 dd 8
  y6 dd 6
  y8 dd 3
  y9 dd 1
  nop
  x dd 1
  y dd 1
  nop
 
section '.data' data readable writeable
 
Start:
 
  mov eax ,[x]
  mov ebx ,[y]
  
  nop
           
      ;proverka pervogo       
  cmp eax,[x1]
  jb m2
  cmp eax,[x3]
  ja m2
  cmp ebx,[y1]
  ja m2
  cmp ebx,[y2]
  jb m2
  mov ecx,1
  cmp ecx,[F]
  je m9;
  
;              proverka vtorogo
  m2: cmp eax,[x1]
  jb m3
  cmp eax,[x2]
  ja m3
  cmp ebx,[y3]
  ja m3
  cmp ebx,[y4]
  jb m3
  mov ecx,1
  cmp ecx,[F]
  je m9;
    ;proverka tretego
 m3: cmp eax,[x3]
    ja m4
  cmp eax,[x2]
  jb m4
  cmp ebx,[y2]
  ja m4
  cmp ebx,[y4]
  jb m4
  mov ecx,1
  cmp ecx,[F]
  je m9;
 ; proverka chetvertogo
 m4: cmp eax,[x3]
 jb m5
  cmp eax,[x8]
  ja m5
  cmp ebx,[y4]
  jb m5
  cmp ebx,[y9]
  ja m5
  mov ecx,1
  cmp ecx,[F]
  je m9;
 ; proverka piatogo
 m5: cmp eax,[x8]
 jb m6
  cmp eax ,[x9]
  ja m6
  cmp ebx,[y1]
  ja m6
  cmp ebx, [y4]
  jb m6
  mov ecx,1
  cmp ecx,[F]
  je m9;
;  proverka shestogo
 m6: cmp eax,[x7]
 jb m7
  cmp eax,[x8]
  ja m7
  cmp ebx,[y5]
  ja m7
  cmp ebx,[y6]
  jb m7
  mov ecx,1
  cmp ecx,[F]
  je m9;
  mov ecx,1
  cmp ecx,[F]
  je m9;
;  proverka sedmogo
 m7: cmp eax,[x5]
 jb m8
  cmp eax,[x6]
  ja m8
  cmp ebx,[y6]
  ja m8
  cmp ebx,[y8]
  jb m8
 ; proverka vosmogo
 m8: cmp eax,[x3]
 jb m10
  cmp eax,[x4]
  ja m10
  cmp ebx,[y5]
  ja m10
  cmp ebx,[y6]
  jb m10
  mov ecx,1
  cmp ecx,[F]
  je m9;
 m9: ; точка пренадлежит многоугольнику
 m10: ; точка не пренадлежит многоугольнику
Exit:
  invoke  ExitProcess, 0
 
section '.idata' import data readable
 
  library kernel, 'KERNEL32.DLL'
 
  import kernel,\
    SetConsoleTitleA, 'SetConsoleTitleA',\
    GetStdHandle, 'GetStdHandle',\
    WriteConsoleA, 'WriteConsoleA',\
    ReadConsoleA, 'ReadConsoleA',\
    ExitProcess, 'ExitProcess'
0
04.04.2017, 18:11
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.04.2017, 18:11
Помогаю со студенческими работами здесь

Определить принадлежит ли точка фигуре
Определить принадлежность точки областям, обозначенным прописными буквами A и B. Строчными буквами...

Определить, принадлежит ли точка фигуре
ВОбщем нужно определить принадлежит ли точка этой фигуре. Координаты точки (х,у) а так же значения...

Определить, принадлежит ли точка фигуре
Доброго времени суток, помогите решить задачу, код я написал, только его нужно чуть изменить! Суть...

Определить, принадлежит ли точка фигуре
Определить, принадлежит ли точка фигуре, представленной на рисунке. Решить задачу для точек с...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru