Форум программистов, компьютерный форум, киберфорум
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
2 / 2 / 0
Регистрация: 24.06.2019
Сообщений: 20
MASM32

Вывести массив в MessageBox

02.05.2022, 19:26. Показов 937. Ответов 1

Студворк — интернет-сервис помощи студентам
Сортирую массив DWORD на masm`e для Visual Studio с помощью процедуры . Вопрос в том чтоб как-то вывести его в MessageBoxA@16. Помогите кто сталкивался.

Код:

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
.386
.model flat, stdcall
.stack 4096
ExitProcess PROTO, dwExitCode: DWORD
 
.data
Mb_OK  EQU   0  
TITLE_    DB          "LAB ", 0   
STR_F     DB          "Sort = %d", 0  
STR_BUF   DB          256 DUP (0)  
HW        DD          ? 
 
ary DWORD 8, 4, 1, 0, 9, 3, 5, 2, 6, 7 ; array
n   DWORD    10 ; rozmer array
output DD ?
 
EXTERN wsprintfA:NEAR
EXTERN MessageBoxA@16:NEAR  
 
.code
 
main PROC
    push OFFSET ary                  
    push n                 
    call insertionSort
    
 
 
    mov eax,ary ; попытка вывести
    mov [output],eax
 
    push output
    push OFFSET STR_F
    push OFFSET STR_BUF
    call wsprintfA
 
    push MB_OK
    push OFFSET TITLE_
    push OFFSET STR_BUF
    push HW
    call MessageBoxA@16
    ret
 
    main ENDP
 
insertionSort PROC      ; процедура сортировки
    
    ......
 
insertionSort ENDP
 
END main
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.05.2022, 19:26
Ответы с готовыми решениями:

Разделить массив на отдельные строки и вывести их поочерёдно в MessageBox
Помогите пожалуйста. Вроде как всё просто, но уже пол часа ничего не выходит.:wall: Нужно сделать следующее: Дан массив строк,...

Как вывести массив в MessageBox?
Вот мои попытки, я оставил комментарии где скорее всего ошибка: public void SortWithInterval(double intervalA, double...

Как массив wchar_t вывести в MessageBox()
да и вообще любые другие массивы как выводить ... не через указатель случайно ? просто я использую MessageBox() для проверки кода как cout...

1
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8655 / 4490 / 1669
Регистрация: 01.02.2015
Сообщений: 13,898
Записей в блоге: 12
02.05.2022, 19:59
Assembler
1
2
3
4
5
6
7
.data
        szElement       db      ' %d', 0
        szMsgBoxTitleA  db      'Array', 0
        iArray          dd      1, 2, 3, 4, 5, 6, -7, -8, -9, -10
        iSizeArray      dd      ($-iArray)/4
.data?
        Buffer          db      1024 dup(?)
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Print   proc    uses    eax ebx ecx esi         iSize:dword, lpArray:dword
        mov     esi,    [lpArray]
        mov     ecx,    [iSize]
        lea     edi,    [Buffer]
        @@for:
                lodsd
                push    ecx
                push    esi
                push    edi
                invoke  wsprintf, edi, ADDR szElement, eax
                pop     edi
                pop     esi
                pop     ecx
                add     edi,    eax
        loop    @@for
 
        invoke  MessageBox, 0h, ADDR Buffer, ADDR szMsgBoxTitleA, 0h
 
        ret
Print   endp
Вызывать
Assembler
1
        invoke  Print,  [iSizeArray], ADDR iArray
Добавлено через 1 минуту
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
;сумма элементов массива.
;вывод суммы и самих элементов при помощи MessageBox
;самое вкусное - получение единой строки с перечислением элементов массива
.486
.model flat, stdcall
option casemap :none
 
        include \masm32\include\windows.inc
 
        include \masm32\include\user32.inc
        include \masm32\include\kernel32.inc
        include \masm32\include\masm32.inc
 
        includelib \masm32\lib\user32.lib
        includelib \masm32\lib\kernel32.lib
        includelib \masm32\lib\masm32.lib
.data
        szSumma         db      'Summa = %d', 0
        szElement       db      ' %d', 0
        szMsgBoxTitleS  db      'Summa', 0
        szMsgBoxTitleA  db      'Array', 0
        iArray          db      1, 2, 3, 4, 5, 6, -7, -8, -9, -10
        iSizeArray      dd      $-iArray
.data?
        Buffer          db      1024 dup(?)
.code
 
Summa   proc    uses    eax ebx ecx esi         iSize:dword, lpArray:dword
        mov     esi,    [lpArray]
        mov     ecx,    [iSize]
        xor     ebx,    ebx
        @@for:
                lodsb
                cbw
                cwde
                add     ebx,    eax
        loop    @@for
 
        invoke  wsprintf, ADDR Buffer, ADDR szSumma, ebx
        invoke  MessageBox, 0h, ADDR Buffer, ADDR szMsgBoxTitleS, 0h
        ret
Summa   endp
 
Print   proc    uses    eax ebx ecx esi         iSize:dword, lpArray:dword
        mov     esi,    [lpArray]
        mov     ecx,    [iSize]
        lea     edi,    [Buffer]
        @@for:
                lodsb
                cbw
                cwde
                push    ecx
                push    esi
                push    edi
                invoke  wsprintf, edi, ADDR szElement, eax
                pop     edi
                pop     esi
                pop     ecx
                add     edi,    eax
        loop    @@for
 
        invoke  MessageBox, 0h, ADDR Buffer, ADDR szMsgBoxTitleA, 0h
 
        ret
Print   endp
 
start   proc
 
        invoke  Summa,  [iSizeArray], ADDR iArray
        invoke  Print,  [iSizeArray], ADDR iArray
 
        ;завершение программы
        invoke  ExitProcess, 0
start   endp
 
end start
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.05.2022, 19:59
Помогаю со студенческими работами здесь

Как вывести ступенчатый массив в MessageBox
Как вывести ступенчатый массив в MessageBox?

Как вывести ступенчатый массив в TextBox и MessageBox?
Как вывести ступенчатый массив в textbox и messagebox? Нижеприведенный код выводит только в строку, совсем сообразить не могу. Заранее...

Вывести MessageBox с паузой
Доброго времени суток, товарищи! Недавно возникла проблемка с выводом MessageBox. Ниже приведен код программы. Программа должна работать...

Как вывести MessageBox
Работаю в VS C++. Создал проект Windows Forms, поместил кнопочку, вопрос: что нужно написать что бы по клику выводился MessageBox?

Заменить символ 'l' на '1' и вывести строку в MessageBox
Я совсем новичок в Ассемблере, но задали лабу, никуда от нее не деться. Имеется строка, которая заносится в регистр esi. Все символы 'l'...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru