[Ответить в тред] Ответить в тред

02/12/16 - Конкурс визуальных новелл доски /ruvn/
15/11/16 - **НОВЫЙ ФУНКЦИОНАЛ** - Стикеры
09/10/16 - Открыта доска /int/ - International, давайте расскажем о ней!


Новые доски: /2d/ - Аниме/Беседка • /wwe/ - WorldWide Wrestling Universe • /ch/ - Чатики и конфочки • /int/ - International • /ruvn/ - Российские визуальные новеллы • /math/ - Математика • Создай свою

[Назад][Обновить тред][Вниз][Каталог] [ Автообновление ] 84 | 17 | 16
Назад Вниз Каталог Обновить

Аноним 25/12/16 Вск 23:08:44  142981958  
IMG201612252305[...].jpg (46Кб, 766x210)
Двач, вот он я - дебил.
Надо решить этот пример в ассемблере. Но у меня встал вопрос в третьем действии: я понял, что нихуя не понял, а именно - мне не понятно, как записывать отрицательное число.
Вот рисую эту ебливую табличку с регистрами и нихуя не понимаю, что туда писать. Инвертировать что ли или чтоооааа
Аноним 25/12/16 Вск 23:09:21  142981990
147133024016.jpg (769Кб, 1680x1260)
Бамп
Аноним 25/12/16 Вск 23:09:49  142982041
14713302018.jpg (593Кб, 1680x1260)
2
Аноним 25/12/16 Вск 23:10:21  142982075
ba2aa6ddcf70.jpg (463Кб, 1000x563)
Ради бога прошу умоляю
3
Аноним 25/12/16 Вск 23:11:00  142982124
14713302379.jpg (711Кб, 1680x1260)
4
Аноним 25/12/16 Вск 23:11:22  142982145
14s.jpg (142Кб, 990x660)
5
Аноним 25/12/16 Вск 23:12:06  142982213
0108a6990e5cc44[...].jpg (450Кб, 700x1205)
6
Аноним 25/12/16 Вск 23:12:39  142982255
1479478343.jpg (124Кб, 800x659)
7
Аноним 25/12/16 Вск 23:13:07  142982286
ophelia02.jpg (174Кб, 700x560)
8
Аноним 25/12/16 Вск 23:13:36  142982323
b186abe457f6.jpg (46Кб, 345x699)
9
Аноним 25/12/16 Вск 23:13:52  142982343
da993433595b6de[...].jpg (17Кб, 236x395)
А
Аноним 25/12/16 Вск 23:14:19  142982370
KZl7N7IxMwg.jpg (86Кб, 604x453)
В
Аноним 25/12/16 Вск 23:14:58  142982418
06574611b56a06o[...].jpg (401Кб, 488x728)
С
Аноним 25/12/16 Вск 23:16:30  142982528
>>142981958 (OP)
Емнип, знак отрицательного числа хранится в регистре флагов. Чекай его и прыгай куда надо.
Аноним 25/12/16 Вск 23:17:16  142982579
если плюс - прямой код
если нет - дополнительный код
складывай, макака
Аноним 25/12/16 Вск 23:18:45  142982678
Нахуя тебе отрицательное число, поехавший?
11x2 в ax
6x4 в bx
sub ax, bx
ну или что-то подобное
Аноним 25/12/16 Вск 23:19:02  142982698
>>142982528
Т.е, там в единичку один флаг обращается, если результат операции получился отрицательным.
Аноним 25/12/16 Вск 23:20:35  142982790
>>142982698
Старший бит числа - знак. 0 - положительное число, 1 - отрицательное
Аноним 25/12/16 Вск 23:21:11  142982842
И да, почаще пользуйся стеками и делай операции в нудных регистрах. Код получается короче. Хотя какая нахуй разница, 21 век блядь.
Аноним 25/12/16 Вск 23:22:22  142982932
>>142982790
Это теория информатики. Микропроцессор немного по другому устроен.
Аноним 25/12/16 Вск 23:22:37  142982955
>>142982842
21 век, пора начинать пользоваться SSE и AVX (для вычисления выражений на уровне 5 класса).
Аноним 25/12/16 Вск 23:24:24  142983083
>>142982955
Только студентов нужно обучить основному принципу работы микропроцессоров. Если им сразу пустить тему про конвейерные вычисления итогдалия, то они охуеют. Я сам бы охуел, будучи студентом. А так на примере доса всё понятно и просто.
Аноним 25/12/16 Вск 23:25:35  142983179
>>142982932
Ну ка, ну ка. С этого места по подробней.
Аноним 25/12/16 Вск 23:27:48  142983366
>>142981958 (OP)
Каждое действие - умноженик, деление, сложение и вычитание пиши в отдельной подпрограмме. Исходные данные засовывай в стек. Туда же толкай и результат операций, положительный или отрицательный, если флагом не хочешь пользовпться. Будет топорно, но поймёшь суть и станет проще.
Аноним 25/12/16 Вск 23:29:14  142983468
>>142981958 (OP)
NEG
Аноним 25/12/16 Вск 23:29:25  142983482
>>142983083
У нас был один семестр устройства ЭВМ и параллельно ассемблер. А потом сразу конвейеры и параллельное. Правда про векторные расширения почти ничего и не было в итоге, сам всё изучал.
Аноним 25/12/16 Вск 23:29:40  142983508
>>142983179
Обратный код.
Аноним 25/12/16 Вск 23:29:53  142983528
>>142981958 (OP)

Мимо быдло-пистонист. на https://learn.javascript.ru/bitwise-operators
вот такую шутку видел, может поможет, я хз. В эти асм не тыкался



Двоичный вид числа, обратного данному (например, 5 и -5) получается путём обращения всех битов с прибавлением 1.

То есть, нули заменяются на единицы, единицы – на нули и к числу прибавляется 1. Получается внутреннее представление того же числа, но со знаком минус.
Аноним 25/12/16 Вск 23:32:22  142983728
>>142983528
В асме вроде без последнего шага. Просто инверсия.
Аноним 25/12/16 Вск 23:36:13  142984007
>>142983468
двачую этого
Положи число в регистр и сделай от него NEG. Там будет отрицательное
Аноним 25/12/16 Вск 23:36:19  142984015
IMG201612020148[...].jpg (110Кб, 600x944)

>>142982678
Ну, и что в итоге получается? Нам нужно писать эту ебанутую таблицу с регистрами в тетради блчть, я не знаю, что туда написать
>>142982528
Про флаги я благополучно забыл и даже не знал
Аноним 25/12/16 Вск 23:38:56  142984212
>>142981958 (OP)
MOV EAX, -1
Хули думать то. Или вы прямо в двоичном коде делаете? Тогда инвертируешь число и прибавляешь один.
Аноним 25/12/16 Вск 23:39:53  142984287
1479326795.jpg (53Кб, 545x747)
>>142983468
>>142984007
Так и сделаю. Счастья вам, здоровья, денег побольше
Аноним 25/12/16 Вск 23:42:18  142984465
>>142984212
Что такое
>еах
?
Аноним 25/12/16 Вск 23:43:18  142984552
>>142984007
в памяти тоже можно
Аноним 25/12/16 Вск 23:43:32  142984569
>>142984465
Это ax, только 32битный. Если ты в эмуляторе доса делаешь, то его нет
Аноним 25/12/16 Вск 23:45:36  142984732
>>142984569
Спасибо <3
Аноним 25/12/16 Вск 23:50:17  142985117
>>142984212
ах ты убогий 32битный вендоблядок

на самом деле вот так надо
movq -$1, %rax
Аноним 25/12/16 Вск 23:52:13  142985315
>>142985117
Это чей синтаксис.
Аноним 25/12/16 Вск 23:55:34  142985587
>>142984015
Господи, ты правда такой аутист?
Возьми какой-нибудь тасм, возьми дебаггер к нему.
Напиши вычитание числа из нуля и посмотри в дебаггере, что там получится в регистре.
Результат скорее всего будет записан в 16-ричном виде, берёшь, превращаешь его в двоичный и смотришь, как выглядит число. Это должна быть инверсия с добавлением единицы. И ещё есть SF флаг.
>>142984569
В досбоксе есть так-то, если это тасм, то в коде надо указать, что это набор команд для 386 процессора.
Аноним 26/12/16 Пнд 00:02:29  142986085
>>142985587
Я правда аутист. За почти полгода обучения я тупо заучил команды асм и всё, слова "сом" и "ехе" делают мои ладошки потными, а анус уже, чем когда бы то ни было
Аноним 26/12/16 Пнд 00:03:08  142986134
Я даже пытаюсь делать задания без пеки
Аноним 26/12/16 Пнд 00:06:29  142986377
>>142986085
А разве для ассемблера нужно что-то ещё, кроме как заучить команды? Т.е. если ты знаешь, какая команда что делает, это уже фактически почти всё, что нужно, остаётся выучить основные флаги и примерно представлять, что такое сегменты. Синтаксис каждого отдельного асма наизусть учить необязательно, это всё чисто формальная хуйня, которая сама выучится если писать на ней.
Аноним 26/12/16 Пнд 00:08:01  142986483
>>142986377
А для чего нужны флаги и сегменты?
Аноним 26/12/16 Пнд 00:10:07  142986631
>>142986483
Флаги, чтобы всё работало, сегменты, чтобы хранить в них данные или код.
Аноним 26/12/16 Пнд 00:10:11  142986633
Точнее, для чего это нужно знать. Я именно поэтому не учу ничего, кроме команд. Потому что знание команд это основа тк без команд и язык становится ничем, а вот такие его составляющие мне совсем не понятны
Аноним 26/12/16 Пнд 00:13:03  142986857
>>142986633
Флагами, например, можно управлять, или считывать с них информацию. С сегментами ты так или иначе сталкиваешься, когда описываешь переменные в файле исходного кода, когда пишешь набор команд твоей программы и т.д.
Аноним 26/12/16 Пнд 00:20:25  142987377
>>142983528
>получается путём обращения всех битов с прибавлением 1.

вот этого плюсую
должно прокатить
Аноним 26/12/16 Пнд 00:21:40  142987469
Оп
>>142981958 (OP)

Тебе что ль прогу нужно написать на асм?
Mov eax,11
Shl eax,1
Mov ebx,6
Shl ebx,2
Sub eax,ebx
Mov ebx,15
Sub ebx,7
Cdq
Idiv ebx
И т.п?

Аноним 26/12/16 Пнд 00:24:07  142987649
>>142987469
>Shl eax,1
СУПЕР ОПТИМИЗИРОВАННОЕ УМНОЖЕНИЕ
Аноним 26/12/16 Пнд 00:24:25  142987667
>>142986857
Какую информацию?
Аноним 26/12/16 Пнд 00:25:22  142987754
>>142987667
Которую флаги в себе несут, очевидно же.
Аноним 26/12/16 Пнд 00:28:46  142987987
>>142987667
Например, есть флаг и том, что было переполнение в арифметической операции. Логические операции на самом деле проверяют состояние флагов sf и zf(знак и ноль). Много чего еще. Они или зависят от результата или влияют на результат операций.
Аноним 26/12/16 Пнд 00:29:59  142988111
ZF
Аноним 26/12/16 Пнд 00:30:40  142988162
>>142987649
Ну а почему бы и нет, выполняется ведь быстрее mul.
Аноним 26/12/16 Пнд 00:30:43  142988168
>>142988111
Он будет равен 0
Аноним 26/12/16 Пнд 00:31:42  142988256
>>142987469
Ты скажи
Нахуя мне
Сшл
Если есть кошерный мул, который и нужно езать тут?
И какой еще Еах?
>>142987987
Можно я буду твоим рабом, только отвечай на каждый мой вопрос
Аноним 26/12/16 Пнд 00:32:15  142988304
>>142988168
Тогда есть еще OF флаг.
Аноним 26/12/16 Пнд 00:33:37  142988413
>>142988256
>Можно я буду твоим рабом
С мобилы пощу, так что только если слишком сложный прикол будет.
Аноним 26/12/16 Пнд 00:33:59  142988434
>>142988256
Если ты нихуя не шаришь и препод будет ебать во все щели, то лучше ничего не трогай и пиши мул. А вообще сдвиг работает быстрее, чем непосредственно умножение или деление.
Аноним 26/12/16 Пнд 00:33:59  142988436
>>142988256
Да нинахуя. Это аналог a << 1 в си. Будет быстрее на процессорах 40-х годов.
Аноним 26/12/16 Пнд 00:34:49  142988501
>>142981958 (OP)
Почему в рашке язык для написания малвари изучают по говнозадачкам на арифметику?
Аноним 26/12/16 Пнд 00:35:35  142988556
>>142988501
А как надо?
Аноним 26/12/16 Пнд 00:36:04  142988587
>>142988256
Shl быстрее mul.
Eax 32б регистр.
И да, соглашусь с мсье выше, если препод как мой ебет мозги по асму - используй свой мул.
Аноним 26/12/16 Пнд 00:36:20  142988607
>>142988413
Я мог бы подставлять тебе свой зад когда и где угодно
Аноним 26/12/16 Пнд 00:36:52  142988647
>>142988587
В че он быстрее? Мне главное правильно составить
Аноним 26/12/16 Пнд 00:37:00  142988658
>>142988556
Писать криптор или рат бэк коннект. Там просто функи дергаешь и все.
Аноним 26/12/16 Пнд 00:37:24  142988694
>>142988501
Потому что это основа понимания. Процессоры изначально по своей сути калькуляторы, и языки несут в себе математику, потому что решались на языках соответственные задачи. А потом уже костылями прикручивались всякие интерфейсы.
Аноним 26/12/16 Пнд 00:37:32  142988702
>>142988501
Насколько нужно быть долбоебом, чтобы подумать, что это задача на арифметику.
Аноним 26/12/16 Пнд 00:37:46  142988722
>>142988647
Тактов меньше на 2-3 делает. В случае жесткой оптимизации пойдет, но сейчас смысла нету. Больше для выебона.
Аноним 26/12/16 Пнд 00:39:09  142988809
Как плохо без ЕОТочки.
Аноним 26/12/16 Пнд 00:40:35  142988915
>>142988647
Вы на информатике не проходили методы умножения? Процессор примерно такими же методами пользуется. И они охуенно громоздкие по сравнению со побитовым сдвигом, который является практически элементарной операцией.
Аноним 26/12/16 Пнд 00:42:39  142989041
>>142988647
0010 = 2
0100 = 4

0010 << 1 ака сдвинуть крайний бит на один влево.
0010 << = 0100
Аноним 26/12/16 Пнд 00:44:12  142989131
00-42-18-img02.png (33Кб, 400x300)
>>142988647
Вот кстати наглядное применение shl. Раньше сам не понимал как это работает , потом как препод показал это _ аж шишка встала
Аноним 26/12/16 Пнд 00:45:18  142989207
1478726584.jpg (59Кб, 640x640)
>>142988915
Мдям, видимо, лучше было б если я пошёл учиться на повара
Аноним 26/12/16 Пнд 00:46:15  142989269
>>142989131
Вот если б я не знал, что оно делает, нихуя бы с картинки не понял. Даже просто из названия больше понятно.
Аноним 26/12/16 Пнд 00:47:39  142989373
>>142989207
Тут ничего сложного нет, всю эту хуйню можно за неделю изучить до полного понимания, желательно конечно, чтобы кто-то понимающий объяснял, в книжках не всегда понятно пишут.
Аноним 26/12/16 Пнд 00:48:45  142989440
>>142989207
Для сравнительно эффективного умножения достаточно сложения и сдвига.
Аноним 26/12/16 Пнд 00:54:12  142989762
Нафиг тебе какой-то ассемблер? Если калькулятора под рукой нет, вбей в Excel. Только скобки правильно расставь.
Аноним 26/12/16 Пнд 00:54:51  142989799
>>142989131
Я знаю, что он делает. Но мне жтот способ почему-то не кажется удобным.
Просто ептубля вот есть умножение и есть смещение. Если надо умножать - умножаешь, надо смещать - смещаешь.
Зочим ети сложносьти
Аноним 26/12/16 Пнд 00:57:42  142989932
>>142989799
Когда ты в голове число умножаешь на 10, ты просто добавляешь ноль справа, т.е. осуществляешь сдвиг на разряд.
С двоичным основанием всё так же интуитивно.
Аноним 26/12/16 Пнд 00:59:19  142990042
>>142989762
>>142988702
Аноним 26/12/16 Пнд 00:59:32  142990057
>>142989932
Но ведь умножение...
Аноним 26/12/16 Пнд 00:59:51  142990081
>>142989799

Если вдруг из тебя получится йоба-погроммист - этот способ умножения в степени x^2 (shl) или деления x^2(shr) поможет тебе сэкономить время на выполнения кода и пару байт\бит
Аноним 26/12/16 Пнд 01:02:29  142990236
>>142989799
В таком простом примере умножная с помощью сдвига, можно ещё упростить себе работу, исключив работу с лишними регистрами. И процессору проще и тебе меньше писать, код проще.

[Назад][Обновить тред][Вверх][Каталог] [Реквест разбана] [Подписаться на тред] [ ] 84 | 17 | 16
Назад Вверх Каталог Обновить

Топ тредов
Избранное