IPB

Здравствуйте, гость ( Вход | Регистрация )

> Правила форума

Все ссылки на сторонние ресурсы, за исключением офсайтов программ, должны оформляться с помошью тега скрытого текста - [hide=1]Ссылка[/hide]

> Нужна помощь по ассемблеру!!!!
Lex
22.01.2008 - 05:19
Сообщение #1


No Avatar
Member
**
Группа: Full member
Сообщений: 28
Регистрация: 1.04.2003
Из: г. Запорожье

Пользователь №: 9111




Help me All
Немогу помочь сыну с решением задачи (ну не силен я в ассемблере)

Задача на применение
Применение логических инструкций

Дан массив из 5 байт. Рассматривая его, как массив из восьми пяти-
битных слов, посчитать количество слов с чётным числом единиц в слове.


--------------------
https://t.me/pump_upp
User is offlineProfile Card PM
Go to the top of the page
+
 
Reply to this topicStart new topic
Ответов(1 - 1)
ManHunter
23.01.2008 - 04:28
Сообщение #2



Perm Crack Laboratory
Group Icon
Группа: Модераторы
Сообщений: 633
Регистрация: 7.01.2004
Из: Пермь Великая

Пользователь №: 28606




решение на FASM:

Код
format PE GUI 4.0
entry start

include 'c:\program files\fasm\include\win32a.inc'

section '.data' data readable writeable

xbytes  db 00111000b; Данные для задачки
        db 11111110b
        db 01010101b
        db 00001001b
        db 00000110b

mask    db 'Count: %i',13,10,13,10
        db '%i%i%i%i%i - %i%i%i%i%i - %i%i%i%i%i - %i%i%i%i%i',13,10
        db '%i%i%i%i%i - %i%i%i%i%i - %i%i%i%i%i - %i%i%i%i%i',13,10,0

title   db 'Solution',0
tmp     rb 100

section '.code' code readable executable
start:
        mov     esi,xbytes+4
loc_1:
        lodsb
        mov     ecx,8
loc_2:
        xor     edx,edx
        test    al,00000001b
        jz      loc_3
        inc     edx
loc_3:
        push    edx
        shr     al,1
        loop    loc_2

        dec     esi
        dec     esi
        cmp     esi,xbytes
        jnb     loc_1

        xor     eax,eax
        xor     esi,esi
loc_4:
        xor     edi,edi
        mov     ecx,5
loc_5:
        add     edi,[esp+eax*4]
        inc     eax
        loop    loc_5

        test    edi,edi
        jz      loc_6
        test    edi,1
        jnz     loc_6
        inc     esi
loc_6:
        cmp     eax,40
        jb      loc_4

        invoke  wsprintf,tmp,mask,esi
        add     esp,12+(8*5*4)

        invoke  MessageBox,HWND_DESKTOP,tmp,title,MB_OK
        invoke  ExitProcess,0

section '.idata' import data readable writeable

library kernel32,"KERNEL32.DLL",\
        user32,"USER32.DLL"

include "c:\Program Files\FASM\INCLUDE\apia\kernel32.inc"
include "c:\Program Files\FASM\INCLUDE\apia\user32.inc"


исходник и скомпилированный exe под этот пример в аттаче. камменты, извини, лениво было расставлять. пусть сын сам разбирается, код несложный


Прикрепленные файлы
Прикрепленный файл  solution.zip ( 1.25 килобайт ) Количество скачиваний: 168


--------------------
Я против пиратства! Нападать на корабли - это плохо!
Blog. Just Blog --> www.manhunter.ru
User is offlineProfile Card PM
Go to the top of the page
+
Реклама

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0 -

 



- Текстовая версия Сейчас: 29.03.2024 - 00:22
]]> ]]>
]]> Яндекс.Метрика ]]>