Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Колличество единиц в двоичном виде элементов масси 
:(
    Опции темы
frenzyice
Дата 2.12.2011, 23:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 2.12.2011

Репутация: нет
Всего: нет



Тема такая, с плачем и воем, но осилил написание первого задания по формированию массива


.model tiny
cseg segment
ASSUME CS:cseg,DS:cseg
org 100h
 
START:
mov SI,1
mov BL,2
mov DH,21
mov DL,3
mov CX,20
 
a1:
mov AX,SI
mul BL
add AL,DH
mov BH,AL
div DL
mov Ah,0
mov mas[SI-1],AL
inc SI
loop a1
 
mov BL,4
mov DH,21
mov DL,3
mov CX,10
 
a2:
mov AX,SI
mul BL
sub AL,DH
mov BH,AL
div DL
mov Ah,0
mov mas[SI-1],AL
inc SI
loop a2
 
int 20h
mas db 30 dup(?)
 
cseg ends
end start
 
 
 
 
По формулам посчитал, в дампе лежат нужные числа, все хорошо.

Но сколько не мучаю второе задание:
на основе этого массива сделать новый и туда засунуть сумму единиц(в двоичном представлении) для всех элементов моего массива. 

То есть надо как то сделать цикл, который будет доставать число из дампа, в двоичном виде(использовать как я понял нужно смещение) будет считать сколько в числе единичек. Потом следующее число и т.д. 

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

Может кто что-нибудь посоветовать?
PM MAIL   Вверх
iff
Дата 3.12.2011, 12:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Администратор
**


Профиль
Группа: Участник
Сообщений: 949
Регистрация: 23.3.2007

Репутация: нет
Всего: 16



Вопрос уже решался. Пользуйтесь поиском.


--------------------
DOS... Синей пеленой экран заполнил чистый DOS 
Мышь... Стала вдруг квадратной, потеряла форму мышь... 
Я разбил окно, девяностопятое мастдайное окно, 
И поставил DOS, и тогда увидел: Это счастье, — вот оно.  
PM MAIL WWW   Вверх
frenzyice
Дата 5.12.2011, 18:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 2.12.2011

Репутация: нет
Всего: нет



хоть убей 
не нашел

вот мой код последний
но не выводит и работает вторая часть или нет тоже хз(
может кто хоть ошибку глянет?

Код

.model tiny
 
  CSEG SEGMENT
ASSUME CS:CSEG, DS:CSEG, SS:CSEG
       org 100h
 
@1:    mov SI,1
       mov bl,2
       mov BP,0
       mov dh,21
       mov dl,3
       mov CX,20
 
@2:    mov AX,SI
       mul bl
       add AL,dh
       mov bh,al
       div DL
       mov ah,0
       mov MASSIV[SI-1],AL
       inc SI
       loop @2
 
       mov BL,4
       mov dh,21
       mov dl,3 
       mov cx,10
 
@3:    mov ax,si
       mul bl
       sub al,dh 
       mov bh,al
       div dl
       mov ah,0
       mov MASSIV[SI-1],al
       inc SI
       loop @3
 
       mov AH,9
       lea DX,NACHA
       int 21h
       mov CX,30
       lea BX,MASSIV
       call VIVOD
       int 20h
 
 
       
 
 VIVOD proc
       mov SI,0
       mov DL,10
vsimv: mov al,[bx+si]
       cmp al,0
      jge polog
      neg al
       mov ah,al
       mov al,'-'
       int 29h
       mov al,ah
POLOG: push BP
       mov BP,SP
VSTEK: mov AH,0 
       div DL
       add AH,'0'
       push AX
       cmp AL,0
       jne VSTEK
IKRAN: pop AX
       mov AL,AH
       int 29h
       cmp SP,BP
       jne IKRAN
       inc SI
       mov AL,' '
       int 29h
       pop BP
       loop vsimv
       ret
 VIVOD endp 
 
 @9: mov si, offset massiv
     mov     cx,30
@l0:    lodsb
        push    cx
        xor     ah,ah
        mov     cx,8
@l1:    rcl     al,1
        adc     ah,0
        loop    @l1
        mov     al,ah   
        pop     cx
mov massb[bp],bh
        loop    @l0
 
 
   outint proc
aam
add ax,3030h
mov dl,ah
mov dh,al
mov ah,02
int 21h
mov dl,dh
int 21h
ret
   outint endp 
mov ax,4c00h
int 21h
 
NACHA DB 0Ah,0Dh,'Pe3yJlbTaT MaccuBa N1:  $'
nachb db 0ah,0dh,'BTOPOGO:   $'
MASSIV DB 30 DUP(?)
massb db 30 dup(?)
CSEG ENDS
END @1

PM MAIL   Вверх
iff
Дата 5.12.2011, 20:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Администратор
**


Профиль
Группа: Участник
Сообщений: 949
Регистрация: 23.3.2007

Репутация: нет
Всего: 16





--------------------
DOS... Синей пеленой экран заполнил чистый DOS 
Мышь... Стала вдруг квадратной, потеряла форму мышь... 
Я разбил окно, девяностопятое мастдайное окно, 
И поставил DOS, и тогда увидел: Это счастье, — вот оно.  
PM MAIL WWW   Вверх
frenzyice
Дата 6.12.2011, 05:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 2.12.2011

Репутация: нет
Всего: нет



ыть?)

ну так то ничего не выводит)
а как массив в Ваш цикл засунуть?

радует то что прога не виснетsmile

Код

.model tiny

  CSEG SEGMENT
ASSUME CS:CSEG, DS:CSEG, SS:CSEG
       org 100h

@1:    mov SI,1
       mov bl,2
       mov BP,0
       mov dh,21
       mov dl,3
       mov CX,20

@2:    mov AX,SI
       mul bl
       add AL,dh
       mov bh,al
       div DL
       mov ah,0
       mov MASSIV[SI-1],AL
       inc SI
       loop @2

       mov BL,4
       mov dh,21
       mov dl,3 
       mov cx,10

@3:    mov ax,si
       mul bl
       sub al,dh 
       mov bh,al
       div dl
       mov ah,0
       mov MASSIV[SI-1],al
       inc SI
       loop @3

       mov AH,9
       lea DX,NACHA
       int 21h
       mov CX,30
       lea BX,MASSIV
       call VIVOD
       int 20h


       

 VIVOD proc
       mov SI,0
       mov DL,10
vsimv: mov al,[bx+si]
       cmp al,0
      jge polog
      neg al
       mov ah,al
       mov al,'-'
       int 29h
       mov al,ah
POLOG: push BP
       mov BP,SP
VSTEK: mov AH,0 
       div DL
       add AH,'0'
       push AX
       cmp AL,0
       jne VSTEK
IKRAN: pop AX
       mov AL,AH
       int 29h
       cmp SP,BP
       jne IKRAN
       inc SI
       mov AL,' '
       int 29h
       pop BP
       loop vsimv
       ret
 VIVOD endp 

mov DI,0F0H
mov CX, 010H
A10: Push CX
mov cx,8
A20: ROL BYTE PTR [DI],1
JC A30
inc AX
A30: Loop A20
inc DI
POP CX
loop A10

outint proc
aam
add ax,3030h
mov dl,ah
mov dh,al
mov ah,02
int 21h
mov dl,dh
int 21h
outint endp
     
mov ax,4c00h
int 21h

NACHA DB 0Ah,0Dh,'Pe3yJlbTaT MaccuBa N1:  $'
nachb db 0ah,0dh,'BTOPOGO:   $'
MASSIV DB 30 DUP(?)
massb db 30 dup(?)
CSEG ENDS
END @1

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm для Windows/DOS"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm для Windows/Dos | Следующая тема »


 




[ Время генерации скрипта: 0.0438 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.