Форум программистов, компьютерный форум, киберфорум
Assembler: Linux
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.63/41: Рейтинг темы: голосов - 41, средняя оценка - 4.63
 Аватар для pcmax
443 / 74 / 7
Регистрация: 29.01.2018
Сообщений: 1,274

Ввод числа с клавиатуры, сравнение его с константой и вывод соответствующей строки

17.08.2018, 18:25. Показов 9538. Ответов 81
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
вобщем ребята те же грабли.

заранее скажу, что пытался все воспроизвести в онлайн ide , только она ошибок не выдает во всех случаях.
тут нужен взгляд человека, который сразу поймет детскую ошибку, вернее не понимание автора того , что он делает.


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
.bss
num:  .space 4
.data
      stroka:
                .ascii " те же грабли \n"
                 .set len, . -stroca
.text 
         .global _start
_start:
          mov $3, %rax
          mov $0, %rbx
          mov $num, %rcx
          mov $4, %rdx
           int $0x80
 
          cmp '8',  (num)
          jg    to
 
          jmp stop
 
         to:
          mov $4, %rax
          mov $1, %rbx
          mov $stroka, %rcx
          mov $len, %rdx
          int $0x80
          jmp stop
 
          stop:
          mov $1, %rax
          int $0x80
не могу разобраться cmp. как правильно написать, операнды, то ли в скобках, то ли в кавычках. то ли без


подскажите
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.08.2018, 18:25
Ответы с готовыми решениями:

Осуществить с помощью ассемблера ввод знакового числа с клавиатуры и его вывод на экран
Осуществить с помощью ассемблера ввод знакового числа с клавиатуры и его вывод на экран в заданных формах представления. Для ввода и вывода...

Как организовать ввод конечного интервала массива с клавиатуры, а не константой?
Здравствуйте, форумчане. Подскажите ламеру, как организовать ввод конечного интервала массива с клавиатуры, а не константой? У меня...

Ввод с клавиатуры строки символов, вывод строки в обратном порядке на принтер
Составить программу для ввода с клавиатуры строки символов "Периферийные устройства ЭВМ" в окно ввода. Записать строку в буфер buf и...

81
 Аватар для pcmax
443 / 74 / 7
Регистрация: 29.01.2018
Сообщений: 1,274
18.08.2018, 17:45  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Mikl___ Посмотреть сообщение
почему нельзя? Можно сравнивать содержимое 8-разрядного регистра
то есть? как это будет выглядеть?
cmp вычитает один операнд из другого и выставляет флаг.

например я ввел с клавы f и g
как это будет работать?
0
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16371 / 7683 / 1080
Регистрация: 11.11.2010
Сообщений: 13,757
18.08.2018, 17:51
в 32-разрядной системе или в 64-разрядной? В gas, nasm?
1
 Аватар для pcmax
443 / 74 / 7
Регистрация: 29.01.2018
Сообщений: 1,274
18.08.2018, 18:00  [ТС]
мне сказали что нет разницы между ассемблерами.

просто например мы будем сравнивать введенные строки. ну а в них содержатся символы. там будут символы даже если я ввел числа.
например я ввел 1 и 5.
1 имеет код 061h. 5 имеет код 065h.
то есть из одного кода cmp вычтет другой, так?
0
18.08.2018, 18:05

Не по теме:

Цитата Сообщение от pcmax Посмотреть сообщение
мне сказали что нет разницы между ассемблерами.
Я сказал, что конвертнуть из одного в другой - дело банальной техники. Хватит врать. Фраза "конвертнуть - дело техники" и "нет разницы между асемблерами" - это две совершенно разные фразы.

0
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16371 / 7683 / 1080
Регистрация: 11.11.2010
Сообщений: 13,757
18.08.2018, 18:09
pcmax,
для начала выучи наизусть таблицу ASCII-символов, без нее никак, всего-то коды 256 символов, код 61h соответствует латинской "а", код 65h соответствует латинской "е".
0
Модератор
2131 / 1000 / 170
Регистрация: 23.07.2018
Сообщений: 3,349
Записей в блоге: 3
18.08.2018, 18:10
pcmax, что напечатает такой код на Паскале:

Pascal
1
writeln ( 'g' < 'f' );
0
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16371 / 7683 / 1080
Регистрация: 11.11.2010
Сообщений: 13,757
18.08.2018, 18:12
Электронный учебник https://www.cyberforum.ru/cgi-bin/latex.cgi?\rightarrow Глава 2. ПРЕДСТАВЛЕНИЕ ДАННЫХ https://www.cyberforum.ru/cgi-bin/latex.cgi?\rightarrow Буквено-цифровые символы
0
Модератор
2131 / 1000 / 170
Регистрация: 23.07.2018
Сообщений: 3,349
Записей в блоге: 3
18.08.2018, 18:24
Цитата Сообщение от Mikl___ Посмотреть сообщение
pcmax,
для начала выучи наизусть таблицу ASCII-символов
А линукс-то на что?!
Bash
1
man 7 ascii
http://manpages.org/ascii/7
0
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16371 / 7683 / 1080
Регистрация: 11.11.2010
Сообщений: 13,757
18.08.2018, 18:28
http://manpages.org/armscii-8/7
politoto,
за одно pcmax еще и кодировку армянских букв выучит
0
 Аватар для pcmax
443 / 74 / 7
Регистрация: 29.01.2018
Сообщений: 1,274
18.08.2018, 18:34  [ТС]
Цитата Сообщение от Mikl___ Посмотреть сообщение
для начала выучи наизусть таблицу ASCII-символов, без нее никак, всего-то коды 256 символов, код 61h соответствует латинской "а", код 65h соответствует латинской "е".
да не суть... пусть будут другие коды, которые соотвествуют 1 и 5.
ассемблер будет вычитать их друг из друга? ну то есть эти коды?

Добавлено через 3 минуты
Цитата Сообщение от mizannny Посмотреть сообщение
Я сказал, что конвертнуть из одного в другой - дело банальной техники. Хватит врать. Фраза "конвертнуть - дело техники" и "нет разницы между асемблерами" - это две совершенно разные фразы.
0
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16371 / 7683 / 1080
Регистрация: 11.11.2010
Сообщений: 13,757
18.08.2018, 18:38
Цитата Сообщение от pcmax Посмотреть сообщение
да не суть...
И так сойдет!

Нет, в том то и дело, что для pcmax нет разницы между gas и nasm, регистрами ebx и ebp, ASCII-кодами "a" и "1", выучи, вызубри разницу в азбучных понятиях, иначе простейшие программки в 5 строк выливаются в непонимание на 10 страницах
Изображения
 
3
 Аватар для pcmax
443 / 74 / 7
Регистрация: 29.01.2018
Сообщений: 1,274
18.08.2018, 18:56  [ТС]
скажите пожалуйста, если Ассебмлер в команде cmp будет вычитать один код знака из другого кода знака, который я ввиду с клавиатуры,
то в чем поблема ?

Assembler
1
2
3
mov eax, '5'
 
cmp eax, '9'
вычтет из кода 0x35 код 0x39

зачем переводить в число будет мне введенные с клавиатуры символы?

Добавлено через 3 минуты
наверное самое главное...
что значит перевести символ в число в Ассемблере?
0
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16371 / 7683 / 1080
Регистрация: 11.11.2010
Сообщений: 13,757
18.08.2018, 18:56
pcmax,
у тебя ASCII-символ. Сколько в нем разрядов? Регистр ЕАХ содержит сколько разрядов? Опять "И так сойдет!"?
1
 Аватар для pcmax
443 / 74 / 7
Регистрация: 29.01.2018
Сообщений: 1,274
18.08.2018, 19:05  [ТС]
скажите, а как Ассемблер видит число и как он видит символ. чем они для него имеют отличия друг от друга?
0
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16371 / 7683 / 1080
Регистрация: 11.11.2010
Сообщений: 13,757
18.08.2018, 19:12
pcmax,
я уже писал, для процессора всё равно, ЧТО внутри регистра или ячейки памяти, символы, числа или команды, он с ними работает как с двоичными числами

Добавлено через 4 минуты
Ты не хочешь ответить на вопрос
Цитата Сообщение от Mikl___ Посмотреть сообщение
у тебя ASCII-символ. Сколько в нем разрядов? Регистр ЕАХ содержит сколько разрядов?
1
 Аватар для pcmax
443 / 74 / 7
Регистрация: 29.01.2018
Сообщений: 1,274
18.08.2018, 19:18  [ТС]
буква или символ наверное 1байт. eax наверное 4байта
0
Модератор
2131 / 1000 / 170
Регистрация: 23.07.2018
Сообщений: 3,349
Записей в блоге: 3
18.08.2018, 19:18
А для Ассемблера буквы в кавычках можно считать другой формой записи чисел:
Assembler
1
  .space '9' - '5'
С точностью до багов синтаксического разбора
1
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16371 / 7683 / 1080
Регистрация: 11.11.2010
Сообщений: 13,757
18.08.2018, 19:23
Цитата Сообщение от pcmax Посмотреть сообщение
буква или символ наверное 1байт. eax наверное 4байта
pcmax,
а почему "НАВЕРНОЕ"? Здесь нужно либо, то, либо другое, либо третье. Попробуй всё же почитать книжки, чтобы не было неуверенности. И почему ты не используешь соответствующие регистры для работы с однобайтовыми числами?
1
 Аватар для pcmax
443 / 74 / 7
Регистрация: 29.01.2018
Сообщений: 1,274
18.08.2018, 19:31  [ТС]
Цитата Сообщение от pcmax Посмотреть сообщение
section .bss
num resb 10
section .data
* * * * * * global _start
_start:
* * * * * * mov eax, 3
* * * * * * mov ebx, 0
* * * * * * mov ecx, num
* * * * * * mov edx, 2
* * * * * * int 80h
mov ebp, num
* * * * * * cmp ebp, '5'
* * * * * * je * *to

jmp stop

to: * * * *mov eax, 4
* * * * * * mov ebx, 1
* * * * * * mov ecx, num
* * * * * * mov edx, 2
* * * * * * int 80h
* * * * * * jmp stop
stop:
* * * * * * mov eax, 1
* * * * * * int 80h
почему тогда не работает?

Добавлено через 2 минуты
Цитата Сообщение от Mikl___ Посмотреть сообщение
а почему "НАВЕРНОЕ"? Здесь нужно либо, то, либо другое, либо третье. Попробуй всё же почитать книжки, чтобы не было неуверенности. И почему ты не используешь соответствующие регистры для работы с однобайтовыми числами?
так было проще. я не думал об этом. просто заносил значение в 32 разрядный регистр.


Вы скажите, в чем Ассемблер видит разницу между числом и символом?

Добавлено через 1 минуту
Цитата Сообщение от Mikl___ Посмотреть сообщение
внутри регистра или ячейки памяти, символы, числа или команды, он с ними работает как с двоичными числами
ах да, извините... вот.

только я теперь вообще запутался.

Добавлено через 1 минуту
зачем тогда переводить строку в число?
1
Модератор
2131 / 1000 / 170
Регистрация: 23.07.2018
Сообщений: 3,349
Записей в блоге: 3
18.08.2018, 19:32
А почему Вы решили, что не работает?
Подготовьте тесты, прогоните.
Если какие-то тесты не проходят, это повод задуматься.

В чём дело? В тестах? В коде? И в тестах, и в коде?
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.08.2018, 19:32
Помогаю со студенческими работами здесь

Ввод с клавиатуры и вывод на экран символа и строки
1. Напишите программу на языке ассемблера, которая: - вводит с клавиатуры произвольный символ; - выводит введен символ на экран; -...

TASM. Ввод числа с клавиатуры и вывод на экран.
Помогите с написание программы. Я ввожу число с клавиатуры и потом его же мне нужно вывести на консоль. Как это сделать? Напишите...

Вывод данных с начала строки, не прерывая ввод с клавиатуры
Добрый день, программисты, подскажите ,пожалуйста, как сделать вывод данных с начала стоки, не прерываю ввод с клавиатуры. то есть ты...

Ввод числа, решение его по формуле, вывод получившегося числа.
Здравствуйте! Только недавно начал изучать Delphi. Не могу понять что за ошибку мне выдает. Помогите пожалуйста. Нужна программа где я...

Ввод текстовой строки с клавиатуры и отображение его в главном окне приложения
Добрые люди кто знает Win32Api помогите c задачей.Буду очень признателен. Программа должна обеспечить: - ввод текстовой строки с...


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

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
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 . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru