Форум программистов, компьютерный форум, киберфорум
Наши страницы
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
 
proc3nt
волшебник
1379 / 626 / 193
Регистрация: 26.05.2012
Сообщений: 1,859
1
MASM

Заполнение структуры Coord

17.05.2019, 09:47. Просмотров 156. Ответов 2
Метки нет (Все метки)

здр.. имеется следующая программа.. вроде простая.. но что-то я полностью не могу вникнуть в суть..

определить структуру названную Coord, которая содержит поля x и y.. написать процедуру которая принимает индекс, длину строки, указатель на структуру Coord.. И затем заполняет структуру с координатами соответствующими индексу..

возникает пару вопросов.. почему и для чего передается именно длина строки, а не указатель на саму строку? накидал свое приблизительное решение.. здесь я использовал длину строки минус один для сравнения с индексом, т.е. проверка чтобы индекс не выходил за границы массива.. прошу проверить правильность всей моей программы.. может также подскажете как изменить и/или улучшить данный код..

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
.386
.model flat,stdcall
 
option casemap:none
 
include \masm32\include\windows.inc
include \masm32\include\masm32.inc
include \masm32\include\gdi32.inc
include \masm32\include\user32.inc
include \masm32\include\kernel32.inc
includelib \masm32\lib\masm32.lib
includelib \masm32\lib\gdi.lib
includelib \masm32\lib\user32.lib
includelib \masm32\lib\kernel32.lib
 
Coord struc
    x dd ?
    y dd ?
Coord ends    
 
.data
arr dd 0,1,2,3,4,5,6,7,8,9
 
.data?
dot Coord <>
 
.code
main proc
    mov eax,offset dot
    mov ebx,7
    mov ecx,lengthof arr
 
    push eax
    push ebx
    push ecx
 
    call fillcoord
 
    ret
main endp
 
fillcoord proc
    push ebp        
    mov ebp,esp
 
    mov ebx,[ebp+12]
    mov ecx,[ebp+8]
    dec ecx
 
    cmp ebx,ecx
    jg fin
 
    mov esi,offset arr
    shl ebx,2
    add esi,ebx
    mov ebx,[ebp+16]
 
    mov eax,dword ptr [esi]
    mov [ebx],eax
 
    add esi,4
    add ebx,4
 
    mov eax,dword ptr [esi]
    mov [ebx],eax
 
    fin:
    pop ebp         
 
    retn 12          
fillcoord endp
end main
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.05.2019, 09:47
Ответы с готовыми решениями:

Что за тип COORD?
http://msdn.microsoft.com/en-us/library/windows/desktop/ms682662%28v=vs.85%29.aspx.

Изменения значения переменной типа COORD
Всем доброго времени суток! Недавно я, найдя хороший способ перемещения курсора в консоли,...

COORD position = {0,0}; - как это работает?
Здравствуйте. Разбираю код двух программ: &quot;Сапер&quot; и &quot;Змейка&quot; и в каждой из них есть, вроде бы,...

Заполнение структуры
Нужно написать задачку в DeV C++. В общем, при заполнении структуры со второй итерации...

Заполнение структуры
Изучаю С++, заполняю объект структуры, в строке cin.getline (human.first_name, 10); выдает ...

2
Mikl___
Ушел с форума
Автор FAQ
13720 / 6796 / 735
Регистрация: 11.11.2010
Сообщений: 12,202
17.05.2019, 09:58 2
proc3nt,
работа со структурами
Assembler
1
2
3
4
5
6
7
8
dot Coord 30 dup (?)
          . . .
         mov edi,offset dot
         mov ecx,30
assume edi:ptr Coord
         mov [edi].x,345
         mov [edi].y,600
         add edi,sizeof Coord
2
proc3nt
волшебник
1379 / 626 / 193
Регистрация: 26.05.2012
Сообщений: 1,859
17.05.2019, 10:23  [ТС] 3
Mikl___, спасибо..
0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.05.2019, 10:23

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

Заполнение структуры из vector
Доброго времени суток. Имеется такого вида структура: struct Point { Point (void);...

Заполнение структуры значениями
Как правильно заполнить структуру рандомными значениями? Проблема с инициализацией :( ...


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

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

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