- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 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 05.03.2019 22:21 # 0
chiacorp 05.03.2019 22:26 # −3
BEKTOPHblu_nETyX 06.03.2019 17:02 # 0
chiacorp 06.03.2019 17:02 # 0
inkanus_gray 05.03.2019 22:42 # −85
cmepmop 05.03.2019 22:48 # 0
inkanus_gray 05.03.2019 22:51 # −90
guest8 05.03.2019 22:54 # −999
zhigolo 05.03.2019 22:55 # 0
http://board.flatassembler.net/topic.php?t=5909&view=next
особенно на этой фотке http://x86asm.net/fasmparty/krakow_sunday_3.jpg
guest8 06.03.2019 14:54 # −999
guest8 06.03.2019 18:51 # −999
guest8 06.03.2019 18:57 # −999
guest8 06.03.2019 19:11 # −999
OCETuHCKuu_nemyx 08.03.2019 01:35 # 0
guest8 08.03.2019 01:59 # −999
OCETuHCKuu_nemyx 05.03.2019 22:29 # −2
guest8 05.03.2019 23:03 # −999
cmepmop 05.03.2019 23:12 # 0
Хм. Регистр-счётчик используется не по назначению:
mov ecx,$80000000
ebx ведь нужен?
inkanus_gray 05.03.2019 23:15 # −89
guest8 06.03.2019 14:53 # −999
BEKTOPHblu_nETyX 06.03.2019 17:03 # 0
guest8 06.03.2019 17:06 # −999
guest8 03.05.2020 06:03 # −999
chiacorp 06.03.2019 17:05 # 0
TEH3OPHblu_nemyx 06.03.2019 17:21 # 0
chiacorp 06.03.2019 17:32 # 0
guest8 06.03.2019 17:34 # −999
chiacorp 06.03.2019 17:40 # 0
guest8 06.03.2019 17:42 # −999
bormand 06.03.2019 18:33 # 0
TEH3OPHblu_nemyx 06.03.2019 18:38 # 0
guest8 06.03.2019 18:42 # −999
TEH3OPHblu_nemyx 06.03.2019 18:50 # 0
Выполняется почти как nop + retn, но только считается одной инструкцией, а не двумя.
guest8 06.03.2019 18:57 # −999
TEH3OPHblu_nemyx 06.03.2019 19:00 # +1
Этой глючной реализации посвятили целый сайт:
http://repzret.org/p/repzret/
В 8080 никаких предикторов не было, именно поэтому я за 8080.
guest8 06.03.2019 19:06 # −999
TEH3OPHblu_nemyx 06.03.2019 19:11 # +1
О, сколько нам открытий чудных
Приносит «Микрософта» дух
И «Интел» –— сын ошибок трудных,
И «Борланд» —– «Парадоксов» друг.
А мне нравится обкладывать код воркэраундами и дрочить...
guest8 06.03.2019 19:38 # −999
guest8 06.03.2019 19:45 # −999
TEH3OPHblu_nemyx 06.03.2019 20:11 # 0
guest8 06.03.2019 20:14 # −999
TEH3OPHblu_nemyx 06.03.2019 20:15 # 0
http://www.cs.cmu.edu/~ralf/interrupt-list/
guest8 06.03.2019 20:23 # −999
TEH3OPHblu_nemyx 06.03.2019 20:25 # 0
guest8 06.03.2019 20:27 # −999
guest8 06.03.2019 20:30 # −999
TEH3OPHblu_nemyx 06.03.2019 21:08 # 0
Если просто хочешь узнать на испытательном стенде, сколько тактов прошло, то ты это можешь узнать через RDTSC. Правда, я не знаю, что RDTSC покажет в многозадачной среде.
Или тебя интересует, как узнать то, от чего это зависит (наличие говна в кэше и т. п.)?
guest8 06.03.2019 21:49 # −999
guest8 03.05.2020 06:04 # −999
Popierdolony_pies 03.05.2020 06:12 # 0
guest8 06.03.2019 19:52 # −999
BEKTOPHblu_nETyX 06.03.2019 20:01 # 0
BEKTOPHblu_nETyX 06.03.2019 19:47 # 0
guest8 06.03.2019 19:50 # −999
chiacorp 05.03.2019 23:19 # +1
inkanus_gray 05.03.2019 23:22 # −90
chiacorp 05.03.2019 23:32 # 0
inkanus_gray 05.03.2019 23:52 # −90
guest8 05.03.2019 23:53 # −999
BEKTOPHblu_nETyX 06.03.2019 05:42 # 0
inkanus_gray 06.03.2019 12:40 # −90
Invoke используется для удобства. Раз человек заюзал его - значит, ему важно именно удобство, а не минимализм. Если нужен минимум кода - пушайте.
chiacorp 06.03.2019 15:04 # 0
chiacorp 06.03.2019 07:19 # +2
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 06.03.2019 07:24 # +1
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 06.03.2019 07:58 # 0
Хм, так в винапи можно просто заменять обработчик событий и не регать новый класс...
chiacorp 06.03.2019 08:44 # 0
cmepmop 06.03.2019 12:59 # 0
guest8 06.03.2019 14:53 # −999
chiacorp 06.03.2019 16:50 # 0
guest8 06.03.2019 17:08 # −999
chiacorp 06.03.2019 17:11 # 0
guest8 06.03.2019 17:12 # −999
chiacorp 06.03.2019 17:18 # 0
Чем ниже тем интересней!
А интересно есть ниже XLIB возможность?
BEKTOPHblu_nETyX 06.03.2019 17:23 # 0
guest8 06.03.2019 17:24 # −999
chiacorp 06.03.2019 17:37 # 0
Ниже работа через протокол TCP/IP. Верно?
С микротиком так извращался)
СПС нужная инфа.
guest8 06.03.2019 17:42 # −999
chiacorp 06.03.2019 17:55 # 0
ASD_77 06.03.2019 15:24 # −1
chiacorp 06.03.2019 16:49 # 0
Написали бинарный, то и закинули бы бинарный)))
Помни, ASD_77, за тобой могут следить!