Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / помогите разобраться с кодом ассемблера / 13 сообщений из 13, страница 1 из 1
09.04.2011, 06:31
    #37207731
DarkElf
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите разобраться с кодом ассемблера
;Вычислить количество нечетных чисел в массиве из 15 целых чисел.
;----------------------------------------------------------------------------------
DATA SEGMENT
Array DB 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14
DATA ENDS
;------------------------------------------------------------------------------------
STK SEGMENT
DB 100 dup (?)
STK ENDS
ASSUME DS:DATA, SS: STK, CS: CODE
;--------------------------------------------------------------------------------------


CODE SEGMENT ;открыть сегмент кода

Start: ;начало программы
mov cx,15 ;обрабатывать пятнадцать элементов массива
mov si,offset Array ;ссылаемся на первый элемент массива
cld ;обнуляем флаг направления чтобы регистр SI увеличивался после операции LODSB
xor bx,bx ;обнуляем счетчик нечетных чисел

LoopInc: ;начало работы с элементом
lodsb ;читаем очередной элемент в регистр AL
shr al,1 ;сдвигаем вправо на один бит, в CF будет младший бит, для нечетного числа он будет равен 1
jnc noInc ;проверяем флаг CF
inc bl ;увеличиваем счетчик нечетных чисел
inc rezult ; добавлем к выводу на экран
jns m1 ; ссылаемся на вывод нечётных чисел
noInc: ;если четное, просто переходим к следующему элементу
loop LoopInc ;цикл увеличения счетчика
m1:
inc si
mov ax,4c00h
int 21h
end m1
code ends ;конец сегмента кода
end Start ;конец программы

ехешник создаётся но на экран ничего не выводит при запуске!
...
Рейтинг: 0 / 0
09.04.2011, 10:32
    #37207786
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите разобраться с кодом ассемблера
Сделал красивее.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
;Вычислить количество нечетных чисел в массиве из  15  целых чисел.
;----------------------------------------------------------------------------------
DATA SEGMENT
 Array DB  0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 
DATA ENDS
;------------------------------------------------------------------------------------
STK SEGMENT
 DB  100  dup (?)
STK ENDS
ASSUME DS:DATA, SS: STK, CS: CODE
;--------------------------------------------------------------------------------------


CODE SEGMENT ;открыть сегмент кода

Start: ;начало программы
 mov cx, 15  ;обрабатывать пятнадцать элементов массива
 mov si,offset Array ;ссылаемся на первый элемент массива
 cld ;обнуляем флаг направления чтобы регистр SI увеличивался после операции LODSB
 xor bx,bx ;обнуляем счетчик нечетных чисел

LoopInc: ;начало работы с элементом
 lodsb ;читаем очередной элемент в регистр AL
 shr al, 1  ;сдвигаем вправо на один бит, в CF будет младший бит, для нечетного числа он будет равен  1 
 jnc noInc ;проверяем флаг CF
 inc bl ;увеличиваем счетчик нечетных чисел
 inc rezult ; добавлем к выводу на экран
 jns m1 ; ссылаемся на вывод нечётных чисел
noInc: ;если четное, просто переходим к следующему элементу
 loop LoopInc ;цикл увеличения счетчика
m1:
 inc si 
 mov ax,4c00h
 int 21h
 end m1
 code ends ;конец сегмента кода
end Start ;конец программы
...
Рейтинг: 0 / 0
09.04.2011, 12:29
    #37207874
Siemargl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите разобраться с кодом ассемблера
DarkElfехешник создаётся но на экран ничего не выводит при запуске!
А должна?

10 ассемблерных команд заставь уж себя изучить и понять. В интернете справок полно
...
Рейтинг: 0 / 0
09.04.2011, 19:06
    #37208205
DarkElf
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите разобраться с кодом ассемблера
ты бы по делу писал а не то что я и так знаю! Есть нормальные люди сдесь? подскажите!
...
Рейтинг: 0 / 0
09.04.2011, 23:06
    #37208360
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите разобраться с кодом ассемблера
DarkElfты бы по делу писал а не то что я и так знаю! Есть нормальные люди сдесь? подскажите!
Скажу чесно я непомню коды операндов в АСМ. Но если почитать то что как ты используешь
int 21h то непонятно что-же ты собираешься делать? mov ah,2 ;mov dl,код символа... А у тебя что?
...
Рейтинг: 0 / 0
09.04.2011, 23:33
    #37208381
Siemargl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите разобраться с кодом ассемблера
mayton, у него спионеренный код. Что там в инт21 будет - ты проверь.
...
Рейтинг: 0 / 0
09.04.2011, 23:36
    #37208384
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите разобраться с кодом ассемблера
Да мне лениво. Пускай сам проверяет.
...
Рейтинг: 0 / 0
10.04.2011, 01:42
    #37208484
clihlt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите разобраться с кодом ассемблера
mov ax,4c00h
int 21h

- это досовый аналог ExitProcess.

А вообще оно даже не скомпилится поидее. Переменная rezult не обявлена.
...
Рейтинг: 0 / 0
10.04.2011, 06:59
    #37208527
st_st
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите разобраться с кодом ассемблера
> ехешник создаётся но на экран ничего не выводит при запуске!

а где код вывода на экран?
...
Рейтинг: 0 / 0
10.04.2011, 13:06
    #37208671
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите разобраться с кодом ассемблера
Тёмный эльф ушёл в свой лес.
...
Рейтинг: 0 / 0
14.05.2011, 17:00
    #37260742
Deniska1988
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите разобраться с кодом ассемблера
Добрый день уважаемые знатоки Assemblera помогите пожалуйста довести до ума данную программку чтобы она выводила результат на экран сам в ассемблере можно сказать ноль но программка очень нужа
...
Рейтинг: 0 / 0
18.05.2011, 11:20
    #37266623
Deniska1988
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите разобраться с кодом ассемблера
Ну что все знающие асема вымерли что ли!!!!!!!!
...
Рейтинг: 0 / 0
18.05.2011, 16:07
    #37267577
softmaker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите разобраться с кодом ассемблера
Все знающие гугля тоже.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
┌──────────────────────────┤DOS Fn 09H: Display  String ├────────────────────────┐
│                                                         Compatibility:  1 . 0 +  │
│ Expects: AH    09H                                                           │
│          DS:DX address  of  a  string  terminated  with  a '$' (ASCII 24H)         │
│          ──────────────────────────────────────────────────────────────────  │
│ Returns: none                                                                │
│          ──────────────────────────────────────────────────────────────────  │
│    Info: The  string , up  to  the terminating character '$'  is  sent  to  the      │
│          Standard Output.                                                    │
│                                                                              │
│          Backspaces are handled  as   in  the 02H Display Char  function .         │
│                                                                              │
│          The Normal  procedure   for  displaying a 'newline'  is   to  embed a       │
│          CR/LF pair (ASCII 0dH followed by ASCII 0aH)  in  the  string .         │
│                                                                              │
│          Strings containing '$' may be printed via 40H Write  File  (BX= 0 ).    │
│                                                                              │
│See Also: Character I/O Functions                                             │
│          DOS Functions                                                       │
│                                    -♦-                                       │
│                                                                              │
│                                                                              │
└──────────────────────────────────────────────────────────────────────────────┘
Надеюсь знающие англицкого не повымирали?
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / помогите разобраться с кодом ассемблера / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]