С Новым годом! Форум программистов, компьютерный форум, киберфорум
Assembler: Windows/protected mode
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
Assembler Позиция курсора и его форма Есть задание, нужно сдвинуть позицию курсора на 300 пикселей вправо и 100 пикселей вниз, а также изменить форму курсора. Есть код на WinAPI только не понимаю почему не работает, может подскажите что-то? format pe console 4.0 include 'WIN32AX.INC' .data x dd 20 y dd 20 .code https://www.cyberforum.ru/ assembler-windows/ thread2148908.html Вызов подпрограммы по срабатыванию таймера Assembler
помогите пожалуйста, вроде правильно, но выбивает ошибку syntax error in expression в HWND DWORD ? .486 .model flat, stdcall option casemap :none ;константи STD_OUTPUT_HANDLE equ -11 STD_INPUT_HANDLE equ -10 TIME_PERIODIC equ 1
Assembler [masm32] Обрабатывать пункты меню сразу в WM_MENUSELECT В масм32 возможно ли обрабатывать пункты меню сразу в WM_MENUSELECT без использования WM_COMMAND? Или можно прямо из WM_MENUSELECT сгенерировать своё сообщение WM_COMMAND и перейти в него? Просто wm_menuselect работает всякий раз а wm_command нет. А мне надо обработать задействование меню среднего уровня POPUP. Как то это можно сделать? https://www.cyberforum.ru/ assembler-windows/ thread2141870.html Assembler [Masm32] Добавление иконки в исполняемый файл https://www.cyberforum.ru/ assembler-windows/ thread2126115.html
как добавить иконку в эксе файл через линковку компиляцию
Assembler Информация о памяти компьютера
Подскажите как реализовать программу на ассемблере для masm32, которая выводит информацию про память компьютера. Буду благодарен хотя бы за ссылки на теорию про то, как можно вытащить эти самые данные про память компьютера.
Assembler [MASM32] Завершение программы при нажатии на клавиатуре клавиши "стрелка вверх" https://www.cyberforum.ru/ assembler-windows/ thread2123669.html
помогите, пожалуйста, сделать так, чтоб при нажатии клавиши стрелка вверх на клавиатуре консоль закрывалась .486 .model flat ,stdcall option casemap:none include \masm32\include\windows.inc ; STD_INPUT_HANDLE, ; STD_OUTPUT_HANDLE include \masm32\include\kernel32.inc include \masm32\include\user32.inc includelib \masm32\lib\kernel32.lib
Assembler Чтение двух трехзначных чисел и вывод их суммы на консоль Доброй ночи! Условие: с использованием API-функций создать консоль, считать из неё два трехзначных числа и вывести их сумму. Совместными усилиями меня и интернета программа есть, но не до конца написанная. Я не понимаю как происходит считывание строк в ней. Задаю 3 символа для чтения и для первой, и для второй строки. Никак не пойму когда именно наступает запись символов в консоли для первой... https://www.cyberforum.ru/ assembler-windows/ thread2121118.html [MASM32] Вывод в консольное окно текста заданным цветом в указанной позиции и ожидание нажатия клавиши левый Alt Assembler
Помогите, переписать с использованием функций API программу, создающую консольное приложение Windows. Она должна создать свою консоль, вывести приглашение к вводу данных, затем, ввести их, вычислить и вывести результат. После заданного события программа должна завершить свою работу. Вот сам вариант задания: Цвет фона – черный, символов – красный, позиция 20, 10, событие – нажат левый ALT...
Assembler [masm32] Использование Lstrlen https://www.cyberforum.ru/ assembler-windows/ thread2119737.html
Нужно узнать длину строки. Хочу это сделать функцией lstrlen и проверить. но как мне это проверить лучше? Я хотел вывести число соответствующее длине но не получается)) выводит символ d только. .386 .model flat,STDCALL option casemap :none ;case sensitive include E:\masm32\include\windows.inc ; include E:\masm32\include\masm32.inc include E:\masm32\include\gdi32.inc
Assembler Подсчёт времени выполнения кода Используя функцию QueryPerformanceCounter, написать приложение, которое будет подсчитывать время выполнения кода в MASM32 Участок кода:.386 .model flat,stdcall option casemap:none include C:\masm32\include\windows.inc include C:\masm32\include\kernel32.inc include C:\masm32\include\user32.inc includelib C:\masm32\lib\user32.lib includelib C:\masm32\lib\kernel32.lib https://www.cyberforum.ru/ assembler-windows/ thread2118986.html
Assembler Перемещение символа по экрану курсорными стрелками на клавиатуре
Написать программу в Masm Emoji кнопок вверх вниз влево вправо должен символ должен перемещаться и в какой-либо точке должна стоять мина -компилятор masm - операционная система Windows - режим экрана графический - некий символ, управляемый курсорными клавишами перемещается по экрану - в произвольном месте экрана расположена "мина" - при попадания символа на "мину" должен сработать звук
 
4 / 4 / 2
Регистрация: 25.09.2016
Сообщений: 105
0

[MASM32] Запись в файл массива структур - Assembler - Ответ 11951653

16.12.2017, 13:40. Показов 1441. Ответов 1
Метки (Все метки)

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
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
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
.386
.model flat, stdcall
option casemap :none 
 
include E:\masm32\include\windows.inc
include E:\masm32\include\user32.inc
include E:\masm32\include\kernel32.inc  
include E:\masm32\include\masm32.inc
 
includelib E:\masm32\lib\user32.lib
includelib E:\masm32\lib\kernel32.lib
includelib E:\masm32\lib\masm32.lib
    
.stack 4096
 
 
strlen PROTO, pString: PTR BYTE
strcopy PROTO, source:PTR BYTE, target:PTR BYTE  
strcomp PROTO, string1:PTR BYTE, string2:PTR BYTE
 
 
BOOK STRUCT 
    author BYTE 80 DUP(0)
    bookTitle BYTE 80 DUP(0)
    publisher BYTE 80 DUP(0)
 
    ALIGN DWORD
    year DWORD 0
BOOK ENDS
 
AUTHOR STRUCT
    author BYTE 80 DUP(0)
    numberOfBooks DWORD 0
AUTHOR ENDS
 
.data
numberOfBooks = 10
 
   
ALIGN DWORD
books   BOOK <"J.K.Rowling", "Harry Potter And the Sorcerer's Stone", "Scholastic Paperbacks", 1998>
        BOOK <"J.K.Rowling", "Harry Potter And The Chamber Of Secrets", "Scholastic Paperbacks", 2000>
        BOOK <"J.K.Rowling", "Harry Potter And the Prisoner of Azkaban", "Scholastic Paperbacks", 2001>
        BOOK <"J.K.Rowling", "Harry Potter And The Goblet Of Fire", "Scholastic Paperbacks", 2002>
        BOOK <"J.K.Rowling", "Harry Potter And The Order Of The Phoenix", "Scholastic Paperbacks", 2004>
        BOOK <"J.R.R.Tolkien", "The Fellowship of the Ring", "Mariner Books", 2012>
        BOOK <"J.R.R.Tolkien", "The Two Towers", "Mariner Books", 2012>
        BOOK <"J.R.R.Tolkien", "The Return of the King", "Mariner Books", 2012>
        BOOK <"O.Henry     ", "The Lost World", "Dover Publications", 1998>
        BOOK <"O.Henry     ", "The Hound of the Baskervilles", "Dover Publications", 1994>
 
ALIGN DWORD
authors AUTHOR numberOfBooks DUP(<>)
numberOfAuthors DWORD 0
 
 
szBuffer BYTE 100 DUP(0)
szNumber BYTE 10 DUP(0)
location DWORD 0
 
.code  
main PROC
    XOR ESI, ESI
    XOR EDI, EDI
    MOV ECX, numberOfBooks
 
  outerLoop:
    PUSH ECX
    XOR EDI, EDI
    MOV ECX, numberOfAuthors
 
    CMP ECX, 0
    JNE notFirstAuthor
 
    INVOKE strcopy, ADDR books[ESI].author, ADDR authors[EDI].author
    INC authors[EDI].numberOfBooks
    INC numberOfAuthors
    JMP nextBook
 
 
  notFirstAuthor:
  nextAuthor:
    INVOKE strcomp, ADDR books[ESI].author, ADDR authors[EDI].author
    JE authorsEqual
    ADD EDI, TYPE AUTHOR
    LOOP nextAuthor 
    
  
    MOV EAX, numberOfAuthors
    MOV EBX, TYPE AUTHOR
    MUL EBX 
    PUSH EAX
    INVOKE strcopy, ADDR books[ESI].author, ADDR authors[EAX].author 
    POP EAX
    INC authors[EAX].numberOfBooks
    INC numberOfAuthors
    JMP nextBook
 
 
  authorsEqual:
    INC authors[EDI].numberOfBooks
    
  
  nextBook:
    ADD ESI, TYPE BOOK
    POP ECX
    DEC ECX
    JNZ outerLoop
 
 
    MOV ECX, numberOfAuthors
    XOR ESI, ESI
 
  nextLine:
    PUSH ECX
    INVOKE szappend, ADDR szBuffer, ADDR authors[ESI].author, 0
    MOV location, EAX
 
    LEA EDI, szBuffer
    ADD EDI, location
    MOV AL, " "
    STOSB
    INC location
    
    INVOKE dwtoa, authors[ESI].numberOfBooks, ADDR szNumber
    INVOKE szappend, ADDR szBuffer, ADDR szNumber, location
    MOV location, EAX
 
    LEA EDI, szBuffer
    ADD EDI, location
    MOV AL, 10
    STOSB
    
 
    INVOKE StdOut, ADDR szBuffer
 
    ADD ESI, TYPE AUTHOR
    POP ECX
    DEC ECX
    JNZ nextLine
 
    INVOKE ExitProcess, 0
main ENDP
 
 
strlen PROC USES EDI,
    pString: PTR BYTE
 
    MOV EDI, pString
    MOV EAX, 0 
 
  nextCharacter:
    CMP BYTE PTR [EDI], 0 
    JE endLine 
    INC EDI 
    INC EAX 
    JMP nextCharacter
  endLine:
    RET
strlen ENDP
 
 
strcopy PROC USES eax ecx esi edi,
    source:PTR BYTE, target:PTR BYTE  
    
    INVOKE strlen, source 
    MOV ECX, EAX 
    INC ECX 
    MOV ESI, source
    MOV EDI, target
    CLD 
    
    REP MOVSB 
    RET
strcopy ENDP
 
strcomp PROC USES eax edx esi edi,
    string1:PTR BYTE, string2:PTR BYTE
 
    MOV ESI, string1
    MOV EDI, string2
  nextCharacter:
    MOV AL, [ESI]
    MOV DL, [EDI]
    CMP AL, 0 
    JNE compare
    CMP DL, 0 
    JNE compare
    JMP stringsEquals
 
  compare:
    INC ESI
    INC EDI
    CMP AL, DL 
    JE nextCharacter
 
  stringsEquals:
    RET
strcomp ENDP
END main


Вернуться к обсуждению:
[MASM32] Запись в файл массива структур Assembler
0
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.12.2017, 13:40
Готовые ответы и решения:

Открытие файла на запись (masm32)
Программа должна создать массив и переписать два первых байта в выходной файл - FileOut....

Запись файла из одного в другой на masm32 под DOS
Всем доброго времени суток:), подскажите пожалуйста!:wall: как сделать!!! мне нужно написать код...

Несмотря на подключение masm32.inc и masm32.lib не подтягиваются функции stdin и stdout
Собственно скрин.

Ошибки MASM32 - cannot open file : .\masm32\include\windows.inc
установил MASM32, прописал в патче путь, выдаёт ошибки при компиляции такого рода : Microsoft...

1
16.12.2017, 13:40
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.12.2017, 13:40
Помогаю со студенческими работами здесь

Компиляция примеров к книге Кип Р. Ирвин "Язык ассемблера для процессоров Intel"
вот код программы TITLE Add and Subtract (AddSub.asm) ; This program adds and...

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

[Masm32] Добавление иконки в исполняемый файл
как добавить иконку в эксе файл через линковку компиляцию

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

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru