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

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

17.08.2018, 18:25. Показов 10141. Ответов 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___
16375 / 7687 / 1080
Регистрация: 11.11.2010
Сообщений: 13,768
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___
16375 / 7687 / 1080
Регистрация: 11.11.2010
Сообщений: 13,768
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___
16375 / 7687 / 1080
Регистрация: 11.11.2010
Сообщений: 13,768
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___
16375 / 7687 / 1080
Регистрация: 11.11.2010
Сообщений: 13,768
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___
16375 / 7687 / 1080
Регистрация: 11.11.2010
Сообщений: 13,768
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___
16375 / 7687 / 1080
Регистрация: 11.11.2010
Сообщений: 13,768
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___
16375 / 7687 / 1080
Регистрация: 11.11.2010
Сообщений: 13,768
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___
16375 / 7687 / 1080
Регистрация: 11.11.2010
Сообщений: 13,768
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
Ответ Создать тему
Новые блоги и статьи
Из невошедшего на форум (диалог с ИИ-гугла)
zorxor 29.07.2026
А вот, что интересно, сказал мне ИИ-гугла: Этот текст — эмоциональный пост пользователя под ником zorxor на интернет-форуме (вероятно, посвященном мистике, непознанному или альтернативной науке). . . .
Был праздник вчера, а я и не знал.
kumehtar 28.07.2026
27. 07. 2026г. Intel Core 2 Duo исполнилось 20 лет Новости компьютерного мира и их обсуждение (4) Салют, шампанское, овации! :drink:
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
Hrethgir 27.07.2026
То-есть отклонение такой публикации говорит само за себя, и пусть только возьмут на вооружение после отклонения публикации - это будет чистейшим актом плагиата. Отклонял Хабр. Дословно, отклонённая. . .
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
Очистка реквизитов и табличных частей документа при копировании (вариант 2)
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2. Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru