Форум программистов, компьютерный форум, киберфорум
Assembler: Windows/protected mode
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
0 / 0 / 0
Регистрация: 07.10.2017
Сообщений: 9
MASM

Вывести несколько переменных в разных строках MessageBox

26.03.2020, 12:13. Показов 2796. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день! Написал небольшую программу, которая 5 раз с разными значениями переменных обсчитывает математический пример, в итоге получается 5 элементов:
Assembler
1
2
3
4
5
result[0]
result[4]
result[8]
result[12]
result[16]
которые нужно вывести построчно на экран. Перед выводом элемент переводится в строку. Но больше одного из них у меня не получается вывести, перечитал и переискал много всего. Буду рад конкретному примеру, если возможно. Советовали на мой вопрос использовать wsprintf, но с ним тоже у меня другого результата кроме того, что уже есть, не получилось
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
.386
.model flat,stdcall
option casemap:none
 
include \masm32\include\masm32rt.inc
 
.data
titletext db 'Лаб 5', 0
AnswerTxt db 'The answer is '
AnswerNum db 11 dup(0)
num_a dd 5,-5,-25,25,-5
num_b dd 5,32,3,-5,6
num_c dd 10,2,8,12,4
bracket dd ?
result dd ?,?,?,?,?
 
.code
start:
    mov esi, 5
    mov edi, 0
    .Repeat
        mov eax, -25
        mov ebx, num_a[edi]
        cdq
        idiv ebx
        add eax, num_c[edi]
        mov bracket, eax
        mov eax, num_b[edi]
        mov ebx, num_a[edi]
        cdq
        imul ebx
        sub bracket, eax
        mov eax, num_c[edi]
        mov ebx, num_b[edi]
        cdq
        imul ebx
        mov ebx, 2
        cdq
        idiv ebx
        add eax, 1
        mov ebx, bracket
        cdq
        imul ebx
        mov result[edi], eax
 
        mov ebx, 2
        cdq
        idiv ebx
 
        .IF edx == 0
            mov eax, result[edi]
            mov ebx, 2
            cdq
            idiv ebx
        .ELSE
            mov eax, result[edi]
            mov ebx, 5
            cdq
            imul ebx
        .ENDIF
 
        mov result[edi], eax
        add edi, 4
        dec esi
        .Until Zero?
 
        push offset AnswerNum
        push result[12]
        call dwtoa
        push 0
        push offset titletext
        push offset AnswerTxt
        push 0
        call MessageBox
        call ExitProcess
end start
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.03.2020, 12:13
Ответы с готовыми решениями:

Как три строковых переменных вывести на разных строках?
.... writeln(a); writeln(b); writeln(c); // a,b,c - строки

Вывести значения двух переменных в MessageBox
Как вывести 2 переменные в MessageBox? TCHAR buf = {0}; _stprintf(buf, TEXT("%d"), (rc.right)/2); ...

Метод, возвращающий несколько переменных разных типов
Возможно ли сделать так чтобы метод вернул мне и bool и string и int например? Как это сделать и если можно пример.

2
Эксперт Hardware
Эксперт Hardware
 Аватар для R71MT
6206 / 2441 / 402
Регистрация: 29.07.2014
Сообщений: 3,174
Записей в блоге: 4
26.03.2020, 15:37
Лучший ответ Сообщение было отмечено Bugogo как решение

Решение

Цитата Сообщение от Bugogo Посмотреть сообщение
Советовали на мой вопрос использовать wsprintf
этой функции нужен приёмный буфер и строка со спецификаторами,
внутри которых можешь и вставлять перевод строки 13,10
пример на FASM'e будет такой (выводит значения регистров):

Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
include 'win32ax.inc'
;-------------
.data
title    db  'Лабораторная 5',0
frmt     db  13,10,'Регистр EAX: %08X'
         db  13,10,'Регистр EBX: %08X'
         db  13,10,'Регистр ECX: %08X'
         db  13,10,'Регистр EDX: %08X'
         db  13,10,'Регистр EBP: %08X',0
buff     db  0
;-------------
.code
start:
        invoke  wsprintf,buff,frmt,eax,ebx,ecx,edx,ebp
        invoke  MessageBox,0,buff,title,0
        invoke  ExitProcess,0
.end start
Изображения
 
2
0 / 0 / 0
Регистрация: 07.10.2017
Сообщений: 9
26.03.2020, 16:39  [ТС]
По идее этот код должен работать и в masm, но MessageBox даже не появляется.

Может как-то отдебажить можно? Я просто через MASM32 Editor делаю, на IDE Это мало похоже.

Добавлено через 24 минуты
Получилось, нужно было добавить
Assembler
1
addr
перед
Assembler
1
buff
и
Assembler
1
frmt
Спасибо большое!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.03.2020, 16:39
Помогаю со студенческими работами здесь

Несколько переменных с разных массивов в одном блоке разметки html
Сделал так: <?php $auto = ; $marka = ; foreach($auto as $line) { foreach($marka as $line2) { ?> <div...

Как в элементе управления CListCtrl в разных строках вывести разные иконки?
Код нижеследующий. Результат: во всех строках иконки - одинаковые. Но, по крайней мере, с каждым циклом for дескриптор иконок hIcon...

Системный таймер. Вывести дату и время на экран на разных строках экрана
Вывести дату и время на экран на разных строках экрана. .model small .stack 128h .data den db ' .','$'; mes db ' .','$'; ...

Как вывести несколько переменных в Label
Как вывести WRITELN (' ',X3,' ',X3,' ',X3,' ',X3 ,' ',X3 ,' ',X3 ,' ',X3 ,' ',X3); эти переменные в Label или в другие компоненты ?

Как вывести в название консоли несколько переменных?
Как вывести в название консоли несколько переменных? Что-бы там было ( a = переменная и b = переменная ).


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru