Size: a a a

Ассемблер

2021 September 25

RB

Rustem B. in Ассемблер
но всё равно спасибо
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
вам шашечки или ехать (тебе размер кода или скорость)
источник

E

Entusiast in Ассемблер
Ну тут в любом случае скорости кода не будет (постоянный прыжок в макросе, выделение переменной посреди кода - повлияет на промахи в кэше), а уж посимвольно вводить - так вообще.
Так что в любом случае лучше сделать первый вариант

Но ещё лучше, конечно, адекватно выделить переменную подальше от кода, и не выдумывать
источник

RB

Rustem B. in Ассемблер
на размер уже пофиг, наверное (уже 800 байт)
да и скорость не так важна
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
на что повлияент переменная в коде? там только прыжок - безусловный. и выделяется это дело не во время выполнения, а во время загрузки программы в память
источник

E

Entusiast in Ассемблер
Когда код загрузится в кэш, у процессора не будет возможности просто удалить неиспользуемый (пропущенный участок), а место это занимает..
Участки грузятся блоками
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
и сколько составляет память куда это все грузится блооками?
источник

E

Entusiast in Ассемблер
Ну кэш кода (инструкций) у процессоров разный
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
человек сказал что у енего 800 байт уже. поместится?
источник

E

Entusiast in Ассемблер
"Кэш инструкций состоит из 64-байтных блоков, являющихся копией основной памяти, и может подгружать до 16 байтов за такт"
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
а то что говорят что у проца 3 уровня кеша ( 3й уровень типо 6-20Мб), это относится к кешу данных?
источник

E

Entusiast in Ассемблер
Думаешь, у процессора все (или не все) 3 уровня для разных нужд?
источник

RB

Rustem B. in Ассемблер
%macro  writefile 2+ 

       jmp     %%endstr
 %%str:        db      %2
 %%endstr:
       mov     dx,%%str
       mov     cx,%%endstr-%%str
       mov     bx,%1
       mov     ah,0x40
       int     0x21

%endmacro


в доках NASM нашел
тут можно для print переписать

точно как Entusiast написал выше
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
я не думаю, я не знаю. вот поэтому уточняю. выше ты сказал что "кеш интсрукций.... 64 байта", а для чего тогда мегабайтные размеры кеша? какого их предназначение?
источник

E

Entusiast in Ассемблер
Если не поместилось в уровни ниже, тогда определяются в уровень выше

Отклик к ним дольше
источник

RB

Rustem B. in Ассемблер
%macro  writefile 2+ 

       [section .data]

 %%str:        db      %2
 %%endstr:

       __?SECT?__

       mov     dx,%%str
       mov     cx,%%endstr-%%str
       mov     bx,%1
       mov     ah,0x40
       int     0x21

%endmacro


так же в доках более правильный вариант
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
ты про код или данные? или оба сразу?
источник

E

Entusiast in Ассемблер
Оба сразу
источник

E

Entusiast in Ассемблер
Или про код, или про данные
источник

E

Entusiast in Ассемблер
Ну, в общем, лучше писать так. Чтобы потом не размышлять, вместится ли нужный блок кода в один кэш, или нет
источник