С Новым годом! Форум программистов, компьютерный форум, киберфорум
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
1 / 1 / 1
Регистрация: 22.03.2012
Сообщений: 60

Вывод введенного сообщения работает только для цифр. Исправить код

26.12.2012, 17:17. Показов 1090. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <stdio.h>
 
using namespace std;
 
int main()
{int x;
char* fmt = "%u";
__asm {
 lea eax, x; 
 push eax; 
 push fmt; 
 call scanf; 
 
 push x
 push fmt;
 call printf;
 
}
 
}
при вводе чисел он работает а при вводе букв нет

даже изменение

C++
1
char* fmt = "%s";
не помогает
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.12.2012, 17:17
Ответы с готовыми решениями:

Вывод сообщения на экран: исправить код
Код ASM CSEG segment org 100h start: mov cx, 3 Label_1: mov,ah 9 mov dx, offset privet int 21h

Словари: вывод только значения для введенного ключа
Добрый день,я только начал изучать питон да и в целом программирование,по этому сразу извиняюсь если вопрос ни к месту. Как можно по...

Исправить код: работает только оператор сложения
Как надо исправить код, чтобы можно было выбирать сначала действия с числами и вводить эти числа самому.. А то мне выводит только сложение...

4
Клюг
 Аватар для Charles Kludge
7677 / 3192 / 382
Регистрация: 03.05.2011
Сообщений: 8,380
26.12.2012, 18:04
Цитата Сообщение от RazerVG Посмотреть сообщение
не помогает
И не поможет. Если только "%c" - х же интегер. И после call не забывайте стек очищать.
1
1 / 1 / 1
Регистрация: 22.03.2012
Сообщений: 60
27.12.2012, 09:41  [ТС]
Все равно не помогает может быть X сделать тоже строкой?
А можно сделать вывод в с++ или тоже будут проблемы?

Добавлено через 30 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <stdio.h>
 
using namespace std;
 
int main()
{char* x = "%c";
char* fmt = "%c";
__asm {
 lea eax, x; //заносим адрес переменной x в eax
 push eax;// кладем адрес переменной x в стек
 push fmt; //кладем адрес строки форматирования в стек
 call scanf; //вызываем функцию scanf. Заметьте, что аргументы передаются в обратном порядке
 add esp,8;// убираем аргументы из стека. 4 - размер одного аргумента; 2 - их количество
 
}
printf("%c",x);}
Теперь выводится 1 символ строки ,например пишем asdf выводит только a
Как сделать чтобы всю строку выводил
0
Клюг
 Аватар для Charles Kludge
7677 / 3192 / 382
Регистрация: 03.05.2011
Сообщений: 8,380
27.12.2012, 10:20
printf("%s",x);
Ъ, я вам здесь что, интерактивный талмуд по асму/сю/паскалю?
Учите матчасть, cwerj.
0
1 / 1 / 1
Регистрация: 22.03.2012
Сообщений: 60
27.12.2012, 16:24  [ТС]
Она так вообще не работает ни одного не выводит .

Добавлено через 7 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <stdio.h>
 
using namespace std;
 
int main()
{char* x = "%c";
char* fmt = "%c";
__asm {
 lea eax, x; //заносим адрес переменной x в eax
 push eax;// кладем адрес переменной x в стек
 push fmt; //кладем адрес строки форматирования в стек
 call scanf; //вызываем функцию scanf. Заметьте, что аргументы передаются в обратном порядке
 add esp,8;// убираем аргументы из стека. 4 - размер одного аргумента; 2 - их количество
 
}
printf("%s",x);}
я так понимаю это надо делать так но вообще результат нулевой

Добавлено через 4 часа 36 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{char x;
char* fmt = "%s";
_asm
{
lea eax, x
push eax
push fmt
call scanf
add esp, 30;
 
 
lea eax, x
push eax
push fmt;
call printf;
add esp, 30;
}
return 0;
}
ну вот прога которая вводит и выводит но выдает в конце ошибку

Stack around the variable 'x' was corrupted

Добавлено через 1 час 14 минут
Все нашел ошибку

C++
1
char x[10];
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.12.2012, 16:24
Помогаю со студенческими работами здесь

Вывод сообщения в зависимости от введенного дня недели
Написать программу, которая запрашивает у пользователя номера дня недели и выводит одно из сообщений : &quot;Рабочий день&quot;,...

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

Посчитать сумму цифр в строке (исправить ошибку) + дописать код для суммы чисел
Помогите пожалуйста дописать код: Нужно посчитать сумму чисел в строке. То есть введя : &quot; 1945 year, 05, 09&quot; должно выводить...

Определить возрастную группу в зависимости от введенного возраста. Исправить код
Доброго времени суток, обитатели форума. Не так давно начала изучать C#. Сижу на работе понемногу учусь. Использую визуал студио от...

как исправить код что бы не было сообщения
вот код: copy file D:\table1.dbf to D:\table2.dbf как исправить чтобы не выводилось сообщение: D:table2.dbf already exists,overwite...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 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. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru