Аватар для pcmax
443 / 74 / 7
Регистрация: 29.01.2018
Сообщений: 1,274

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

17.08.2018, 18:25. Показов 9866. Ответов 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___
16373 / 7685 / 1080
Регистрация: 11.11.2010
Сообщений: 13,759
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___
16373 / 7685 / 1080
Регистрация: 11.11.2010
Сообщений: 13,759
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___
16373 / 7685 / 1080
Регистрация: 11.11.2010
Сообщений: 13,759
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___
16373 / 7685 / 1080
Регистрация: 11.11.2010
Сообщений: 13,759
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___
16373 / 7685 / 1080
Регистрация: 11.11.2010
Сообщений: 13,759
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___
16373 / 7685 / 1080
Регистрация: 11.11.2010
Сообщений: 13,759
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___
16373 / 7685 / 1080
Регистрация: 11.11.2010
Сообщений: 13,759
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___
16373 / 7685 / 1080
Регистрация: 11.11.2010
Сообщений: 13,759
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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru