|
443 / 74 / 7
Регистрация: 29.01.2018
Сообщений: 1,274
|
||||||
Ввод числа с клавиатуры, сравнение его с константой и вывод соответствующей строки17.08.2018, 18:25. Показов 9534. Ответов 81
Метки нет (Все метки)
вобщем ребята те же грабли.
заранее скажу, что пытался все воспроизвести в онлайн ide , только она ошибок не выдает во всех случаях. тут нужен взгляд человека, который сразу поймет детскую ошибку, вернее не понимание автора того , что он делает.
подскажите
0
|
||||||
| 17.08.2018, 18:25 | |
|
Ответы с готовыми решениями:
81
Осуществить с помощью ассемблера ввод знакового числа с клавиатуры и его вывод на экран Как организовать ввод конечного интервала массива с клавиатуры, а не константой? Ввод с клавиатуры строки символов, вывод строки в обратном порядке на принтер |
|
443 / 74 / 7
Регистрация: 29.01.2018
Сообщений: 1,274
|
|||
| 18.08.2018, 19:35 [ТС] | |||
|
не работает. и вот это тоже не работает mizannny
0
|
|||
|
Ушел с форума
16371 / 7683 / 1080
Регистрация: 11.11.2010
Сообщений: 13,757
|
|
| 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
|
|
|
Ушел с форума
16371 / 7683 / 1080
Регистрация: 11.11.2010
Сообщений: 13,757
|
||||||||||||||
| 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
|
|||
|
Ушел с форума
16371 / 7683 / 1080
Регистрация: 11.11.2010
Сообщений: 13,757
|
|
| 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. Ввод числа с клавиатуры и вывод на экран. Вывод данных с начала строки, не прерывая ввод с клавиатуры Ввод числа, решение его по формуле, вывод получившегося числа. Ввод текстовой строки с клавиатуры и отображение его в главном окне приложения Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
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 .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|