игра - угадай число, на ассемблере gas x86_64

Модератор: Модераторы разделов

Аватара пользователя
devilr
Сообщения: 3686
ОС: Mandriva => Gentoo (~amd64)

Re: игра - угадай число, на ассемблере gas x86_64

Сообщение devilr »

igor@igor писал:
09.03.2023 07:44
Так сишка проще, чем ассемблер.
С чего вдруг? Assemler проще даже Basic, не говоря уж о C. Непонятный, ведь не означает - сложный! :)
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Эхо разума
Спасибо сказали:
Аватара пользователя
olecya
Сообщения: 903
ОС: debian, fedora (i3-wm)

Re: игра - угадай число, на ассемблере gas x86_64

Сообщение olecya »

yoricI писал:
09.03.2023 10:01
Этак от кабеля останутся одни обрезки))
Я сама так чинила переноску. Не в лапшу ее конечно порубала, а сделала всего два реза. Одна скрутка получилась на переноске. Выкинула 1.4 часть в которой было повреждение. Ну не было в реальной жизни именно в тот момент под рукой специального прибора))
Спасибо сказали:
Аватара пользователя
yoricI
Сообщения: 2599
ОС: gentoo fluxbox

Re: игра - угадай число, на ассемблере gas x86_64

Сообщение yoricI »

olecya писала:
09.03.2023 10:29
Я сама так чинила переноску.
Для таких мелочей, существует метод наружного осмотра с переламыванием кабеля, по жёсткости найти подозрительное место. А также при переламывании тестером (или даже лампочкой от розетки). Или иголки под изоляцию (для прозвонки). Учитесь, студенты))
Спасибо сказали:
Аватара пользователя
devilr
Сообщения: 3686
ОС: Mandriva => Gentoo (~amd64)

Re: игра - угадай число, на ассемблере gas x86_64

Сообщение devilr »

yoricI писал:
09.03.2023 10:49
Для таких мелочей, существует
Если женщина умеет чинить переноску (даже таким способом) - честь ей и хвала!
А способы они разные бывают - я, например, в своё время просто подключал катушку от реле к усилителю НЧ и проводил ею вдоль кабеля. Где звук изменился - там и обрыв. Естественно, что измерений надо было делать два.
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Эхо разума
Спасибо сказали:
Аватара пользователя
yoricI
Сообщения: 2599
ОС: gentoo fluxbox

Re: игра - угадай число, на ассемблере gas x86_64

Сообщение yoricI »

Так ещё лучше научим)) Неинвазивным способом.
devilr писал:
09.03.2023 11:10
катушку от реле к усилителю НЧ и проводил ею вдоль кабеля. Где звук изменился - там и обрыв
Это уже и есть один из спецприборов))
Спасибо сказали:
Аватара пользователя
devilr
Сообщения: 3686
ОС: Mandriva => Gentoo (~amd64)

Re: игра - угадай число, на ассемблере gas x86_64

Сообщение devilr »

yoricI писал:
09.03.2023 11:25
один из спецприборов
Это называется - из спичек и желудей. У меня и в мыслях не было назвать это спецприбором. :D
Если уж учить, то чему то более современному.
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Эхо разума
Спасибо сказали:
Аватара пользователя
olecya
Сообщения: 903
ОС: debian, fedora (i3-wm)

Re: игра - угадай число, на ассемблере gas x86_64

Сообщение olecya »

Не стала добавлять командные аргументы. Это конечно было бы элементарно реализовать, но я посчитала что будет лучше уже собирать с нужным значением и число попыток должно выводиться в приглашении. Сам запуск должен быть элементарным. Установила рациональные границы в Makefile 5-9. Другие значения будут вызывать остановку с пояснениями при сборке.
Обновить:

Код: Выделить всё

cd guess
make clean
git pull origin master
Собрать с лимитом попыток 7:

Код: Выделить всё

make T=7
Так же одиночная команда make продолжает собирать игру с дефолтным числом попыток - 6. При пересборке обязательно необходимо очистить рабочую директорию: make clean. Проверила работу зеркалирования. При push на codeberg.org все залилось и на git.org.ru. Красота!
Спасибо сказали:
igor@igor
Сообщения: 1424
ОС: Debian GNU/Linux, wheezy-amd64

Re: игра - угадай число, на ассемблере gas x86_64

Сообщение igor@igor »

devilr писал:
09.03.2023 10:04
С чего вдруг? Assemler проще даже Basic, не говоря уж о C. Непонятный, ведь не означает - сложный! :)
Логично!
Добавлено (19:44):
olecya писала:
09.03.2023 10:29
Я сама так чинила переноску. Не в лапшу ее конечно порубала, а сделала всего два реза. Одна скрутка получилась на переноске. Выкинула 1.4 часть в которой было повреждение. Ну не было в реальной жизни именно в тот момент под рукой специального прибора))
Ну и правильно! :)
Нечего всякими спец. приборами проверять..! Это всё от лукавого! (
...
Добавлено (19:53):
yoricI писал:
09.03.2023 10:49
Для таких мелочей, существует метод наружного осмотра с переламыванием кабеля, по жёсткости найти подозрительное место. А также при переламывании тестером (или даже лампочкой от розетки). Или иголки под изоляцию (для прозвонки). Учитесь, студенты))
Так не интересно!(
...
Добавлено (20:00):
devilr писал:
09.03.2023 11:10
Если женщина умеет чинить переноску (даже таким способом) - честь ей и хвала!
Ещё какая честь и хвала!
Добавлено (20:06):
devilr писал:
09.03.2023 11:38
Если уж учить, то чему то более современному.
Чему? Если не секрет.
Добавлено (20:10):
olecya писала:
09.03.2023 13:37
Не стала добавлять командные аргументы. Это конечно было бы элементарно реализовать, но я посчитала что будет лучше уже собирать с нужным значением и число попыток должно выводиться в приглашении. Сам запуск должен быть элементарным. Установила рациональные границы в Makefile 5-9. Другие значения будут вызывать остановку с пояснениями при сборке.
Нужно будет потестировать...
Добавлено (20:49):
Всё играю!
Класс!
:)
А сетевая версия будет?
:)
Спасибо сказали:
igor@igor
Сообщения: 1424
ОС: Debian GNU/Linux, wheezy-amd64

Re: игра - угадай число, на ассемблере gas x86_64

Сообщение igor@igor »

По самому трушному! :)
Offtopic
Да простит меня мисс! :)
fbcs.png
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Спасибо сказали:
igor@igor
Сообщения: 1424
ОС: Debian GNU/Linux, wheezy-amd64

Re: игра - угадай число, на ассемблере gas x86_64

Сообщение igor@igor »

Offtopic
Теперь в этой игрухе почти не нужно "Вангавать"! :)
Спасибо сказали:
Акаролибр
Сообщения: 104

Re: игра - угадай число, на ассемблере gas x86_64

Сообщение Акаролибр »

Программу нельзя использовать из файла скрипта, потому что программа не возвращает разумный код возврата. Угадал пользователь или нет - вызывающий скрипт не узна́ет.
Спасибо сказали:
Аватара пользователя
olecya
Сообщения: 903
ОС: debian, fedora (i3-wm)

Re: игра - угадай число, на ассемблере gas x86_64

Сообщение olecya »

Акаролибр
Ну есть такое. Исправить можно, но нужно ли? Код возврата случайное число генерируемое программой, то-есть то которое мы пытаемся угадать. Это конечно не правильно, но подсмотреть по завершению echo $? думаю полезней. Ну можно конечно написать отдельный модуль по переводу цифрового значения в ascii строку (прецедент есть в файле scan.s перевод из ascii в int при вводе) и выводить ее открытым текстом по завершению программы при неудаче. А код завершения программы соответственно призвать к порядку. Ладно запишу в Issues, а там посмотрим. Спасибо
Спасибо сказали:
Аватара пользователя
yoricI
Сообщения: 2599
ОС: gentoo fluxbox

Re: игра - угадай число, на ассемблере gas x86_64

Сообщение yoricI »

olecya писала:
10.03.2023 16:49
запишу в Issues
А почему не в TODO?
Спасибо сказали:
Аватара пользователя
olecya
Сообщения: 903
ОС: debian, fedora (i3-wm)

Re: игра - угадай число, на ассемблере gas x86_64

Сообщение olecya »

yoricI писал:
10.03.2023 17:17
А почему не в TODO?
Пыталась использовать разные способы, но Bizdelnick показал как использовать встроенные сервисы хостинга. Как бы все включено в общую экосистему.
Spoiler
issues.png
Зашла по ссылочке, посмотрела его задачи (предположила что это камень в мой огород):
Bizdelnick писал:
07.05.2021 01:40
Починил наиболее глупые и очевидные косяки. Вместо TODO наплодил себе задач.
Добавлено (07.05.2021 02:16):
Bizdelnick писал:
04.05.2021 02:30
По идее, может собирать под версию дистрибутива, отличную от той, на которой работает, но это неточно: протестировать я сие пока не успел.
Вспомнил, наконец, что надо бы попробовать. Собрал пакет под xenial i386 (на buster amd64). Собрался.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20999
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: игра - угадай число, на ассемблере gas x86_64

Сообщение Bizdelnick »

olecya писала:
10.03.2023 17:34
предположила что это камень в мой огород
А? Где?
И в мыслях не было.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
igor@igor
Сообщения: 1424
ОС: Debian GNU/Linux, wheezy-amd64

Re: игра - угадай число, на ассемблере gas x86_64

Сообщение igor@igor »

Offtopic
Ниразу не проиграл..! - Класс! :) Если бы я на реальные деньги играл, то озолотился..! :) Нужно плавающий генератор выигрыша реализовать [типа как в "Казино" - игровых автоматах делают] - т.е. уменьшать кол-во попыток выигрыша ... А так без азарта не интересно ((((((((((((((( ... Вот, сколько идей я, Вам мисс, "подкинул" => можно записать в блокнотик / "кору" ГМ..! :)
Что касается азарта: у меня знакомый с первого ВО, каждый день после занятий пару тысяч в Покер - в игровой автомат "просаживал" ..! Мне ещё предлагал: "Пошли пару косарей в Покер сольём..!" Это еще ничего... Вот у моей знакомой, подруга, в начале нулевых всю з/п в "пятачках" оставляла..! И пофигу, что дети голодные!( Муж голодный..!( - Вот где игровая зависимость..!(((((((((((((((((((((((((
Последний раз редактировалось igor@igor 11.03.2023 00:53, всего редактировалось 1 раз.
Спасибо сказали:
Аватара пользователя
olecya
Сообщения: 903
ОС: debian, fedora (i3-wm)

Re: игра - угадай число, на ассемблере gas x86_64

Сообщение olecya »

igor@igor
Нормальное предложение, полностью в тему. Почему оффтоп? Можно обстучать. Не хотелось бы конечно отдельного файла записи прогресса.

Пока закрыла задачу по коду возврата. Удача - 0, Неудача - 1. Вывод загаданного числа при проигрыше.

Код: Выделить всё

cd guess
make clean
git pull origin master
make
./guess
Добавлено (00:38):
igor@igor
Возможно вы перепутали кнопки offtopic и spoiler?
Спасибо сказали:
igor@igor
Сообщения: 1424
ОС: Debian GNU/Linux, wheezy-amd64

Re: игра - угадай число, на ассемблере gas x86_64

Сообщение igor@igor »

olecya писала:
11.03.2023 00:30
Нормальное предложение, полностью в тему. Почему оффтоп? Можно обстучать. Не хотелось бы конечно отдельного файла записи прогресса.
Да я боялся, что на меня модераторы "аркан накинут..!" :) ... В общем, я перестраховался "от греха..!"
...
Добавлено (01:12):
olecya писала:
11.03.2023 00:30
Возможно вы перепутали кнопки offtopic и spoiler?
Да нет же...
Там я ещё про последствия от азарта писал. Покер ладно, а вот "пятачки" - "жесть!"(((((((((((((((((((
Можно с наркозависимостью сравнить!((((((((((((((((((
Добавлено (01:26):
Spoiler
Ниразу не проиграл..! - Класс! :) Если бы я на реальные деньги играл, то озолотился..! :) Нужно плавающий генератор выигрыша реализовать [типа как в "Казино" - игровых автоматах делают] - т.е. уменьшать кол-во попыток выигрыша ... А так без азарта не интересно ((((((((((((((( ... Вот, сколько идей я, Вам мисс, "подкинул" => можно записать в блокнотик / "кору" ГМ..! :)
Действительно. часть сообщения можно в спойлер "завернуть!"
Ещё раз спасибо, Вам, мисс!
Добавлено (01:47):
Следовательно, нужно в новую версию "игрухи" поиграть! :)
Спасибо сказали:
igor@igor
Сообщения: 1424
ОС: Debian GNU/Linux, wheezy-amd64

Re: игра - угадай число, на ассемблере gas x86_64

Сообщение igor@igor »

Всё равно, просто(
Offtopic
В прошлой версии "игрухи" было 7 попыток. - Мне это "посовую" передачу 90-х напомнило: "Угадай мелодию!" :)
...
Я не смотрел, ибо всякую "попсятину" не слушал и не слушаю! И моя политика партии - "Метал давай!" :)
...
Добавлено (03:51):
Нет, посложнее...
Offtopic
Нужно больше "Вангавать" :)
...
Добавлено (03:57):
!Но, не удержался, и:
s13.png
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Спасибо сказали:
igor@igor
Сообщения: 1424
ОС: Debian GNU/Linux, wheezy-amd64

Re: игра - угадай число, на ассемблере gas x86_64

Сообщение igor@igor »

Offtopic
Мне эта "игруха" напоминает метод двоичного поиска элемента в отсортированном массиве (векторе). Метод деления отрезка пополам. Я же сразу это "увидел". + Теор. Вер-ти.
Вот в эту "игруху" нужно добавить ещё сохранение результатов. (запрос ввода имени ; когда надоело, выходим из игры; лучшие результаты сохраняются в таблицу)
+ Ещё идеи, Вам, мисс!
Спасибо сказали:
Акаролибр
Сообщения: 104

Re: игра - угадай число, на ассемблере gas x86_64

Сообщение Акаролибр »

igor@igor писал:
11.03.2023 05:00
+ Ещё идеи, Вам, мисс!
Да-да. Игруха должна быть многопользовательской, p2p, можно на основе блокчейна. Это если вам идей нехватает.
Спасибо сказали:
igor@igor
Сообщения: 1424
ОС: Debian GNU/Linux, wheezy-amd64

Re: игра - угадай число, на ассемблере gas x86_64

Сообщение igor@igor »

Акаролибр писал:
11.03.2023 05:48
Да-да. Игруха должна быть многопользовательской, p2p, можно на основе блокчейна. Это если вам идей нехватает.
Также музыкальное сопровождение к игре. И самое главное - звуковые сигналы: выигрыша / проигрыша...
...
Добавлено (07:05):
Мои результаты:
Spoiler
s17.png
s35.png
t13.png
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Спасибо сказали:
igor@igor
Сообщения: 1424
ОС: Debian GNU/Linux, wheezy-amd64

Re: игра - угадай число, на ассемблере gas x86_64

Сообщение igor@igor »

Offtopic
Чёрт! Скрипты свои "горят", а я "на игруху подсел!" :) (Вот почему я в карты не играю ... ()
Добавлено (17:51):
А новая версия игры, когда будет?
Спасибо сказали:
Аватара пользователя
olecya
Сообщения: 903
ОС: debian, fedora (i3-wm)

Re: игра - угадай число, на ассемблере gas x86_64

Сообщение olecya »

igor@igor писал:
11.03.2023 17:29
А новая версия игры, когда будет?
Надо в старой многое переделать. Вот например сейчас делаю отдельный модуль по конвертации числа в строку и наоборот. Будут несколько независимых функций которые можно будет использовать в любом месте программы и конвертировать полноценные числа, а не обрубки до 100. Пока есть над чем работать. Придумала хороший алгоритм, тружусь над реализацией. Еще хотелось бы разобраться с Projects Board на хостинге, пока не пойму с чем его едят.
Спасибо сказали:
igor@igor
Сообщения: 1424
ОС: Debian GNU/Linux, wheezy-amd64

Re: игра - угадай число, на ассемблере gas x86_64

Сообщение igor@igor »

olecya писала:
11.03.2023 18:24
Надо в старой многое переделать. Вот например сейчас делаю отдельный модуль по конвертации числа в строку и наоборот. Будут несколько независимых функций которые можно будет использовать в любом месте программы и конвертировать полноценные числа, а не обрубки до 100. Пока есть над чем работать. Придумала хороший алгоритм, тружусь над реализацией. Еще хотелось бы разобраться с Projects Board на хостинге, пока не пойму с чем его едят.
Здорово!
Добавлено (18:47):
Offtopic
Тоже, что ли Ассемблер начать "курить"? Для меня Асма как китайский... Страшно..!
Спасибо сказали:
Аватара пользователя
devilr
Сообщения: 3686
ОС: Mandriva => Gentoo (~amd64)

Re: игра - угадай число, на ассемблере gas x86_64

Сообщение devilr »

igor@igor что вы ассемблера боитесь? Он же простой и прямой, как палка. Это же просто транслятор, там даже оптимизации нет. Разве что строк больше. Может вы сами себе внушили, что он сложный?
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Эхо разума
Спасибо сказали:
igor@igor
Сообщения: 1424
ОС: Debian GNU/Linux, wheezy-amd64

Re: игра - угадай число, на ассемблере gas x86_64

Сообщение igor@igor »

devilr писал:
11.03.2023 19:09
igor@igor что вы ассемблера боитесь? Он же простой и прямой, как палка. Это же просто транслятор, там даже оптимизации нет. Разве что строк больше. Может вы сами себе внушили, что он сложный?
Может я его не "щупал", вот и боюсь( И он кажется мне сложным( Если всё так просто, то нужно "пощупать" ...
...
Добавлено (20:15):
Всё равно, мисс olecya, не для казино "игруха" :)
Я бы в золоте ходил, играя на реальные деньги..! :)
Спасибо сказали:
Аватара пользователя
devilr
Сообщения: 3686
ОС: Mandriva => Gentoo (~amd64)

Re: игра - угадай число, на ассемблере gas x86_64

Сообщение devilr »

Так с дихотомией надо поширше диапазон цифр брать. Например от 0 до 2^32. Угадывать будете явно за бОльшее количество попыток. :)
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Эхо разума
Спасибо сказали:
igor@igor
Сообщения: 1424
ОС: Debian GNU/Linux, wheezy-amd64

Re: игра - угадай число, на ассемблере gas x86_64

Сообщение igor@igor »

devilr писал:
11.03.2023 20:21
Так с дихотомией надо поширше диапазон цифр брать. Например от 0 до 2^32. Угадывать будете явно за бОльшее количество попыток. :)
Да, намного интереснее. Вот ближе к казино. Капитал - бюджет + ставки - ещё одна идея на заметку, Вам мисс. А тут диапазон от 0 до 100 - не интересно(...
...
Добавлено (21:07):
И будет "игруха" рулетку напоминать :)
Тогда уж и по цветам числа разделить :)
Например, "Ставлю всё на 35 черное"! :)
...
Класс!
Вы, в "кору ГМ" идеи записываете мисс..! :)
Спасибо сказали:
Аватара пользователя
olecya
Сообщения: 903
ОС: debian, fedora (i3-wm)

Re: игра - угадай число, на ассемблере gas x86_64

Сообщение olecya »

Вот что получилось.
cat num.s:

Код: Выделить всё

//print number
	.text
	.globl	_start
_start:
	push	%rbp
	mov	%rsp,	%rbp	#формируем стек
	sub	$16,	%rsp

	mov	$12345,	%rdi #выводимое число

	mov	%rdi,	%rax
	mov	$10,	%ebx
	xor	%r8,	%r8	#обнуляем счетчик и по совместительству смещение
	mov	$-38,	%rdx #заранее вычитаем чтобы в цикле + 48 получить 10  - ascii перевод строки
.l0: #в цикле делим число на 10 и частное сравниваем с нулем, к остатку добавляем 48 и помещаем в стек
	dec	%r8
	add	$48,	%rdx	#к каждой цифре в мшинном коде добавляем 48 и получаем символ ascii
	movb	%dl,	(%rbp,%r8)	#записываем один байт в стек со смещением в %r8
	xor	%rdx,	%rdx

	div	%rbx
	cmp	$0,	%rax
	jg	.l0

	add	$48,	%rdx
	dec	%r8
	movb	%dl,	(%rbp,%r8)

        mov     $1,     %eax		#системный вызов write, номер 1 в списке!
        mov     $1,     %edi		#1 аргумент, стандартный вывод
        lea     (%rbp,%r8), %rsi	#2 аргумент, адрес начала строки в стеке
	neg	%r8				#смещение превращаем в длинну строки
        mov     %r8,	%rdx		#3 аргумент к системному вызову, длина строки
        syscall

_exit:	leave				#выходим из программы
	xor	%rdi,	%rdi
	mov	$60,	%eax
	syscall

Shell

$ as num.s -o num.o
$ ld num.o -o num
$ ./num
12345
Этот код уже в игре. Можно сравнить:

Код: Выделить всё

cd guess
make clean
git pull origin master
git diff HEAD~1..
Добавлено (22:07):
Да, по правильному надо было верхушку стека %rsp сместить на 16 байтов во избежание повреждения локальных данных, потому что далее формируются новые стековые фреймы посредством обращения с этого места к системному вызову. Наверное спасает разделительная "красная зона" в архитектуре amd64 размером 128 байт. Подправила.
Добавлено (22:26):
А вообще-то системные вызовы не выполняются в юзерспейс :wacko:
Спасибо сказали: