0 / 0 / 0
Регистрация: 08.12.2019
Сообщений: 3
FASM

Изменить цвет текста, выводимого в консоль

28.10.2020, 11:53. Показов 4273. Ответов 5
Метки fasm (Все метки)

Студворк — интернет-сервис помощи студентам
Как сделать чтобы текст был красным или зел-ый тоесть имя и фамилия

Название: 003bc38c6048e44acc8183b70634c73a_i-319.jpg
Просмотров: 107

Размер: 10.2 Кб

Вот код :

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
format PE console
entry N99481205
include "win32a.inc"
stack 400h
 
section ".code" code readable executable
N99481205:
cinvoke printf, NamePrompt
cinvoke scanf_s, InpFormat, Name, 32
cinvoke printf, FamilyPrompt
cinvoke flushall
cinvoke scanf_s, InpFormat, Family, 32
cinvoke printf, Accost
cinvoke printf, Name
cinvoke putch, 32
cinvoke printf, Family
cinvoke putch, '!'
cinvoke flushall
cinvoke getch
cinvoke exit, NULL
 
section ".data" data readable
NamePrompt db "Введите имя: ", 0
FamilyPrompt db "Введите фамилию: ", 0
Accost db "Привет, ", 0
InpFormat db "%s", 0
 
section ".bss" data readable writeable
Name rd 32
Family rd 64
 
section ".idata" import data readable
library msvcrt, "msvcrt.dll"
import msvcrt, printf, "printf", getch, "_getch",\
scanf_s, "scanf_s", flushall, "_flushall",\
putch, "_putch", exit, "_exit"
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.10.2020, 11:53
Ответы с готовыми решениями:

Изменить цвет выводимого текста
Здравствуйте помогите вывести текст другим цветом и фоном, код под DOS .model tiny .code .286 ORG 100h start: mov ax,3 int...

Изменить цвет выводимого текста
Добрый вечер! Как изменить цвет текста? Использую Code::Blocks и Windows 7 x64. Такой способ не работает: #include<conio.h> ...

Изменить цвет выводимого поля из БД
Здравствуйте! Есть следующий код, выводящий данные из БД. Так вот, я хочу сначала проверить значение, а затем присвоить тексту цвет в...

5
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8647 / 4482 / 1669
Регистрация: 01.02.2015
Сообщений: 13,889
Записей в блоге: 12
28.10.2020, 12:15
Не знаю, сработает ли со средствами msvcrt - используйте функции WinAPI для работы с консолью
http://www.vsokovikov.narod.ru... con_fn.htm
https://docs.microsoft.com/en-... -functions
а именно SetConsoleTextAttribute
Вот какой-то пример для masm32
Assembler
1
2
3
4
5
6
7
8
9
10
hConsoleOutput  HANDLE  ?
hConsoleInput   HANDLE  ?dwColorWhite    dd      FOREGROUND_RED + FOREGROUND_GREEN + FOREGROUND_BLUE
................
        ; получение описателей ввода и вывода консоли
        invoke  GetStdHandle,   STD_INPUT_HANDLE
        mov     [hConsoleInput],  eax
        invoke  GetStdHandle,   STD_OUTPUT_HANDLE
        mov     [hConsoleOutput], eax
.................
invoke  SetConsoleTextAttribute, hConsoleOutput, [dwColorWhite]
Правда, вывод делал при помощи WriteConsole, а не printf.

Попробуйте - может заработает и с msvcrt.
0
0 / 0 / 0
Регистрация: 08.12.2019
Сообщений: 3
28.10.2020, 21:12  [ТС]
Прошлый вопросе не получилось помогите пожалуйста ребята!
Не могу изменить цвет текста на красный тоесть "Hello World"
Если можно напишите в мою код или укажите куда написать буду очень блогодарень!
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
format PE64 GUI 
entry start 
 
section '.text' code readable executable 
 
  start: 
      sub     rsp,8*5         ; reserve stack for API use and make stack dqword aligned 
 
    mov     r9d,0 
    lea     r8,[_caption] 
    lea     rdx,[_message] 
    mov    rcx,0 
    call    [MessageBoxA] 
 
    mov     ecx,eax 
    call    [ExitProcess] 
 
section '.data' data readable writeable 
 
  _caption db 'Win64 assembly program',0 
  _message db 'Hello World!',0
 
section '.idata' import data readable writeable 
 
  dd 0,0,0,RVA kernel_name,RVA kernel_table 
  dd 0,0,0,RVA user_name,RVA user_table 
  dd 0,0,0,0,0 
 
  kernel_table: 
    ExitProcess dq RVA _ExitProcess 
    dq 0 
  user_table: 
    MessageBoxA dq RVA _MessageBoxA 
    dq 0 
 
  kernel_name db 'KERNEL32.DLL',0 
  user_name db 'USER32.DLL',0 
 
  _ExitProcess dw 0 
    db 'ExitProcess',0 
  _MessageBoxA dw 0 
    db 'MessageBoxA',0
Название: bandicam 2020-10-28 23-08-55-191.jpg
Просмотров: 103

Размер: 8.1 Кб
0
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8647 / 4482 / 1669
Регистрация: 01.02.2015
Сообщений: 13,889
Записей в блоге: 12
28.10.2020, 22:35
Покажите, как вы пытались менять цвет.
Ну не мне же набирать минимальный тестовый пример...

Добавлено через 1 час 6 минут
Минимальный тестовый пример вывода цветного текста при помощи WriteConsole и printf из msvcrt
На masm32 - мне так проще, а fasm для меня проблематичен, с трудом им пользуюсь. На 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
.686
.model flat, stdcall
option casemap :none
 
        include \masm32\include\windows.inc
 
        include \masm32\include\user32.inc
        include \masm32\include\kernel32.inc
        include \masm32\include\msvcrt.inc
 
        includelib \masm32\lib\user32.lib
        includelib \masm32\lib\kernel32.lib
        includelib \masm32\lib\msvcrt.lib
 
.const
        dwWhiteOnBlack  dd      FOREGROUND_RED + FOREGROUND_GREEN + FOREGROUND_BLUE + FOREGROUND_INTENSITY
        dwLightGray     dd      FOREGROUND_BLUE + FOREGROUND_GREEN + FOREGROUND_RED
        dwYellowOnBlue  dd      FOREGROUND_GREEN + FOREGROUND_RED + FOREGROUND_INTENSITY +\
                                BACKGROUND_BLUE
        azString        db      "String", 0Dh, 0Ah, 0
.data
 
.data?
        hConsoleOutput  HANDLE  ?
        hConsoleInput   HANDLE  ?
        iTemp           dd      ?
        dwColor         dd      ?
.code
 
print   proc
        ;установка цвета
        invoke  SetConsoleTextAttribute, [hConsoleOutput], [dwColor]
        ;вывод строки
        invoke  WriteConsole, [hConsoleOutput], ADDR azString,\
                LENGTHOF azString - 1, ADDR iTemp, NULL
        ret
print   endp
 
msv     proc
        ;установка цвета
        invoke  SetConsoleTextAttribute, [hConsoleOutput], [dwColor]
        invoke  crt_printf,     ADDR azString
        ret
msv     endp
 
main    proc
        ; получение описателей ввода и вывода консоли
        invoke  GetStdHandle,   STD_INPUT_HANDLE
        mov     hConsoleInput,  eax
        invoke  GetStdHandle,   STD_OUTPUT_HANDLE
        mov     hConsoleOutput, eax
 
        mov     eax,    [dwYellowOnBlue]
        mov     [dwColor],      eax
        call    print
 
        mov     eax,    [dwLightGray]
        mov     [dwColor],      eax
        call    print
 
        mov     eax,    [dwWhiteOnBlack]
        mov     [dwColor],      eax
        call    print
 
        mov     eax,    [dwYellowOnBlue]
        mov     [dwColor],      eax
        call    msv
 
        invoke  ExitProcess, 0
main    endp
 
end     main
0
0 / 0 / 0
Регистрация: 08.12.2019
Сообщений: 3
29.10.2020, 09:49  [ТС]
@ФедосеевПавел я уже и на MASM32 пробовал.Не могу открыть консольный окно.
Console написал = >
ml /c /coff test.asm
link /subsystem:console test.obj
и появилось два файла test.exe , test.obj почему не запускается? тоесть запускается и сразу закрывается почему так происходит?
0
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8647 / 4482 / 1669
Регистрация: 01.02.2015
Сообщений: 13,889
Записей в блоге: 12
29.10.2020, 19:43
В той же консоли наберите и test.

Или в конец программы добавьте вызов _getch (fasm) или crt__getch (masm32)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.10.2020, 19:43
Помогаю со студенческими работами здесь

Изменить размер выводимого текста в текстовом режиме
Мне нужно, чтобы процедурой write(<текст>) выводился текст в 2 или 3 раза больше обычного. В процедуре модуля crt (textmode) я вводил...

Как изменить шрифт текста выводимого в новом окне?
Есть форма которая при отправке генерирует новую html-страницу открываемую в новом окне. Кроме того есть функция, которая по-идее должна...

Изменить цвет строк и цвет текста через одну в listbox
Всем привет! Есть код который изменят стиль и цвет строк и текста в datagridview For intCount As Integer = 1 To...

Консоль: изменить цвет определенного предложения или слова в тексте
как можно изменить цвет определенного предложения или слова в тексте в консоли? Помогите пожалуйста ¤:]

Как изменить цвет /шрифт символов , которые выводятся на консоль ?
Подскажите , пожалуйста


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

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

Новые блоги и статьи
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru