Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.12.2015, 19:41   #1
Egor54
Новичок
Джуниор
 
Регистрация: 22.12.2015
Сообщений: 2
По умолчанию Объяснить некоторые строки в программе

Здравствуйте!
Кто поможет объяснить строки в программе на ассемблере ,т.е их закомментировать?
Код простой.
Естественно могу заплатить.
Egor54 вне форума Ответить с цитированием
Старый 22.12.2015, 19:55   #2
R71MT
Участник клуба
 
Аватар для R71MT
 
Регистрация: 16.06.2011
Сообщений: 1,428
По умолчанию

..а где код-то?
Нашедшего выход - затаптывают первым..
R71MT вне форума Ответить с цитированием
Старый 22.12.2015, 20:09   #3
Egor54
Новичок
Джуниор
 
Регистрация: 22.12.2015
Сообщений: 2
По умолчанию

Цитата:
Сообщение от R71MT Посмотреть сообщение
..а где код-то?
Вот сам код
Код:
.386 
.model flat, stdcall 
option casemap:none 
include C:\masm32\include\kernel32.inc
include C:\masm32\include\msvcrt.inc
includelib C:\masm32\lib\kernel32.lib
includelib C:\masm32\lib\msvcrt.lib
 
 
.data 
Msg1 db 'UGADAI CHISLO ot 0 do 100. Za 5 popitki Go',0 
Prompt db 13,10,'> ',0 
Format db '%d',0 
ExitFrm db '\n',0 
MsgL db 'Menshe',0 
MsgG db 'Bolshe',0 
MsgT db 'Win! ',0 
MsgF db 13,10,'Lose. Zagadano %d',0 
 
.data? 
Seed dd ? 
Number dd ? 
UserNum dd ? 
 
.code 
Randomize proc 
    sub esp,16 
    invoke GetSystemTime,esp 
    movzx eax,word ptr[esp+14] 
    imul eax,60 
    movzx edx,word ptr[esp+12] 
    add eax,edx 
    imul eax,60 
    mov dx,[esp+10] 
    add eax,edx 
    imul eax,24 
    mov dx,[esp+8] 
    add eax,edx 
    imul eax,7 
    mov dx,[esp+4] 
    add eax,edx 
    mov Seed,eax 
    add esp,16 
    ret 
Randomize endp 
 
Random proc 
    push edx 
    mov eax,Seed 
    mov edx,08088405h 
    mul edx 
    inc eax 
    mov Seed,eax 
    mul ebx 
    mov eax,edx 
    pop edx 
    ret 
Random endp

Последний раз редактировалось Stilet; 24.12.2015 в 09:25.
Egor54 вне форума Ответить с цитированием
Старый 24.12.2015, 09:03   #4
R71MT
Участник клуба
 
Аватар для R71MT
 
Регистрация: 16.06.2011
Сообщений: 1,428
По умолчанию

Egor54, по-сути - это отрывок из какой-то программы!
Этот код - просто генерит случайное число и ничё с ним потом не делает.
А должно быть: "Угадай число!", с реакцией "Меньше/Больше".
Вот тебе халявные/краткие комменты:
Код:
.386 
 .model flat, stdcall 
 option casemap:none 
 include C:\masm32\include\kernel32.inc
 include C:\masm32\include\msvcrt.inc
 includelib C:\masm32\lib\kernel32.lib
 includelib C:\masm32\lib\msvcrt.lib


 .data        ;<=======================; Инициализированные данные =============|
 Msg1     db 'UGADAI CHISLO ot 0 do 100. Za 5 popitki Go',0 
 Prompt   db 13,10,'> ',0 
 Format   db '%d',0 
 ExitFrm  db '\n',0 
 MsgL     db 'Menshe',0 
 MsgG     db 'Bolshe',0 
 MsgT     db 'Win! ',0 
 MsgF     db 13,10,'Lose. Zagadano %d',0 

 .data? 
 Seed     dd ?      ;<=================; Неинициализированные данные =======|
 Number   dd ? 
 UserNum  dd ? 

 .code 
 Randomize proc     
 sub    esp,16                         ; резервируем 16 байт в стеке
 invoke GetSystemTime,esp              ; ^^..для "GetSystemTime" (результат в стек)
                                       ; ^^..эта (fn) возвращает системное время...
 movzx  eax,word ptr[esp+14]           ; берём в EAX текущую миллисекунду (2 байта)
 imul   eax,60                         ; знаковое умножение миллисекунд на 60
 movzx  edx,word ptr[esp+12]           ; берём в EDX секунды,
 add    eax,edx                        ; ^^.. и прибавляем их к миллисекундам
 imul   eax,60                         ; знаковое умножение результата на 60
 mov    dx,[esp+10]                    ; берём в DX текущую минуту
 add    eax,edx                        ; ^^.. и прибавляем её к предыдущему результату
 imul   eax,24                         ; знаковое умножение результата на 24
 mov    dx,[esp+8]                     ; берём в DX текущий час
 add    eax,edx                        ; ^^.. и прибавляем его к предыдущему результату
 imul   eax,7                          ; умножение результата на 7
 mov    dx,[esp+4]                     ; берём в DX текущий день недели
 add    eax,edx                        ; ^^.. и прибавляем его к предыдущему результату
 mov    Seed,eax                       ; отправляем полученный результат в переменную 'Seed'
 add    esp,16                         ; выталкиваем все аргументы из стека (очищаем его)
 ret                                   ; отправляемся туда, от куда прибыли..
 Randomize endp      ;<================; конец процедуры "Randomize"

 Random proc         ;<================; процедура "Random"
 push   edx                            ; сохраняем EDX на всякий/пожарный
 mov    eax,Seed                       ; берём в EAX предыдущий результат из переменной
 mov    edx,08088405h                  ; EDX = множитель "от-фонаря"
 mul    edx                            ; умножаем EAX на EDX
 inc    eax                            ; результат операции в EAX. Увеличиваем его на 1
 mov    Seed,eax                       ; ^^.. и отправляем получившееся число в переменную
 mul    ebx                            ; умножаем EAX на EBX. Результат в EAX...
 mov    eax,edx                        ; отправляем число 08088405h в EAX
 pop    edx                            ; восстанавливаем EDX из стека.
 ret                                   ; отправляемся туда, от куда прибыли..
 Random endp
Нашедшего выход - затаптывают первым..
R71MT вне форума Ответить с цитированием
Старый 28.12.2015, 05:47   #5
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,139
По умолчанию

Цитата:
Сообщение от Egor54
Естественно могу заплатить.
R71MT,
ТС "естественно" забыл об оплате?
Mikl___ вне форума Ответить с цитированием
Старый 28.12.2015, 06:17   #6
R71MT
Участник клуба
 
Аватар для R71MT
 
Регистрация: 16.06.2011
Сообщений: 1,428
По умолчанию

...это у них по-привычке! Хотя за такой коммент и бабло брать грех!
В сетях всё должно быть по-чесноку...
Нашедшего выход - затаптывают первым..

Последний раз редактировалось R71MT; 28.12.2015 в 06:19.
R71MT вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
нужно сделать, чтобы в программе можно вводить какие строки сравнивать, у какой строки определить длину и так далее, по всем задан Евгения Е Общие вопросы C/C++ 0 18.12.2014 20:13
пояснение строки в программе 22hope22 C# (си шарп) 5 13.06.2013 18:20
Помогите, не могу понять, как объяснить программе, что именно я от нее хочу Dead Romantic Общие вопросы C/C++ 4 03.12.2009 21:51
Программе некорректно обрабатывает некоторые файлы Shturmer Помощь студентам 8 09.07.2009 20:34
Как отобразить в Мemo только некоторые строки из файла Norton Общие вопросы Delphi 3 21.03.2009 15:01