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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.10.2015, 11:27   #1
artem55555p
Пользователь
 
Регистрация: 21.08.2013
Сообщений: 21
По умолчанию Ассемблер

Дан массив из 9 байт. Рассматривая его как массив из 72 бит, посчитать число переходов между нулями и единицами.
artem55555p вне форума Ответить с цитированием
Старый 24.10.2015, 11:37   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Попытки? Наработки?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 24.10.2015, 11:38   #3
artem55555p
Пользователь
 
Регистрация: 21.08.2013
Сообщений: 21
По умолчанию

Код:
code segment
 assume cs:code,ds:data
 begin:
     mov ax, data
     mov ds, ax
     ;mov cx,4
     xor ax,ax
     xor si,si
     xor bh,bh
     xor bl,bl
     mov cx, 9
     P:
     mov fff, cx
         mov al, mass[si] ;take 8 bit
         mov cx,8
         mov dl,8
         O:
         push ax
             push cx         
                     dec dl
                     mov cl, dl
                     shr al, cl
                     and al, 00000001B
                     xor bl, al
                     add bh,bl
                     mov bl, al
             pop cx
         pop ax
         loop O
         inc si      
     mov cx, word ptr fff
     loop P
 
     ; перевод в 16 систему - можете не обращать внимания,работает 100%, это проверено
 
     mov cx,4
     mov bl,12
     mov si,0
     xor ax,ax
     mov ax,bh
     k1:
         push ax
         push cx
             mov cl,bl
             shr ax,cl
         pop cx 
         and ax,000fh
     
         cmp al,9
         ja m4
             add al,30h
         jmp a3
         m4: add al,37h
         a3:mov byte ptr digit+[si],al   
         sub bl,4
         inc si
         pop ax
     loop k1
     
     mov ax, data
     mov ds, ax
     mov dx, offset digit
     mov ah, 09h
     int 21h 
     
     mov ah, 4ch
     mov al,0
     int 21h
 code ends
 data segment use16
     mass db 1h,2h,3h,4h,5h,6h,7h,8h,9h
     digit  db 0,0,0,0,'h$'
     ggg db '1$'
         fff db 0
 data ends
 stk segment stack
 db 256 dup(0)
 stk ends
 end begin
чето пытался сделать, но не вышло....

Последний раз редактировалось Stilet; 24.10.2015 в 11:58.
artem55555p вне форума Ответить с цитированием
Старый 24.10.2015, 12:55   #4
artem55555p
Пользователь
 
Регистрация: 21.08.2013
Сообщений: 21
По умолчанию

Можно как-то по другому реализовать?
artem55555p вне форума Ответить с цитированием
Старый 24.10.2015, 13:24   #5
artem55555p
Пользователь
 
Регистрация: 21.08.2013
Сообщений: 21
По умолчанию

Код:
data segment 'data' 
mas db 4,70,58,55,1,2,8,7,80
cflag db 0
data ends 
code segment 'code' 
 assume ds: data, cs:code 
start: mov ax,data 
mov AX,CS
    mov DS,AX
 
    mov DI,offset mas
    mov SI,DI
    add SI,9
    mov AL,byte ptr [DI]
    mov cflag,AL
    xor BX,BX
 
nextByte:
    mov AL,[DI]
    mov AH,cflag
    ror AH,1
    xor AH,AL
    test AH,10000000b
    jz ctbIkO
    inc BX
ctbIkO:
    mov DL,AL
 
    shr DL,1
    jc Scfl
    mov cflag,byte ptr 0
    jmp tuda
  Scfl:
    mov cflag,byte ptr 1
 tuda:
 
    xor AL,DL
    mov CL,1
  vse:
    test AL,CL
    jz nextEl
    inc BX
nextEl:
    shl CL,1
    jnc vse
 
    inc DI
    cmp DI,SI
    jne nextByte
 
    mov AX,4c00h
    int 21h
code ends 
 end start

вроде сделал, кому не сложно, проверьте

Последний раз редактировалось Stilet; 24.10.2015 в 13:33.
artem55555p вне форума Ответить с цитированием
Старый 24.10.2015, 13:35   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А я примерно так себе это представляю:
Код:
 xor ax,ax
 xor dx,dx
 xor bx,bx
 mov cx,8

 mov si,a
for1:
 push cx
 mov al,[si]
 mov ah,al
 shr ah,1
 xor al,ah
  cmp al,1
   jne next1
   inc bx
  next1:

 mov cx,7
 for:
  cmp al,1
  jz next
  inc bx
  next:
  shr al,1
 loop for
 pop cx
 inc si
loop for1
В BX результат.

Могу ошибаться.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 24.10.2015, 15:52   #7
artem55555p
Пользователь
 
Регистрация: 21.08.2013
Сообщений: 21
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А я примерно так себе это представляю:
Код:
 xor ax,ax
 xor dx,dx
 xor bx,bx
 mov cx,8

 mov si,a
for1:
 push cx
 mov al,[si]
 mov ah,al
 shr ah,1
 xor al,ah
  cmp al,1
   jne next1
   inc bx
  next1:

 mov cx,7
 for:
  cmp al,1
  jz next
  inc bx
  next:
  shr al,1
 loop for
 pop cx
 inc si
loop for1
В BX результат.

Могу ошибаться.

т.е. так:
data segment 'data'
mas db 4,70,58,55,1,2,8,7,80
cflag db 0
data ends
code segment 'code'
assume ds: data, cs:code
start: mov ax,data
xor ax,ax
xor dx,dx
xor bx,bx
mov cx,8

mov si,a
for1:
push cx
mov al,[si]
mov ah,al
shr ah,1
xor al,ah
cmp al,1
jne next1
inc bx
next1:

mov cx,7
for:
cmp al,1
jz next
inc bx
next:
shr al,1
loop for
pop cx
inc si
loop for1
int 21h
code ends
end start


http://clip2net.com/s/3pjI59M ????
artem55555p вне форума Ответить с цитированием
Старый 26.10.2015, 11:00   #8
artem55555p
Пользователь
 
Регистрация: 21.08.2013
Сообщений: 21
По умолчанию

Аы можете объяснить то, что вы написали? И у меня не работает это(
artem55555p вне форума Ответить с цитированием
Старый 27.10.2015, 10:27   #9
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,139
По умолчанию

artem55555p,
посмотри здесь
Mikl___ вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ассемблер *Fantom* Помощь студентам 1 13.06.2013 17:58
Ассемблер Feelnoobskill Фриланс 1 16.04.2013 12:22
Ассемблер в С++ JeyKip Общие вопросы C/C++ 3 05.11.2010 14:34
Ассемблер Artur95 Помощь студентам 2 11.09.2009 22:30
Ассемблер Girrl666 Помощь студентам 4 06.09.2009 14:27