Хорош
­
Готовое решение всей программы
А если большую букву ввести?
Artur
А если большую букву ввести?
Забыл уточнить , что имеются ввиду только маленькие буквы
Artur
1 word = 4 bytes Если я хочу перевести word в bytes ? Почему я должен 1 word * 4 чтобы получить его в bytes вместо 1 word : 4 ?
Aiwan \ (•◡•) / _bot
1 word = 4 bytes Если я хочу перевести word в bytes ? Почему я должен 1 word * 4 чтобы получить его в bytes вместо 1 word : 4 ?
у тя есть джинсы (1 штук), на них есть 4 кармана (4 штук). как посчитать количество карманов в 1 экземпляре джинс?
Aiwan \ (•◡•) / _bot
даже в этом утверждении у тя ошибка. 1 word = 2 byte
а блин, в мипсах может быть все иначе, срь
Artur
Как правильно перевести число 0x166 в этой команде в десятичный код. Я знаю , что оно занимает 16 bit. Оно равно 0x16600000 или 0х00000166 ?
Stas
@Aiwan ты сломался?
Aiwan \ (•◡•) / _bot
@Aiwan ты сломался?
кажись, не пойму что во что надо перевести
Aiwan \ (•◡•) / _bot
пельмени закипают, тороплюсь
Artur
Второе
Спасибо
Artur
Подскажите , пожалуйста или я говорю верно, что следующая программа - да пройдет компиляцию из-за на основании того , что все команды в колонке Basic переверелись в машинный код успешно. Или этого не достаточно и треубется доказать/поровергнуть основываюсь на другом ?
Artur
kitsu
Разрядность числа не съест старшую четверку?
Anonymous
Я насчитал 9 полубайт)
Artur
Верно?
Artur
Aiwan \ (•◡•) / _bot
давненько такие не проскакивали
Aiwan \ (•◡•) / _bot
че по чем?
­
Какие стрёмные шкуры.
nano
Всем привет. Есть кто шарищий по макросам в fasm? Можно как-то написать аналог макро инструкции short, которая будет перезаписывать данные после ее вызова? Только без match, так как я вызаваю ее внутри макростных условий if
Eugene
Всем привет. Есть кто шарищий по макросам в fasm? Можно как-то написать аналог макро инструкции short, которая будет перезаписывать данные после ее вызова? Только без match, так как я вызаваю ее внутри макростных условий if
Что за инструкция short? Что именно она должна делать? Есть ключевое слово short, которое указывает тип данных (размер относительной ссылки). Макросы fasm не могут возвращать значений, поэтому использование их внутри других конструкций весьма проблематично.
nano
Прошу прощения
nano
Неправильно назвал инструкцию
Eugene
Я делал это лишь в конструкциях типа таких: ; Unwrap one line into multiple lines macro _ [list] { list } ; _ ; Single-line if-then-else macro ifel cond*, true, false { if cond true else false end if } ; ifel и далее: ifel x = 5, <_ <mov ax,bx>,<mov cx,dx>>, <_ <xchg ax,bx>, salc>
nano
Не short, а store
Eugene
Это не инструкция, это директива fasm. Инструкция есть stos (stosb, stosw, stosd).
Eugene
Конкретно что должен делать макрос?
Eugene
И какие параметры ему передаются?
nano
Конкретно что должен делать макрос?
Попробу описать. Вообщем я вызываю макрос внутри другого. Первый выглядит примерно так macro test1 [arg] { if arg = 0 test2 2 else if arg <= $FFFF test2 1 end if } Второй уже так. macro test2 bit { store byte bit at adr1 } Далее где вызывается первый макрос в коде. ;Начало кода adr1: rb 64 test1 $AF test1 $5 test1 $DF45 ;... adr2: rb 64 Пишу по памяти с телефона, поэтому могу ошибиться. Вот я урезал версию моего макроса. Проблема в том, что я не могу перезаписать директивой store по адресу после нее, но до ее вызова могу. Тобишь во втором макросе store byte bit at adr1 сработает, а store byte bit at adr2 нет
nano
Забыл добавить еще, что после каждого store должен идти adr+1 byte но не суть это не важно
Eugene
А почему этот макрос нельзя поместить после метки adr2 и rb?
Eugene
В теории можно сделать ещё и так. Макрос делает не store, а db и потом rb 64-($-test_start)
Eugene
Вообще, в fasm много стрёмных моментов, когда нельзя сделать то, что хочется или что-то работает с нюансом. Если нельзя писать вперёд, значит нельзя. Либо придётся танцевать с бубном и как-то изголяться, но всё равно будет не на 100% так, как хочется.
nano
А почему этот макрос нельзя поместить после метки adr2 и rb?
Потому что там где он вызывается, на месте записываются данные
nano
И мне чисто эстетически нужно эти данные положить в самый конец
nano
Просто мне казалось, что store, раз он работает в самом конце (после компиляции) , то ему должно быть пофиг где какой адрес
nano
Ну я сделал танец с бубном, макросом сделал вывод внутри virtual, а после вторым store в самом конце из него копирнул куда надо
Eugene
Но в конце надо макрос добавлять только.
Eugene
Кто сказал, что в конце? На этапе компиляции.
Хотя я не изучал этот момент, но по логике ты же можешь его в if вставить.
nano
Хотя я не изучал этот момент, но по логике ты же можешь его в if вставить.
Там просто другой макрос, с другими функциями, я оставил оболочку для примера чисто
nano
Кто сказал, что в конце? На этапе компиляции.
Видно не правильно понял документацию. Лан в любом случае разобрался. Пасиб
Matvey
Помогите пожалуйста, пишу лабараторную на ВинАпи и вот задание: На языке Ассемблер написать функцию формирования строки символов, соответствует бинарном представлению 32-х разрядного числа. используя эту функцию, вывести на экран состояние сегментных регистров и регистра флагов. Вообще не могу понять как это реализовать, кто-то может кинуть код как это сделать
­
Дорого
Matvey
Это вводная лаба по ассемблеру))
­
Зачем на программиста тогда пошёл, если вводную лабу сделать не можешь?
Matvey
Это вводная лаба по ассемблеру в курсе системное программирование на WinApi, так то это уже 8 лаба из 10, и предыдущие 7 я сделал на С/С++
Aiwan \ (•◡•) / _bot
или...
Aiwan \ (•◡•) / _bot
не совсем по феншую, но для разбора алгоритма пойдет
Aiwan \ (•◡•) / _bot
спасибо не булькает и в карман не положишь
Aiwan \ (•◡•) / _bot
Спасибо
оно хоть работает у меня/у тебя?
Matvey
Я ещё не проверял
Eugene
Нашёл прикольный ресурс по производительности инструкций х86. Тесты, таблицы, даже книги какие-то. Глубоко пока не изучал, но тут много всего и подробно. https://uops.info/ Вот ещё нечто подобное по теме: http://instlatx64.atw.hu/ Ну и до кучи кину на всякий случай и таблицу Агнера Фога (если у кого нет): http://xk8.ru/agnerinstbl
Eugene
@Aiwan, можешь себе в чат репостнуть, кстати, кому-нибудь пригодится тоже 😉
Eugene
репостни в чат с пометкой book. качать нечего особо, но как инетресурс норм
Там можно скачать таблицы как PDF, как я понял. Ну и книги есть.
Aiwan \ (•◡•) / _bot
Там можно скачать таблицы как PDF, как я понял. Ну и книги есть.
если их 10ки на каждый вид проца, то думаю не стоит засорять. а общая таблица вроде у агнера имеется
Matvey
Еще раз здравствуйте, почитал учебник который сбрасывали + поискал в интернете и все-таки сделал функцию перевода числа в строку, но у меня появился вопрос, теперь мне нужно в эту функцию подать состояния сегментных регистров, как мне получить эти состояния? Я сделал примерно так
Matvey
short int a; __asm { mov AX,CS mov a,AX }
Aiwan \ (•◡•) / _bot
так низя вроде, через стек делай. и если пишешь на асме пиши на асме, а не на си со вставками
Matvey
short int flags; __asm { PUSHF POP AX STC PUSHF POP AX mov flags, AX }
Matvey
Так норм?
Aiwan \ (•◡•) / _bot
Так норм?
работает?
Matvey
работает?
это вывод флагов, с сегментными регистрами не могу понять
nano
Всем привет. Делал как-то два года назад модификацию временной метки на fasm. Мне постоянно не нравилось ее ограничение с ближайшей ступени, в связи с чем в каждой отдельной функции приходилось делать уникальные метки, что не оч удобно. Вообщем решил поделиться тут для fasm-щиков. Вдруг кому тоже будет полезна. Пример: @@:nop ; <---. @@:nop ; <--.| @@:nop ; <-.|| ; ||| jmp @r ; --'|| jmp @r 1; ---'| jmp @r 2; ----' В файле сам макрос с примером на win32 бит. Разобраться не трудно, если будет желание можно перенести и на fasmg #fasm #macro
Aiwan \ (•◡•) / _bot
а чем это не подходит? proc func1 ... .metka: ... endp proc func2 ... .metka: ... endp я про создание уникальных меток
nano
И не всегда все через proc пишут