Aiwan \ (•◡•) / _bot
#book
AMD64 Architecture Programmer’s Manual Volume 1 Application Programming
Aiwan \ (•◡•) / _bot
#book
AMD64 Architecture Programmer’s Manual Volume 2 System Programming
Aiwan \ (•◡•) / _bot
#book
AMD64 Architecture Programmer’s Manual Volume 3 General Purpose and System Instructions
Aiwan \ (•◡•) / _bot
#book
AMD64 Architecture Programmer’s Manual Volume 4 128-bit and 256 bit media instructions
Aiwan \ (•◡•) / _bot
#book
AMD64 Architecture Programmer’s Manual Volume 5 64-Bit Media and x87 Floating-Point Instructions
Aiwan \ (•◡•) / _bot
#book
Compiler Usage Guidelines for AMD64 Platforms Application Note
Aiwan \ (•◡•) / _bot
#book
Software Optimization Guide for AMD64 Processors
Eugene
🔥
Сейчас будет сложная шутка.
Eugene
Но ссылки, ИМХО, лучше, т.к. эти доки устаревают со временем.
Плюс это не все доки, на сайте больше.
Intel: https://software.intel.com/en-us/articles/intel-sdm
AMD: https://developer.amd.com/resources/developer-guides-manuals/
Eugene
Всё та же ссылка :)
Eugene
Ну и заодно вот это очень полезная страница (как раз по оптимизации):
https://www.agner.org/optimize/
bilka00
bilka00
В свое время отлично все запускал
bilka00
Вот с 64 битным кодом есть заморочки, но в остальном все изи
bilka00
Ну и пожалуй стоит сказать что криптор с мапингом exe плохая идея
bilka00
Хорош тот криптор что вмешивается внутрь исполняемого файла, и работает там. По принципу протекторов
bilka00
bilka00
Ещё надо поиздеваться над кодом, где то динамический его разширововать в момент исполнения, где то замусорить, где то завиртуализировать
R
жесть
R
понятно
Anton
Всем привет
У меня есть задача сложить 2 вектора
Написал примерное решение, но оно почему то не работает
Где может быть ошибка?
;Сорокин
dseg segment para public 'data'
n1 dw 6,2,1,3,1,1
n2 dw 2,1,2,1,4,3
n3 dw 0,0,0,0,0,0
dseg ends
sseg segment para stack 'stack'
db 256 dup (0)
sseg ends
cseg segment para public 'code'
main proc near
assume cs:cseg,ds:dseg,ss:sseg
add bx, n1
add dx, n2
add di, n3
mov cx, 6
push ds
pop es
r:
mov ax, bx
add ax, dx
stosw
add bx, 2
add dx, 2
loop r
mov ax,4C00H
int 21H
main endp
cseg ends
end main
Leon
Обнули регистры перед использованием
Anton
Обнули регистры перед использованием
dseg segment para public 'data'
x dw 6,2,1,3
y dw 2,1,2,1
z dw 0,0,0,0
dseg ends
sseg segment para stack 'stack'
db 256 dup (0)
sseg ends
cseg segment para public 'code'
main proc near
assume cs:cseg,ds:dseg,ss:sseg
start: mov ax,dseg
mov ds,ax
mov es,ax
lea si, x
lea bx,y
lea di,z
mov cx,4
M1: lodsb; получить в регистр AL элемент из массива X
add al,[bx]; сложить с элементом из массива Y
stosb ; отправить сумму в массив Z
inc bx
loop M1
mov ax,4C00H
int 21H
main endp
cseg ends
end main
Anton
А теперь у меня почему то в памяти остается только 3 символа из 6
Anton
работает правильно, но не со всем массивом до конца
Anton
Т.е. в выводе получаю только 8 3 а надо 8 3 3 4
Anton
О, все получилось
Aiwan \ (•◡•) / _bot
а вектор это разве не вещественное XYZ?
Pol
Всем привет. Вопрос по Си, Если работать со строками, то такая запись *buff++ работает быстрее, чем обращение по индексу?
usernameak
с оптимизациями я думаю одинаково
usernameak
Pol
И вообще:
Aiwan \ (•◡•) / _bot
@lame_c
Pol
Pol
usernameak
Pol
Eugene
Eugene
@lame_c
Есть местные чаты: @supapro (для начинающих), @procxx (для профи)
Aiwan \ (•◡•) / _bot
а по си есть?
Eugene
Там вроде один общий. Спроси прямо там, я не помню, давно не общался там.
Aiwan \ (•◡•) / _bot
@lame_c
я просто указал чат по си для начинающих, а не ++
Eugene
Хорошо :)
Eugene
Правда, народа там меньше на порядок. Но тоже почему бы и нет?
Pol
R
думаю чайникам полезно будет
https://www.youtube.com/watch?v=efYneVDdM1E
Aiwan \ (•◡•) / _bot
Запускай вычислятор!
да по айпишнику уже проверил, хочу узнать, признает или нет
bilka00
bilka00
какой нафиг сишный код
електр🟢нік ✙🟠рчбеч ඞ
код вполне сишный
електр🟢нік ✙🟠рчбеч ඞ
а вот автр дилетант
bilka00
Я о том что какие основы реверса начиная из иды и сишного кода
bilka00
где базовый асм
bilka00
Еще и код на питоне забавный
bilka00
какой range когда на вход отдаешь статический массив
bilka00
или как там в питоне его называют
bilka00
for i in list() вроде не зря придумали
електр🟢нік ✙🟠рчбеч ඞ
нe ну там нужен как минимум enumerate()
bilka00
а стоп, ладно. Это я обосрался
bilka00
по классике так сказать
JeisonWi
JeisonWi
И есть аналог для пользователей Emacs - https://github.com/emacsmirror/rmsbolt
JeisonWi
Eugene
Eugene
Ничё не видно :)
На компе, по крайней мере.
JeisonWi
JeisonWi
На телефоне всё ок.
А вот и школьники попёрли...