Форум программистов, компьютерный форум, киберфорум
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 02.04.2016
Сообщений: 4
1

Assembler комментарии к программе

02.04.2016, 00:57. Показов 1123. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите пожалуйста прокомментировать код к программе:
Assembler
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
format PE GUI 4.0
entry start
 
include 'win32a.inc'
 
IDR_ICON = 17
IDR_MENU = 37
 
IDM_NEW   = 101
IDM_EXIT  = 102
IDM_ABOUT = 901
 
section '.text' code readable executable
 
  start:
 
    invoke  GetModuleHandle,0  ;Взять дескриптор пpогpаммы
    mov [wc.hInstance],eax
 
    invoke  LoadIcon,eax,IDR_ICON
    mov [wc.hIcon],eax      ;Вносим в wc хендл иконки
    invoke  LoadCursor,0,IDC_ARROW ;Вносим в wc хендл
    mov [wc.hCursor],eax
    invoke  RegisterClass,wc
    test    eax,eax
    jz  error
 
    invoke  LoadMenu,[wc.hInstance],IDR_MENU
    invoke  CreateWindowEx,0,_class,_title,WS_VISIBLE+WS_OVERLAPPEDWINDOW,144,128,256,256,NULL,eax,[wc.hInstance],NULL
    test    eax,eax
    jz  error
 
  msg_loop:
    invoke  GetMessage,msg,NULL,0,0    ;Получаем сообщение
    cmp eax,1
    jb  end_loop
    jne msg_loop
    invoke  TranslateMessage,msg
    invoke  DispatchMessage,msg
    jmp msg_loop          ;Прыжок на msg_loop(новый цикл)
 
  error:
    invoke  MessageBox,NULL,_error,NULL,MB_ICONERROR+MB_OK
 
  end_loop:
    invoke  ExitProcess,[msg.wParam] ;Завершаем процесс возвращая windows результат работы WindowProc
 
proc WindowProc hwnd,wmsg,wparam,lparam
    push    ebx esi edi
    mov eax,[wmsg]
    cmp eax,WM_CREATE
    je  .wmcreate
    cmp eax,WM_SIZE
    je  .wmsize
    cmp eax,WM_SETFOCUS
    je  .wmsetfocus
    cmp eax,WM_COMMAND
    je  .wmcommand
    cmp eax,WM_DESTROY
    je  .wmdestroy
  .defwndproc:
    invoke  DefWindowProc,[hwnd],[wmsg],[wparam],[lparam]
    jmp .finish
  .wmcreate:
    invoke  GetClientRect,[hwnd],client
    invoke  CreateWindowEx,WS_EX_CLIENTEDGE,_edit,0,WS_VISIBLE+WS_CHILD+WS_HSCROLL+WS_VSCROLL+ES_AUTOHSCROLL+ES_AUTOVSCROLL+ES_MULTILINE,[client.left],[client.top],[client.right],[client.bottom],[hwnd],0,[wc.hInstance],NULL
    or  eax,eax
    jz  .failed
    mov [edithwnd],eax
    invoke  CreateFont,16,0,0,0,0,FALSE,FALSE,FALSE,ANSI_CHARSET,OUT_RASTER_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,FIXED_PITCH+FF_DONTCARE,NULL
    or  eax,eax
    jz  .failed
    mov [editfont],eax
    invoke  SendMessage,[edithwnd],WM_SETFONT,eax,FALSE
    xor eax,eax
    jmp .finish
      .failed:
    or  eax,-1
    jmp .finish
  .wmsize:
    invoke  GetClientRect,[hwnd],client
    invoke  MoveWindow,[edithwnd],[client.left],[client.top],[client.right],[client.bottom],TRUE
    xor eax,eax
    jmp .finish
  .wmsetfocus:
    invoke  SetFocus,[edithwnd]
    xor eax,eax
    jmp .finish
  .wmcommand:
    mov eax,[wparam]
    and eax,0FFFFh
    cmp eax,IDM_NEW
    je  .new
    cmp eax,IDM_ABOUT
    je  .about
    cmp eax,IDM_EXIT
    je  .wmdestroy
    jmp .defwndproc
      .new:
    invoke  SendMessage,[edithwnd],WM_SETTEXT,0,0
    jmp .finish
      .about:
    invoke  MessageBox,[hwnd],_about_text,_about_title,MB_OK
    jmp .finish
  .wmdestroy:
    invoke  DeleteObject,[editfont]
    invoke  PostQuitMessage,0
    xor eax,eax   ;обнуляем eax
  .finish:
    pop edi esi ebx  ;востанавливаем регистры
    ret          ;Возврат из функции в цикл сообшений
endp
 
section '.data' data readable writeable
 
  _title TCHAR 'Мини блокнот',0
  _about_title TCHAR 'About MiniPad',0
  _about_text TCHAR 'Разработал Нагорнов Алексей Сергеевич.',0
  _error TCHAR 'Startup failed.',0
 
  _class TCHAR 'MINIPAD32',0
  _edit TCHAR 'EDIT',0
 
  wc WNDCLASS 0,WindowProc,0,0,NULL,NULL,NULL,COLOR_BTNFACE+1,NULL,_class
 
  edithwnd dd ?
  editfont dd ?
 
  msg MSG
  client RECT
 
section '.idata' import data readable writeable
 
  library kernel,'KERNEL32.DLL',\
      user,'USER32.DLL',\
      gdi,'GDI32.DLL'
 
  import kernel,\
     GetModuleHandle,'GetModuleHandleA',\
     ExitProcess,'ExitProcess'
 
  import user,\
     RegisterClass,'RegisterClassA',\
     CreateWindowEx,'CreateWindowExA',\
     DefWindowProc,'DefWindowProcA',\
     SetWindowLong,'SetWindowLongA',\
     RedrawWindow,'RedrawWindow',\
     GetMessage,'GetMessageA',\
     TranslateMessage,'TranslateMessage',\
     DispatchMessage,'DispatchMessageA',\
     SendMessage,'SendMessageA',\
     LoadCursor,'LoadCursorA',\
     LoadIcon,'LoadIconA',\
     LoadMenu,'LoadMenuA',\
     GetClientRect,'GetClientRect',\
     MoveWindow,'MoveWindow',\
     SetFocus,'SetFocus',\
     MessageBox,'MessageBoxA',\
     PostQuitMessage,'PostQuitMessage'
 
  import gdi,\
     CreateFont,'CreateFontA',\
     DeleteObject,'DeleteObject'
 
section '.rsrc' resource data readable
 
  ; resource directory
 
  directory RT_MENU,menus,\
        RT_ICON,icons,\
        RT_GROUP_ICON,group_icons,\
        RT_VERSION,versions
 
  ; resource subdirectories
 
  resource menus,\
       IDR_MENU,LANG_ENGLISH+SUBLANG_DEFAULT,main_menu
 
  resource icons,\
       1,LANG_NEUTRAL,icon_data
 
  resource group_icons,\
       IDR_ICON,LANG_NEUTRAL,main_icon
 
  resource versions,\
       1,LANG_NEUTRAL,version
 
  menu main_menu
       menuitem '&File',0,MFR_POPUP
        menuitem '&New',IDM_NEW
        menuseparator
        menuitem 'E&xit',IDM_EXIT,MFR_END
       menuitem '&Help',0,MFR_POPUP + MFR_END
        menuitem '&About...',IDM_ABOUT,MFR_END
 
  icon main_icon,icon_data,'E:\fasmw17151\EXAMPLES\MINIPAD\minipad.ico'
 
  versioninfo version,VOS__WINDOWS32,VFT_APP,VFT2_UNKNOWN,LANG_ENGLISH+SUBLANG_DEFAULT,0,\
          'FileDescription','MiniPad - example program',\
          'LegalCopyright','No rights reserved.',\
          'FileVersion','1.0',\
          'ProductVersion','1.0',\
          'OriginalFilename','Мини блокнот.EXE'
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.04.2016, 00:57
Ответы с готовыми решениями:

Комментарии к программе
Может кто сказать какие комментарии должны быть у этой программы model small .code szRow equ 6...

Нужны комментарии к программе
program all; uses crt; var x,y,f,a:integer; label a1,a2,stop; begin clrscr; write('Input...

Напишите комментарии к программе
.model small ; .data ; x dw 05 ; y dw 40 ; .stack ; .code ; begin: ; mov ax,@data ; mov...

Напишите комментарии к программе
Помогите пожалуйста прокомментировать код к программе: include kernel32.inc include user32.inc...

0
02.04.2016, 00:57
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.04.2016, 00:57
Помогаю со студенческими работами здесь

Комментарии к программе на Ассемблер
Вот код, ребят подскажите что оно тут происходит, не прям для тупых, я знаю шо такое mov, как...

Народ мне нужно найти ошибку в программе (Turbo Assembler)
Народ помогите найти ошибку в простой программе (Assembler))...все из методички пробовал, то что...

assembler комментарии к программе
Помогите пожалуйста прокомментировать код к программе: .model small .data ;закодированное...

комментарии к программе
data segment x1 db ? x2 db ? x3 db ? x4 db ? x5 db ? x6 db ? x7 db ? x8 db ? mass db...

Комментарии к программе
Прокомментируйте пожалуйста программу если не сложно! заданы строки элементов X и Y . Вычислить...

Нужны комментарии к программе
помогите коментарии написать к каждой комманде model small .386 .stack 900h


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru