- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
format pe gui 5.0
include 'win32ax.inc'
_title db '1Kbyte window',0
_class db '#32770',0
old_wndproc dd 0
entry $
xor edi,edi
mov ecx,$80000000
mov esi,$400000
mov eax,WS_VISIBLE+WS_OVERLAPPEDWINDOW
invoke CreateWindowEx,edi,_class,edi,eax,ecx,ecx,ecx,ecx,edi,edi,edi,edi
mov ebx,eax
invoke SetWindowLong,ebx,GWL_WNDPROC,wnd_proc
mov [old_wndproc],eax
invoke SendMessage,ebx,WM_INITDIALOG,edi,edi
sub esp,32
mov ebx,esp
msg_loop:
invoke GetMessage,ebx,edi,edi,edi
cmp eax,1
jb app_exit
jne msg_loop
invoke DispatchMessage,ebx
jmp msg_loop
wnd_proc:
mov eax,[esp+8]
cmp eax,WM_INITDIALOG
je app_init
cmp eax,WM_CLOSE
je app_exit
pop eax
push [old_wndproc]
push eax
jmp [CallWindowProc]
app_init:
mov eax,[esp+4]
invoke SendMessage,eax,WM_SETTEXT,0,_title
xor eax,eax
ret
app_exit:
invoke ExitProcess,edi
data import
library\
kernel32,'kernel32.dll',\
user32,'user32.dll'
include 'api\kernel32.inc'
include 'api\user32.inc'
end data
cmepmop # 0
chiacorp # 0 ⇈
BEKTOPHblu_nETyX # 0 ⇈
chiacorp # 0 ⇈
inkanus_gray # 0 ⇈
cmepmop # 0 ⇈
inkanus_gray # 0 ⇈
guest # 0 ⇈
zhigolo # 0 ⇈
http://board.flatassembler.net/topic.php?t=5909&view=next
особенно на этой фотке http://x86asm.net/fasmparty/krakow_sunday_3.jpg
guest # 0 ⇈
guest # 0 ⇈
https://ok.ru/profile/556707399504
guest # 0 ⇈
я опять это видал
guest # 0 ⇈
OCETuHCKuu_nemyx # 0 ⇈
guest # 0 ⇈
OCETuHCKuu_nemyx # 0
guest # 0
мощно
cmepmop # 0 ⇈
Хм. Регистр-счётчик используется не по назначению:
mov ecx,$80000000
ebx ведь нужен?
inkanus_gray # 0 ⇈
guest # 0 ⇈
это еще счетчик, который отвечет залуп
BEKTOPHblu_nETyX # 0 ⇈
guest # 0 ⇈
из семи залуп
три покрошены,
четыре так брошены
guest # 0 ⇈
chiacorp # 0 ⇈
TEH3OPHblu_nemyx # 0 ⇈
chiacorp # 0 ⇈
guest # 0 ⇈
а rep чтобы быстрее
chiacorp # 0 ⇈
guest # 0 ⇈
наприме чтобы влезть в еш
bormand # 0 ⇈
TEH3OPHblu_nemyx # 0 ⇈
guest # 0 ⇈
rep call
TEH3OPHblu_nemyx # 0 ⇈
Выполняется почти как nop + retn, но только считается одной инструкцией, а не двумя.
guest # 0 ⇈
для защиты от мельдауна?
TEH3OPHblu_nemyx # 0 ⇈
Этой глючной реализации посвятили целый сайт:
http://repzret.org/p/repzret/
В 8080 никаких предикторов не было, именно поэтому я за 8080.
guest # 0 ⇈
TEH3OPHblu_nemyx # 0 ⇈
О, сколько нам открытий чудных
Приносит «Микрософта» дух
И «Интел» –— сын ошибок трудных,
И «Борланд» —– «Парадоксов» друг.
А мне нравится обкладывать код воркэраундами и дрочить...
guest # 0 ⇈
guest # 0 ⇈
именно потому я за "IBM PC AT"
TEH3OPHblu_nemyx # 0 ⇈
guest # 0 ⇈
TEH3OPHblu_nemyx # 0 ⇈
http://www.cs.cmu.edu/~ralf/interrupt-list/
guest # 0 ⇈
зато нашел ответ от Ральфа где он пишет что серийник биоса из BDA не считать без помощи жопы
http://www.cs.cmu.edu/~ralf/interrupt-list/faq.lst
TEH3OPHblu_nemyx # 0 ⇈
guest # 0 ⇈
ну што я говорил?!
guest # 0 ⇈
сколько тактов занимает инструуция mov?
Я же правильно понимаю что это зависит от наличия говна в кеше. А если его там нет, то от скорости работы памяти, наличия говна в сенс амплифаерах, открытости-закрытости ряда, короче невозможно сказать от чего это зависит?
как тогда это измерить? Вроде как Intel vTune умеет, но как понять например что скорость памяти это ботлнек?
есть какие-то инструменты?
TEH3OPHblu_nemyx # 0 ⇈
Если просто хочешь узнать на испытательном стенде, сколько тактов прошло, то ты это можешь узнать через RDTSC. Правда, я не знаю, что RDTSC покажет в многозадачной среде.
Или тебя интересует, как узнать то, от чего это зависит (наличие говна в кэше и т. п.)?
guest # 0 ⇈
допустим, я хочу понять являетчя ли скорость мапяти ботланеком
guest # 0 ⇈
такую тему интеерсную слили
Popierdolony_pies # 0 ⇈
guest # 0 ⇈
BEKTOPHblu_nETyX # 0 ⇈
BEKTOPHblu_nETyX # 0 ⇈
guest # 0 ⇈
там было написано "дизайнт вор win95"
сиреневеньбкий такой
chiacorp # 0 ⇈
inkanus_gray # 0 ⇈
chiacorp # 0 ⇈
inkanus_gray # 0 ⇈
guest # 0 ⇈
BEKTOPHblu_nETyX # 0 ⇈
inkanus_gray # 0 ⇈
Invoke используется для удобства. Раз человек заюзал его - значит, ему важно именно удобство, а не минимализм. Если нужен минимум кода - пушайте.
chiacorp # 0 ⇈
chiacorp # 0 ⇈
ASM получим на выхлопе 20 байт
use32
push $80000000;68 00 00 00 80
push $80000000;68 00 00 00 80
push $80000000;68 00 00 00 80
push $80000000;68 00 00 00 80
ASM получим 11 байт
mov ecx,$80000000;B9 00 00 00 80
push ecx;51
push ecx;51
push ecx;51
push ecx;51
Семь раз отмерь — один отрежь, chiacorp!
chiacorp # 0 ⇈
use32;8 байт
push 0;6A 00
push 0;6A 00
push 0;6A 00
push 0;6A 00
use32;6 байт
xor edi,edi;31 FF
push edi;57
push edi;57
push edi;57
push edi;57
Чем больше push 0 тем лучше, а invoke что поставим то и пульнёт)
bormand # 0
Хм, так в винапи можно просто заменять обработчик событий и не регать новый класс...
chiacorp # 0 ⇈
cmepmop # 0 ⇈
guest # 0 ⇈
chiacorp # 0 ⇈
guest # 0 ⇈
https://www.amazon.com/Programming-Manual-Version-Definitive-Guides/dp/1565920023
можешь ее нагуглить, она легко находится.
Вообще "цветные книжки" по иксам это мастхев. Других источников информации (внятных) простонеит
chiacorp # 0 ⇈
guest # 0 ⇈
Обычно говнокодят под xcb или под виджеты коих дохуя или под QT или под GTK или.. ну ты понял
но ценность цветных книжек это не умаляет.
Там есть еще зелененькая и розовенькая и еще всякие разные: по виджетам, по использованию иксов, по дисплей менеджерам, виндуо менеджерам итд
вот они, мои няшечки
chiacorp # 0 ⇈
Чем ниже тем интересней!
А интересно есть ниже XLIB возможность?
BEKTOPHblu_nETyX # 0 ⇈
guest # 0 ⇈
А остальные все да: через XLIB.
вот стек
ниже XLIB можно конечно.
Читаешь про протокол
и реализуешь клиента X11
chiacorp # 0 ⇈
Ниже работа через протокол TCP/IP. Верно?
С микротиком так извращался)
СПС нужная инфа.
guest # 0 ⇈
X11 ждет каково-то стрим-ориентированного протокола.
Это может быть unix domain sockets на юниксах, может быть names pipes на винде, да хоть последовательный порт)
Вот что пишет о себе XOrg (важная, но далеко не едигнственная реализация X11 севера):
Xorg supports connections made using the following reliable byte-streams:
Local
On most platforms, the "Local" connection type is a UNIX-domain socket. On some System V platforms, the "local" connection types also include STREAMS pipes, named pipes, and some other mechanisms.
TCP/IP
Xorg listens on port 6000+n, where n is the display number. This connection type can be disabled with the -nolisten option (see the Xserver(1) man page for details).
лол, я думал беркливеые сокеты убили STREAMS 25 лет назад
chiacorp # 0 ⇈
ASD_77 # 0
chiacorp # 0 ⇈
Написали бинарный, то и закинули бы бинарный)))
Помни, ASD_77, за тобой могут следить!