|
443 / 74 / 7
Регистрация: 29.01.2018
Сообщений: 1,274
|
||||||
Ввод числа с клавиатуры, сравнение его с константой и вывод соответствующей строки17.08.2018, 18:25. Показов 9903. Ответов 81
Метки нет (Все метки)
вобщем ребята те же грабли.
заранее скажу, что пытался все воспроизвести в онлайн ide , только она ошибок не выдает во всех случаях. тут нужен взгляд человека, который сразу поймет детскую ошибку, вернее не понимание автора того , что он делает.
подскажите
0
|
||||||
| 17.08.2018, 18:25 | |
|
Ответы с готовыми решениями:
81
Осуществить с помощью ассемблера ввод знакового числа с клавиатуры и его вывод на экран Как организовать ввод конечного интервала массива с клавиатуры, а не константой? Ввод с клавиатуры строки символов, вывод строки в обратном порядке на принтер |
|
443 / 74 / 7
Регистрация: 29.01.2018
Сообщений: 1,274
|
|||
| 18.08.2018, 19:35 [ТС] | |||
|
не работает. и вот это тоже не работает mizannny
0
|
|||
|
Ушел с форума
16373 / 7685 / 1080
Регистрация: 11.11.2010
Сообщений: 13,759
|
|
| 18.08.2018, 19:36 | |
|
pcmax,
память как у золотой рыбки . Для чего нужен int 80h когда тебе требуется всего лишь сравнение? Вопрос второй - В каких регистрах и в какой последовательности передаются аргументы для вызова системной функции? Вопрос третий для чего подряд используешь je metka1/jmp metka2/metka1: ... хотя достаточно только jne metka2 ?
3
|
|
|
Модератор
|
||
| 18.08.2018, 20:18 | ||
|
Если только для того, чтобы сравнить, равны или не равны, то, возможно, не обязательно переводить в число. Но, с другой стороны, даже если ограничиться только десятичной системой, число 54321 можно записать как "54321", "0054321", "054321". Это разные строчки цифр, обозначающие одно и то же число.
3
|
||
|
443 / 74 / 7
Регистрация: 29.01.2018
Сообщений: 1,274
|
|
| 18.08.2018, 20:22 [ТС] | |
|
в nasm 32 int80h нужен для системных вызовов типа mov eax, 3. я же буду вводить с клавиатуры.
ядро будет искать дискрептор файла в ebx. то есть идет в eax, потом в ebx... ну это для syscall read вроде. два раза использую метку jmp stop потому что Ассемблер будет делать два похода. чтобы не выводилось все на экран подряд надо сделать так, что если je условный переход был совершен, то после того как последовал вывод на экран, пусть сразу прыгнет в выход, то есть в mov eax, 1. но почему ошибки и почему не работает?
0
|
|
|
Ушел с форума
16373 / 7685 / 1080
Регистрация: 11.11.2010
Сообщений: 13,759
|
||||||||||||||
| 19.08.2018, 02:59 | ||||||||||||||
|
pcmax,
ответ на вопрос ответ на вопрос
je metka1/jmp metka2/metka1: ... неправильно, достаточно jne metka2вместо ответов, которые подразумевали, что ты начнешь читать литературу, ты начинаешь нести ахинею
2
|
||||||||||||||
|
6773 / 2741 / 385
Регистрация: 17.02.2013
Сообщений: 4,048
|
||||||||
| 19.08.2018, 09:58 | ||||||||
|
Добавлено через 2 часа 18 минут Вот на Linux-32 на as ввод строки цифр, преобразование ее в число, потом преобразование обратно в строку и вывод :
Чувствую, что местные Песталоцци своими объяснениями создали у тебя на чердаке окончательную кашу. Ну я-же советовал не писать Тс-у ничего сложнее "Мама мыла раму", потому-что проблемы уже тут. Он думает, что два прохода ассемблера происходят в момент исполнения написанной на ассемблере программы. И что он при этом в голове воображает даже страшно себе представить. Вот полученный результат. А надо было сначала разбирать с ним бе-бе и ме-ме. А его раньше времени понесло в самую муть - Linux-ы, 64-разряда, AT&T ассемблеры. В догонку к разговору из другого топика: вот с кем лучше было бы сначала написать com-программу для ms-dos и пройти ее в td.exe и только потом дать ему лезть куда-нибудь еще.
3
|
||||||||
| 19.08.2018, 09:58 | |
|
Если совсем не объяснять, pcmax начинает сам додумывать.
Про проходы никто ему тут не говорил, сам где-то вычитал. Может быть, лучше меньше пытаться объяснять, а больше показывать? А объяснять про то, как pcmax может сам посмотреть своими глазами, а не гадать и выдумывать, когда не понятно.
3
|
|
|
6773 / 2741 / 385
Регистрация: 17.02.2013
Сообщений: 4,048
|
|
| 19.08.2018, 10:22 | |
|
Да, пожалуй. Но пока результат просто удручает. В любом случае нужно говорить как можно проще и все сложности пока обходить, не упоминать про них.
Добавлено через 9 минут Тс-у. Представь, что ты прочитал страницу книги, а потом перечитал ее по новой. Что ты сделал ? Ты совершил два прохода глазами по странице. Точно так и ассемблер. Для него исходный текст программы это как страница книги. Так вот когда он программу компилирует, он прочитывает этот исходник сверху вниз два раза. Вот когда эти два прохода происходят. Но программисту, что написал исходник, нет до этого абсолютно никакого дела. Потому-что какая ему разница что там ассемблер внутри при компиляции делает. Ему важен только сам результат трансляции, сообщения об ошибках, ну может листинг трансляции, но не то, что там у ассемблера внутри. Два прохода трансляции важны только тому кто сам, свой собственный ассемблер писать будет. Это как бы один из моментов теории создания компиляторов и ничего больше. Абсолютно ничего больше.
3
|
|
| 19.08.2018, 10:27 | ||
|
td.exe это отладчик для ms-dos?
И как запустить всё это в его линуксе? Если сам будет возиться с загрузочными секторами, не будет ни линукса, ни ms-dosa А когда всё заработает, будет думать о том, как это там сегменты сдвигаются и складываются. Нужно что-то ещё проще. Компмодель эта самая? ![]() Что посоветуете?
2
|
||
|
443 / 74 / 7
Регистрация: 29.01.2018
Сообщений: 1,274
|
|||
| 19.08.2018, 11:33 [ТС] | |||
|
Добавлено через 4 минуты
0
|
|||
|
Ушел с форума
16373 / 7685 / 1080
Регистрация: 11.11.2010
Сообщений: 13,759
|
|
| 19.08.2018, 11:37 | |
я вообще не понял, что Вы хотели сказать
3
|
|
|
443 / 74 / 7
Регистрация: 29.01.2018
Сообщений: 1,274
|
||
| 19.08.2018, 11:38 [ТС] | ||
|
вобщем надо все забыть и начинать сначала.
0
|
||
| 19.08.2018, 13:29 | |||||||||||
|
pcmax, забывать не надо. Если надо, то, может быть только то, что неправильно помнили.
Почему Вы всё время копируете старый код с опечаткой, и несуществующим на Вашей машине вариантом cmp из первого сообщения? Покажите, пожалуйста, полностью исправленный код, который собирается, работает, но не так, как Вы хотите. 1. Если переводить тяжело, попробуйте проще: ввести 2 англ. буквы подряд, напр
(у нас это h )2. Если хочется сравнивать числа, а не строчки посимвольно, можно не кодить перевод у себя. Раз уж мы в линуксе, можно другой программой выдать на вход вашей программе 4байтовое или 8байтовое число, так, как оно должно быть в памяти. Или самому написать подходящую на любом языке, с которым дружите. Что-то вроде:
1
|
|||||||||||
|
443 / 74 / 7
Регистрация: 29.01.2018
Сообщений: 1,274
|
|
| 19.08.2018, 17:29 [ТС] | |
Сообщение было отмечено Mikl___ как решение
Решение
ребята, я все больше и больше убеждаюсь, что Вы просто ржете надо мной.
вообще когда я задавал вопросы, то они были в пустоту. просто их пропускали , некоторые, кому я их адресовал, в процессе , когда они мне что-то пытались объяснить. вобщем огромное спасибо Вам за помощь. как бы сейчас таких важных вопросов у меня нет. и мучать знатоков Ассемблера глупыми вопросами желания не имею буду читать книжки
1
|
|
|
6773 / 2741 / 385
Регистрация: 17.02.2013
Сообщений: 4,048
|
|||
| 19.08.2018, 23:07 | |||
Сообщение было отмечено Mikl___ как решение
РешениеДобавлено через 12 минут смысл в том, что у тс-а мысль работает на задавать вопросы "что нужно написать чтобы", т.е исходник рассматриается как набор таинственных заклинаний, которые надо запомнить. А при таком подходе нужно сразу бить по рукам и тыкать нос в вопрос "что каждая команда делает". Пока этого не понял, никакого движения дальше. А преобразование строки в число - это-же самый сок на предмет уяснять, что каждая команда делает. Тут тот случай, когда отсылать читать книги - не путь, все равно ведь поймет вкривь и вкось, ибо так было уже. А гоняние кода в полноэкранном отладчике ну самое то, что нужно. Не обязательно масадосовский TD, если подскажете полноэкранный отладчик под Линупс. Только я такого не знаю, поэтому и назвал это направление мутью.
3
|
|||
|
Модератор
|
|||
| 19.08.2018, 23:50 | |||
|
Но это тоже не то. Хочется быстрее и проще.
2
|
|||
| 20.08.2018, 06:31 | |
|
Нужен игровой обучаюший симулятор ARMа. Лучше онлайн, чтобы ни устройства, ни системы ученика не пострадали.
По середине окно память. Можно смотреть и править память в виде букв, чисел разной длины в разных системах и т.д. Слева дизассемблер. Хорошо, если можно тут же править инструкции, но необязательно. Ближние переходы показаны стрелками, дальние ссылками. Бледным цветом фона - разные группы инструкций. Если в дампе те же адреса, в побайтном режиме в памяти показаны границы инструкций с похожей подсветкой. Снизу регистры. Справа можно колонку с заданиями, справочником по инструкциям проца и т.п. Для ленивых в справочнике конструктор инструкций по принципу Scratch. Можно слепить и вытащить инструкцию в дамп или в дизассемблер. За выполнение заданий открываются новые инструкции и регистры. ![]() Достаточно выполнения по 1 инструкции и анимации с возможностью остановки. Хочешь посмотреть как работает инструкция, что она изменяет? Вбивай инструкцию в память сам без всяких ассемблеров и линуксов. Пиши в память и регстры данные для неё. Скажи симулятору выполнить инструкцию и смотри, как она сработала.
3
|
|
|
Модератор
|
||
| 20.08.2018, 09:18 | ||
![]() Я бы добавил ещё возможность отката любых действий. Программка зациклилась, можно её остановить и по шагам разобраться, как так получилось. Или наменял что-то в коде и забыл, что там было раньше. ![]() Возможность отмены снимает нервное напряжение. ![]() Добавлено через 6 минут Для старых компьютеров сейчас много разных симуляторов, в том числе и онлайн. На ARMах прежних лет делали игровые приставки и консоли. Может для них есть что-то подходящее для знакомства с семейством? Современные чипы и платы проще программировать в IDE от производителя, чем самому сооружать симулятор. А для заброшенных устройств энтузиасты могли что-нибудь наваять. Добавлено через 39 минут Если pcmax заходит на форум, скажем с планшета на адроиде с мобильным интернетом, и планшет постоянно не подключен к "лабораторному" компьютеру, то ему намного быстрее скопировать текст из старых сообщений. Скопировать код с компьютера, конечно, тоже не долго, но для этого нужно подключить планшет, скопировать фрагмент кода на флешку планшета. Потом уже в андроиде найти этот файл, в каком-то приложении его открыть и оттуда скопировать и вствить в браузер. На андроиде это не очень удобно. Если бы всё было на одном компьютере, ему бы было проще перетащить текст из окна терминала в сообщение, а не описывать своими словами вывод программы. Не специально же он затягивает процесс!
2
|
||
|
3410 / 1829 / 489
Регистрация: 28.02.2015
Сообщений: 3,696
|
|||
| 21.08.2018, 18:48 | |||
|
Первая миниатюра В краном прямоугольнике регистры CS : 26E0 IP : 0021, если перейти по стрелке, то попадаем в поле команд процессора, и соответствующим им мнемоническим записям ассемблера. 0021адрес 2100код пеарции MOV [ BX+SI],AXмнемоника Т.к. CS и DS имеют одно значение равное 26Е0, то нижнее поле 2 с кучей цветных стрелок направленных на него, показывают на один участок памяти, но в разных ракурсах. Вторая миниатюра Выполняем три команды процессора: 0021 2100 MOV [ BX + SI ],AX 0023 8A162100 MOV DL,[ 0021 ] 0027 A22100 MOV [ 0021 ],AL Цель этих команд показать, что выполняя что-либо меняется все вокруг. 0021 0000 ADD [ BX + SI ],AL 0023 8A162100 MOV DL,[ 0021 ] 0027 A22100 MOV [ 0021 ],AL Записав по адресу 0021 другое значение, мы поменяли саму команду, то как её понимает процессор. Третья миниатюра Выполнив функцию DOS ah=02 | int 21h (вывод на экран символа ASCII с кодом в регистре DL, в Linux нет такого аналога), имеем символ на экране. (там ещё и компиляция показана). Думаю, что Вы начнете понимать, что процессор работает с числами, но все зависит от того как на эти числа смотрит сам процессор. Если это CS : IP - код операции, DS : адрес - число, регистры AX,DX,CX - число, BX, SI, DI, BP - и число и адрес, зависит, в какой команде и как используется этот регистр.
3
|
|||
| 21.08.2018, 18:48 | |
|
Помогаю со студенческими работами здесь
80
TASM. Ввод числа с клавиатуры и вывод на экран. Вывод данных с начала строки, не прерывая ввод с клавиатуры Ввод числа, решение его по формуле, вывод получившегося числа. Ввод текстовой строки с клавиатуры и отображение его в главном окне приложения Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Асинхронный приём данных из COM-порта
Argus19 01.05.2026
Асинхронный приём данных из COM-порта
Купил на aliexpress термопринтер QR701. Он оказался странным. Поключил к Arduino Nano. Был очень удивлён. Наотрез отказывается печатать русские буквы. Чтобы. . .
|
попытка написать игровой сервер на C++
pyirrlicht 29.04.2026
попытка написать игровой сервер на плюсах с открытым бесконечным миром.
возможно получится прикрутить интерпретатор питон для кастомизации игровой логики.
что есть на текущий момент:. . .
|
Контроль уникальности выбранного документа-основания при изменении реквизита
Maks 28.04.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРемонтСпецтехники", разработанного в КА2.
Задача: уведомлять пользователя, если указанная заявка (документ-основание). . .
|
Благородство как наказание
Maks 24.04.2026
У хорошего человека отношения с женщинами всегда складываются трудно. А я человек хороший. Заявляю без тени смущения, потому что гордиться тут нечем. От хорошего человека ждут соответствующего. . .
|
|
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2.
Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
|
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2.
Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом.
В. . .
|
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2.
Задача: отобразить спецтехнику, которая на данный момент находится в ремонте.
Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
|
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
|