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

Напишите комментарии к программе

13.01.2017, 19:07. Показов 705. Ответов 5
Метки нет (Все метки)

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
include     kernel32.inc
include     user32.inc
include     gdi32.inc
includelib  IMPORT32.LIB
 
.const
NULL                                 equ 0
TRUE                                 equ 1
FALSE                                equ NULL
 
CS_HREDRAW                           equ 2h
CS_VREDRAW                           equ 1h
CW_USEDEFAULT                        equ 80000000h
 
COLOR_BTNFACE                        equ 15 
 
IDI_APPLICATION                      equ 32512
IDC_ARROW                            equ 32512
 
;windows style
WS_VISIBLE                           equ 10000000h
WS_CAPTION                           equ 0C00000h
WS_CHILD                             equ 40000000h
WS_SYSMENU                           equ 80000h
WS_THICKFRAME                        equ 40000h
WS_MINIMIZEBOX                       equ 20000h
WS_MAXIMIZEBOX                       equ 10000h
WS_OVERLAPPEDWINDOW       equ  WS_VISIBLE or WS_CAPTION\
                          OR WS_SYSMENU OR WS_THICKFRAME\ 
                          OR WS_MINIMIZEBOX OR WS_MAXIMIZEBOX
;Windows Messages
WM_DESTROY              equ 2h
WM_CREATE               equ 1h
WM_COMMAND              equ 111h
IMAGE_BITMAP                equ 0
LR_LOADFROMFILE             equ 10h
TRANSPARENT                          equ 1
 
 
SRCCOPY                              equ 0CC0020h
 
;Structures
.data
    ClassName db "MainWinClass",0
    Class_button db 'BUTTON',0
    title_button db 'click me',0
    
    AppName  db "PROG 1",0
    path    db 'dr_eggs7.BMP',0
    
    hdc1        dd 0
    hdc_bit     dd 0
    hbit        dd 0
    
    hbit_oj dd 0
    hdc1_oj dd 0
    
    hbit_text   dd 0
    hdc_text        dd 0
 
 
    hbit_tmp    dd 0
    hdc_tmp     dd 0
    
    dx_ dd -0.03490658503989 ; 2*pi/180
    A   dd 5.0 ; Амплітуда
    x dd 0.0
    
    
    
    buff db 260 dup(0)
.data?
    hwnd DWORD ?
 
    WNDCLASSEX:
      cbSize            DWORD      ?
      style             DWORD      ?
      lpfnWndProc       DWORD      ?
      cbClsExtra        DWORD      ?
      cbWndExtra        DWORD      ?
      hInstance         DWORD      ?
      hIcon             DWORD      ?
      hCursor           DWORD      ?
      hbrBackground     DWORD      ?
      lpszMenuName      DWORD      ?
      lpszClassName     DWORD      ?
      hIconSm           DWORD      ?
    
    MSG:
      ms_hwnd      DWORD      ?
      ms_message   DWORD      ?
      ms_wParam    DWORD      ?
      ms_lParam    DWORD      ?
      ms_time      DWORD      ?
      ms_x         DWORD      ?
      ms_y         DWORD      ?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.01.2017, 19:07
Ответы с готовыми решениями:

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

Напишите комментарии к примеру из калашникова
Пример из учебника калашникова Напишите краткие комментарии к процедуре Int_10h_proc А то у меня...

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

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

5
1624 / 806 / 146
Регистрация: 13.06.2015
Сообщений: 3,266
13.01.2017, 19:33 2
Хорошая, годная прога. Ни одной команды нет - идеальная оптимизация как по размеру, так и по быстродействию. А главное - полное отсутствие даже потенциальных ошибок.

Это я, если что, прокомментировал программу.
1
0 / 0 / 0
Регистрация: 13.01.2017
Сообщений: 5
13.01.2017, 19:47  [ТС] 3
Не спасибо.
Это я прокомментировал ваш ответ. Не помог
0
3406 / 1825 / 489
Регистрация: 28.02.2015
Сообщений: 3,696
13.01.2017, 20:43 4
Цитата Сообщение от IronStar Посмотреть сообщение
Не помог
У Вас нет самого кода программы. Вам это и сказали:
Цитата Сообщение от Kukuxumushu Посмотреть сообщение
Ни одной команды нет
В приведенном "коде" только два сегмента данных, т.е. полная "оптимизация безошибочного кода"
0
0 / 0 / 0
Регистрация: 13.01.2017
Сообщений: 5
13.01.2017, 20:58  [ТС] 5
Приношу извенения в спешке бросил лишь часть.
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
.586
.model flat,STDCALL
option casemap:none
 
include l5.inc
.code
begin:
    ; визначаємо хендл модуля
    call GetModuleHandle, NULL
    mov   hInstance,eax
    ; заповнюємо структуру WNDCLASSEX
    mov   cbSize,12*4       
    mov   style,CS_HREDRAW or CS_VREDRAW
    mov   lpfnWndProc, OFFSET WndProc
    mov   cbClsExtra,NULL
    mov   cbWndExtra,NULL
    ; колір фону сірий
    call  GetSysColorBrush,COLOR_BTNFACE
    mov   hbrBackground,eax
    mov   lpszMenuName,NULL
    mov   lpszClassName,OFFSET ClassName
    ; іконка програми IDI_APPLICATION
    call LoadIcon,NULL,IDI_APPLICATION
    mov   hIcon,eax
    mov   hIconSm,eax
    ;курсор стандартний
    call LoadCursor,NULL,IDC_ARROW
    mov   hCursor,eax
    ;реєструемо новий клас
    call RegisterClassEx,offset WNDCLASSEX
    ;ств. батьківське вікно  
    call CreateWindowEx,NULL,offset ClassName,offset AppName,\
                        WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,\
                        CW_USEDEFAULT,800,\
                        600,NULL,NULL,\
                        hInstance,NULL
    mov  hwnd,eax
    ;ств. кнопку, на батьківському вікні (стиль WS_CHILD)
 
    ; цикл прослуховування повідомлень
    loop:
        ;відловити тільки ті що відносятся до нашого вікна
        call GetMessage, OFFSET MSG,NULL,0,0
        ;якщо 0 або -1, вікна не має
        test eax,eax
        jz @exit
        ; перетворюємо з віртуальних ключів у систему повідомлень
        call TranslateMessage, offset MSG
        ; відпра. на обробку у функ. WndProc
        call DispatchMessage, offset MSG
    jmp loop
@exit:
    call ExitProcess,0
 
draw proc ; проц. руху
    LOCAL py,px:DWORD
    ; розбиває на лінії і кажну малює по сін. 
    ; нажна наступна лінія має зміщення по фазі на 2 гадуси (dx_)
    mov px,1 ; н-р лінні 
a:      
    fld x ; завант. х у спів процесор
    fsin ; знах сін
    fmul A ; множ на ампліт
    
    fistp py ; витягуємо результат 
    
    fld x ; до х додоаємо зміщення dx_ 
    fadd dx_
    fstp x  
    ; у тимчасовий бітмап (малюнок) копіюємо полоску в 1 пх., але координата у по сін 
    call BitBlt,hdc_tmp,px,py,1,250,hdc_bit,px,1,SRCCOPY
    inc px ; збільшуємо х
    cmp px,700 ;поки до 700 не дійшли
    jl a; шуруємо на мітку а  
    ; коли все намалювали результат на екран коп. 
    call BitBlt,hdc1,20,40,700,250,hdc_tmp,2,0,SRCCOPY
    
    ret
 
draw endp
; функ. обробки повыдомлень вікна 
WndProc proc hWnd1:DWORD,uMsg:DWORD,wParam:DWORD,lParam:DWORD
LOCAL tmp,X1,Y1:DWORD
    ; якщо прийшло повідомлення про знищення вікна, перейти на мітку @DESTROY
    cmp uMsg,WM_DESTROY
    jz @DESTROY
    ; якщо прийшло повідомлення про створення вікна, перейти на мітку @CREATE 
    cmp uMsg,WM_CREATE
    jz @CREATE
    ;якщо прийшло повідомлення про здійснення дії (наприклад натиснута кнопка), перейти на мітку @COMMAND
    ; виклік фун. дія по замовчуванню
    call DefWindowProc,hWnd1,uMsg,wParam,lParam     
    ret
    
@DESTROY:
        ; відправ. повід про закриття вікна
        call PostQuitMessage,NULL
        ret 
@CREATE:
        call GetDC,hWnd1 ; береб граф контекс вікна
        mov hdc1,eax
        ; завант мал
        call LoadImage,hInstance,offset path,IMAGE_BITMAP,0,0,LR_LOADFROMFILE
        mov hbit,eax
         ; ств. сумісний граф контекст 
        call CreateCompatibleDC,hdc1
        mov hdc_bit,eax
        call SelectObject,hdc_bit,hbit ; приєднюємо граф контекст до малюнка, щоб ми могли з ним прац.
    
 
        call CreateCompatibleDC,hdc1 ; ств. тимчас. малюнок, куда будемо малювати сін. малюнок
        mov hdc_tmp,eax
        call CreateCompatibleBitmap,hdc1,700,250
        mov hbit_tmp,eax        
        call SelectObject,hdc_tmp,hbit_tmp
        call Rectangle,hdc_tmp,0,0,700,250
 
        call SetTimer,0,0,100,offset draw    ; задаємо таймер руху (100 мілі с), обробник draw
 
        ret
@MOUSEMOVE:
         
@nobutton:      
        ret     
WndProc endp
 
end begin
0
Модератор
Эксперт по электронике
8476 / 4335 / 1642
Регистрация: 01.02.2015
Сообщений: 13,461
Записей в блоге: 8
13.01.2017, 21:37 6
Так в программе - через одну строку комментарий. Зачем ещё? Или нужно соотношение 1:1?
Что не устраивает в существующем комментировании предоставленного исходника?
0
13.01.2017, 21:37
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.01.2017, 21:37
Помогаю со студенческими работами здесь

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

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

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

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


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

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