The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Релиз Chrome 80"
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]

. "Релиз Chrome 80" +5 +/
Сообщение от Аноним84701 (ok), 05-Фев-20, 16:29 
>  Знаток
> Хорошо что боишься, потому что "оригинал" расчитываеться не по формуле а по таблице указателей

Хм *смотрит на ник - какой хороший, годный и подходящий для опеннета! И вздыхает: как хорошо, что все таки никто не начал объяснять, на кой черт там сдались таблицы указателей и почему компиляторы об этом не слышали*


% cat arr2.c &&  gcc -S -O2 -m32 -masm=intel -fverbose-asm arr2.c && more arr2.s
int* foo(int x, int y, int z, int val) {
    static int bar [10][10][10] = {0};
    bar[x][y][z] = val;
    return bar;
}

foo:
.LFB0:
        .cfi_startproc
# arr2.c:1: int* foo(int x, int y, int z, int val) {
        mov     eax, DWORD PTR [esp+8]  # y, y
# arr2.c:3:     bar[x][y][z] = val;
        lea     edx, [eax+eax*4]        # tmp90,
        imul    eax, DWORD PTR [esp+4], 100     # tmp92, x,
        lea     eax, [eax+edx*2]        # tmp93,
        mov     edx, DWORD PTR [esp+16] # val, val
        add     eax, DWORD PTR [esp+12] # tmp94, z
        mov     DWORD PTR bar.1848[0+eax*4], edx        # bar, val
# arr2.c:5: }
        mov     eax, OFFSET FLAT:bar.1848       #,
        ret    
        .cfi_endproc


Ответить | Правка | Наверх | Cообщить модератору

Оглавление
Релиз Chrome 80, opennews, 05-Фев-20, 14:20  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру