Часики [ASM]

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by yeti, 17 Aug 2007.

  1. yeti

    yeti Elder - Старейшина

    Joined:
    27 Dec 2006
    Messages:
    179
    Likes Received:
    234
    Reputations:
    346
    Народ, что-то мне пришла в голову бредовая идея.. сделать простейшие часики на asm'е... Написать самой. для практики.. а то как собака - вроде и понимаешь, а сделать ничего не можешь. надо это исправлять. погуглила.. нашла для процессора .486p - понятно, что это не то... Можно конечно переделать.. но я не вникала особо в архитектуру. Точнее не настолько, чтобы самой грамотно сделать. Так что напортачу 100% Может кто-нибудь обьяснить по какому вообще ПРИНЦИПУ все это строится? всмсыле не сам код, а порядок и по какой вообще логике идет все это. а то сижу тут, часа 3 голову ломаю..

    Просто думаю, что код и сама смогу составить.. А вот ЧТО ИМЕННО там надо делать, можно поподробней плз? А тупо копировать код не хотелось бы. Важен сам принцип.. Кто сможет помочь?

    ПС: сначала дельные мысли, потом флудите и стебитесь сколько хотите.. Мне пофиг..
    ППС: хотя бы в кодинге не оффтопьте.. как людей прошу..
     
    1 person likes this.
  2. Ni0x

    Ni0x Elder - Старейшина

    Joined:
    27 Aug 2006
    Messages:
    338
    Likes Received:
    157
    Reputations:
    37
    самый простой вариант получать время винапи функцией GetLocalTime(), тебе понадобится структура SYSTEMTIME(переменные wHour, wMinute, wSecond).
    Code:
    SYSTEMTIME sm;
    while(true)
    {
    GetLocalTime(&sm);
    //выводим текущие значения
    ...
    //Cпим секунду
    Sleep(1000);
    }
    
    Это просто принцип.
     
    #2 Ni0x, 17 Aug 2007
    Last edited: 17 Aug 2007
    2 people like this.
  3. yeti

    yeti Elder - Старейшина

    Joined:
    27 Dec 2006
    Messages:
    179
    Likes Received:
    234
    Reputations:
    346
    хмм. как я не догадалась. а то мудрила чето с прерываниями.. с таймерами.. а на деле.. хмм. надо будет разобраться.

    ПС: просила же код не давать)) так неинтересно будет))
     
  4. Alexsize

    Alexsize Fail

    Joined:
    17 Sep 2005
    Messages:
    1,771
    Likes Received:
    1,221
    Reputations:
    704
    Ну начни для начала не с асма а с си. Примени там эту апишку, а потом, когда поймешь, что почем, напиши и на асме!
     
    1 person likes this.
  5. yeti

    yeti Elder - Старейшина

    Joined:
    27 Dec 2006
    Messages:
    179
    Likes Received:
    234
    Reputations:
    346
    Alexsize, я прошу именно на асме. то есть я на СИ не знаю ничего ВООБЩЕ. и в данный момент, мне интересней асм.. можно было вообще на пхп сделать и не заморачиваться. а в чем тогда вся прелесть? на асме я итак напишу, без С
     
    1 person likes this.
  6. Ni0x

    Ni0x Elder - Старейшина

    Joined:
    27 Aug 2006
    Messages:
    338
    Likes Received:
    157
    Reputations:
    37
    Alexsize, тебе не всеравно? Интересует ее асм, пусть пишет на нем, а ложные выдумки, что асм сложнее С оставьте при себе.
     
  7. Alexsize

    Alexsize Fail

    Joined:
    17 Sep 2005
    Messages:
    1,771
    Likes Received:
    1,221
    Reputations:
    704
    Курил? Я что писал что асм сложнее? Чего ты не по теме влазиешь то? Помог ей чем?
    To Shnurovka: клац
     
  8. biophreak

    biophreak Elder - Старейшина

    Joined:
    3 Aug 2007
    Messages:
    348
    Likes Received:
    63
    Reputations:
    15
    Хм...как одно из решений:
    1. Напиши на си(не важно, использешь ты апи или нет).
    2. Отруби оптимизацию в компиляторе и линковщике.
    3. Дизассемблируй что получилось - и посмотри....если знаешь основы ассемблера - все поймешь!

    ЗЫЖ Не ругай по почкам плз :)
     
    1 person likes this.
  9. yeti

    yeti Elder - Старейшина

    Joined:
    27 Dec 2006
    Messages:
    179
    Likes Received:
    234
    Reputations:
    346
    biophreak, кажется я ясно написала, что на С я НЕ ПИШУ. ))) пинать само собой не буду)) потому что без всякого стеба дал совет.. Что уже прогресс.. На ачате-то

    кароч я поняла все. на днях займусь. а то чет слишком устала...

    ПС: если у кого есть еще дельные предложения безо всяких там С и т.д, то постите - мне интересно сделать разными способами.. Не помешает в любом случае..


    Alexsize, да, я вижу программу-часы. но она под дос.. а учить лучше что-то одно. Но все равно спасибо..
     
  10. biophreak

    biophreak Elder - Старейшина

    Joined:
    3 Aug 2007
    Messages:
    348
    Likes Received:
    63
    Reputations:
    15
    Насчет принципа - имхо все просто!
    скелет программы(типа модели, заголовков, либ - пропускаем :))
    1. Создаешь "цикл" (хотя как такового понятия цикл в асме нет, но все же :))
    2. Принтишь время. (вызываешь ту же WinAPI ф-ию для показа времени)
    4. Делешь задержку в 1с
    5. Выполняешь пункт 2, очищая экран(если надо - возвращаешься в ту позицию, где прошлый раз принтили время) =)

    Вроде так...это для консоли...
    Советую писать на fasm - ИМХО наиболее удобный из ассемблеров!
    В нем есть прототипы почти всех WinAPI ф-ий...
     
    1 person likes this.
  11. yeti

    yeti Elder - Старейшина

    Joined:
    27 Dec 2006
    Messages:
    179
    Likes Received:
    234
    Reputations:
    346
    biophreak, я и на масм не жалуюсь вроде..
     
    2 people like this.
  12. biophreak

    biophreak Elder - Старейшина

    Joined:
    3 Aug 2007
    Messages:
    348
    Likes Received:
    63
    Reputations:
    15
    Просто плюс fasma в том что на нем удобно писать макросы - очень помогает при дальнейшей работе...

    ЗЫЖ И убедился на себе, что майкрософтовский оптимизатор - вещь совершенно не нужная и, извините, дурная :))
    ЗЗЫЖ А убедился - когда мне надо было с TASM на MASM перенести код - код перенес, он работал, но работал неправильно(то-ли в масме другие представления о регистрах, толи хз) - забил на идею, перенес на фасм - все заработало с минимальными изменениями :))
     
    #12 biophreak, 17 Aug 2007
    Last edited: 17 Aug 2007
  13. GoreMaster

    GoreMaster Elder - Старейшина

    Joined:
    28 May 2007
    Messages:
    119
    Likes Received:
    32
    Reputations:
    4
    Значит ты чайник,сори ничего личного...
    Начинать кодить на асме надо без использования макросов,чтобы понять принцип...
     
  14. biophreak

    biophreak Elder - Старейшина

    Joined:
    3 Aug 2007
    Messages:
    348
    Likes Received:
    63
    Reputations:
    15
    Согласен...и с первым утверждением и со вторым :)
    АСМ от меня далеко...я предпочитаю языки более высокого уровня...да и не надо как то было! :)

    ЗЫЖ Вообще как-то к продукции мелкомягких отношусь с недоверием...
    ЗЗЫЖ Надо учиться кодить без макросов, но - согласись с ними удобнее, особенно если проект большой :)
     
  15. yeti

    yeti Elder - Старейшина

    Joined:
    27 Dec 2006
    Messages:
    179
    Likes Received:
    234
    Reputations:
    346
    особенно тем, кто кодить-то особо не умеет =\

    мдее. типа меня.. НО учиться никогда не поздно.. честно говоря, пока что меня все устраивает. перейти можно будет и потом... если потребуется
     
    1 person likes this.
  16. dmnt

    dmnt Elder - Старейшина

    Joined:
    6 Jun 2007
    Messages:
    89
    Likes Received:
    36
    Reputations:
    15
    fasm, C .... masm32! ;)
    этого должно хватить c:\masm32\EXAMPLE8\JACTS\
     
  17. NetMan

    NetMan Elder - Старейшина

    Joined:
    9 Feb 2004
    Messages:
    121
    Likes Received:
    37
    Reputations:
    34
    Shnurovka > см. в MSDN функцию SetTimer и сообщение WM_TIMER...
     
    1 person likes this.
  18. W!z@rD

    W!z@rD Борец за русский язык

    Joined:
    12 Feb 2006
    Messages:
    973
    Likes Received:
    290
    Reputations:
    43
    хек не понимаю... Девчонка интересуется... и что?? =?
    или тяга к знаниям уже не в моде?
    уважайте чужие интересы... =/
    ибо если она девушка значит у нее нет конструктивно-кодерского мышления?!!
    не стоит так... ибо еще не известно... Шну может знать больше чем некоторые мемберы ачата...

    а вообще шну msdn.com, rsdn.ru, wasm.ru
     
    1 person likes this.
  19. biophreak

    biophreak Elder - Старейшина

    Joined:
    3 Aug 2007
    Messages:
    348
    Likes Received:
    63
    Reputations:
    15
    насчет доков - forum.vingrad.ru
    и не только по асму :)
     
  20. _Great_

    _Great_ Elder - Старейшина

    Joined:
    27 Dec 2005
    Messages:
    2,032
    Likes Received:
    1,119
    Reputations:
    1,139
    Shnurovka, KEZ, inv, Alexsize - выяснения отношений в ПМ. В следующий раз модераторы, которые оффтопят, получат минус - в основном это касается Alexsize.
    Надеюсь, я ясно выражаюсь.

    По теме - нафига таймеры использовать, GetLocalTime/Sleep вполне пойдет.