purebasic.info

PureBasic forum
Текущее время: Чт июл 19, 2018 6:39 pm

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 33 ]  На страницу Пред.  1, 2, 3
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Сб май 05, 2012 1:29 pm 
Не в сети
профессор

Зарегистрирован: Сб апр 16, 2011 8:59 am
Сообщений: 224
Благодарил (а): 4 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Fox, спасибо,
а нужно EnableAsm до команд писать?
и DisableAsm потом?

туго у меня с ассемблером в тексте :( не Fasm)

_________________
Захотелось мартышки любви со слоном, тут она и лопнула


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Сб май 05, 2012 2:22 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11206
Благодарил (а): 4 раз.
Поблагодарили: 421 раз.
egons писал(а):
еперь осталось разобраться, как выделенные инструкции правильно ассемблируются.
Так сделай асм вставку в код.
Код:
1
2
3
4
5
6
7
8
9
10
11
di=0
 
EnableASM
shr byte [v_di-$280],4
mov ah,dh
sar ah,04
inc ah
mov al,byte [v_di-320]
add al,byte [v_di-319]
rcr al,1
DisableASM


egons писал(а):
не Fasm
Но фасм нормально переваривает код.

_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Сб май 05, 2012 2:26 pm 
Не в сети
профессор

Зарегистрирован: Сб апр 16, 2011 8:59 am
Сообщений: 224
Благодарил (а): 4 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Пётр писал(а):
Но фасм нормально переваривает код.

У пурика фаза луны не та - OllyDBg выдавал ужос просто, вместо -$280 было не пойми что.

Пётр писал(а):
Так сделай асм вставку в код.

ошибся в адресации, по привычке написал в коде di вместо edi,отсюда и memory violation..

в общем, вот алгоритм, недокод, у меня голова уже не варит :cry:
Код:
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
 
xres=320
yres=320
 
If OpenWindow(0, 0, 0, xres, yres, "2DDrawing Example", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
    If CreateImage(0, xres, yres) And StartDrawing(ImageOutput(0))
     
      Dim pal(3,255)
     
      For i=0 To 255
        pal(0,i)=0
        pal(1,i)=0
        pal(2,i)=0
      Next i
     
      aa.b=$10
      For i=$10 To 0 Step -1
        pal(0,i)=0
        pal(1,i)=aa<<1
        pal(2,i)=aa<<2
;        pal(i)=RGB(0,al<<1,al<<2)
      Next i
     
      *MemoryID = AllocateMemory(64000*2)
      PokeB(*MemoryID,$AA)
 
    EnableASM
      mov  edi,*MemoryID
      add edi,$EF98
      mov  ecx,$010F50
      mov  dh,cl
!L1D7:
 shr byte [edi-$280],4
  mov  ah,dh
        sar  ah,04
        inc ah
        mov  al,byte [edi-320]
        add  al,byte [edi-319]
        rcr  al,1
        add  al,ah
        rol  dh,cl
;       mov[edi],al
;       inc edi
        stosb
        XOr  dh,al
        dec  ecx;ecx
        jne  L1D7
  DisableASM
;---------------------------------    
      For x=0 To 319
        For y=0 To 319
          aL.b=PeekB(*MemoryID+y*320+x);&ff
;          Plot(x, y, RGB(al*2,al*2,al*2))
          Plot(x, y, RGB(0,al<<1,al<<2))
 
;          Plot(x, y, RGB(Pal(0,aL),Pal(1,aL),Pal(2,aL)))
         Next y
       Next x
       
;      FreeMemory(*MemoryID)
      StopDrawing()
      ImageGadget(0, 0, 0, xres, yres, ImageID(0))
      SaveImage(0,"scum.bmp",#PB_ImagePlugin_BMP)
    EndIf
   
    Repeat
      Event = WaitWindowEvent()
    Until Event = #PB_Event_CloseWindow
  EndIf
 
; IDE Options = PureBasic 4.60 (Windows - x86)
; CursorPosition = 28
; FirstLine = 18
; EnableXP
; Executable = tst.exe
 



алгоритм, что в BBStro(87 байт вроде бы):
Код:
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
58
59
60
61
62
63
64
65
66
67
68
69
        org 100h
        use16
 
        mov ax,13h
        int 10h
 
;        pusha;02AA:01A2
 ;       push ds;02AA:01A3
  ;      push es;02AA:01A4
   ;     mov  ax,0A000h;02AA:01A5
    ;    mov  es,ax;02AA:01A8
    ;    xor  di,di;02AA:01AA
     ;   xor  ax,ax;02AA:01AC
      ;  mov  cx,07D00h;02AA:01AE
       ; repe stosw;02AA:01B1
        mov  ax,0A000h;02AA:01B3
        mov  es,ax;02AA:01B6
;        mov  bl,0FFh;02AA:01B8
;L1BA:
 ;       mov  dx,03C8h;02AA:01BA
  ;      mov  al,bl;02AA:01BD
   ;     out  dx,al;02AA:01BF
    ;    mov  dx,03C9h;02AA:01C0
;        xor  al,al;02AA:01C3
 ;       out  dx,al;02AA:01C5
  ;      out  dx,al;02AA:01C6
   ;     out  dx,al;02AA:01C7
    ;    dec  bl;02AA:01C8
     ;   jne  L1BA;02AA:01CA
        mov  di,0EF98h;02AA:01CC
        mov  ecx,010E50h;02AA:01CF
        mov  dh,cl;02AA:01D5
L1D7:
        shr byte [es:di-0280h],04;02AA:01D7
        mov  ah,dh;02AA:01DD
        sar  ah,04;02AA:01DF
        inc ah;02AA:01E2
        mov  al,byte [es:di-0140h];02AA:01E4
        add  al,byte [es:di-013Fh];02AA:01E9
        rcr  al,1;02AA:01EE
        add  al,ah;02AA:01F0
        rol  dh,cl;02AA:01F2
        stosb;02AA:01F4
        xor  dh,al;02AA:01F5
        dec  ecx;02AA:01F7
        jne  L1D7;02AA:01F9
 
        mov  al,10h;02AA:01FB
L1FD:
        mov  dx,03C8h;02AA:01FD
        out  dx,al;02AA:0200
        inc dx;mov  dx,03C9h;02AA:0201
        mov  bl,al;02AA:0204
        xor  al,al;02AA:0206
        out  dx,al;02AA:0208
        mov  al,bl;02AA:0209
        shl  al,1;02AA:020B
        out  dx,al;02AA:020D
        mov  al,bl;02AA:020E
        shl  al,02;02AA:0210
        out  dx,al;02AA:0213
        mov  al,bl;02AA:0214
        dec  al;02AA:0216
        jne  L1FD;02AA:0218
;        pop  es;02AA:021A
 ;       pop  ds;02AA:021B
;        popa;02AA:021C
        ret;02AA:021D
 


_________________
Захотелось мартышки любви со слоном, тут она и лопнула


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 33 ]  На страницу Пред.  1, 2, 3

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group (блог о phpBB)
Сборка создана CMSart Studio
Русская поддержка phpBB