Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Ассемблер: сумма элементов

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

YuliyaMc

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
[more]   Здравствуйте. У меня такая задача.  
Подсчитать в массиве количество элементов, равных введённому N
 
Я решила, но вывод на экран не правильный.
Положительное+положительное=положительное - выводит правильно.
Положительное+отрицательное=положительное - выводит правильно
Отрицательное+положительное= отрицательное -выводит НЕ правильно  
Отрицательное+отрицательное= отрицательное -выводит НЕ правильно  
Помогите, пожалуйста, разобраться. В emu8086 все это делаю
 

Код:
 
 
; You may customize this and other start-up templates;
; The location of this template is c:\emu8086\inc\0_com_template.txt
 
org 100h
 
; add your code here
cr= 0dh   ;kod simvola, vozvrat karetki(klavishi Enter)
 
lf= 0ah    ;perevod stroki
 
 
 
 
 
begin:
 
 
lea dx,zapros      ;soo
mov ah,9
int 21h
 
 
mov cx,3
 
mov si,0
 
start1:
push cx
push si
 
mov ah,0ah
lea dx,string
int 21h              ;vvod stroki
 
 
xor ax,ax
 
lea si,string+2
 
;ñèìâîë ââåäåííîé ñòðîêè
 
mov negflag, ax
 
cmp byte ptr [si],'-'
 
jne m2
 
not negflag
 
 
 
inc si
 
jmp m
 
m2:
cmp byte ptr[ si],'+'
 
jne m
 
inc si
 
 
 
m:
cmp byte ptr [si],cr
 
 
 
je ex1
 
cmp byte ptr[ si], '0'
 
 
 
 
 
cmp byte ptr[si],'9'
 
 
 
ja err
 
mov bx,10
 
 
 
mul bx
 
sub byte ptr[si],'0'
 
add al,[si]
 
adc ah,0
 
inc si
 
jmp m
 
 
 
Err: lea dx,errmsg
 
mov ah,9
 
int   21h
 
jmp  start1
 
ex1:
cmp   negflag,0
 
je ex
 
neg ax
 
ex:
 
mov si,0
pop si
pop cx
 
 
mov mas[si],al
 
inc si
mov ah,9
lea dx, null
int 21h
loop start1
 
start2:
mov bx,0
 
lea bx, mas
mov cx, 3  
mov ax,0
 
cikl:
 
add ax, [bx]
 
inc bx
 
loop cikl
 
mov cl,al       ;kopiruem
 
xor ax,ax
 
mov ah,9           ;vivod na ekran soobsheniya
lea dx, rez
int 21h
 
xor ax,ax
 
mov ax,cx          ;kopiruem
 
 
 
;vivod
 
push    -1       ;soxranim priznak kontsa chisla v steke
 
mov     cx,10    ;pomeshaem v register delitel
 
cmp ax, 0  ;proveryaem znak chisla
 
jge l   ;esli + , to perexodim
 
neg ax       ;inache menyaem znak chisla
 
push      ax   ;sozranyaem chislo pered vizovom funktsii
 
mov ah, 2             ;vivod na ekran znaka "-"
mov      dl, '-'
int        21h
 
pop ax      ;pomeshaem chislo v ax
 
L:         xor     dx,dx     ;otshishaetsya registr
 
div        cx   ;delim chislo v ax na 10:chastnoe v ax, ostatok v dx
 
 
 
push    dx    ;pomeshaem v register
 
cmp     ax,0     ; ostalsya 0?
 
jne        L  ;esli net, to prodoljaem
 
mov     ah,2h
 
L2:       pop      dx
 
cmp     dx,-1
 
je          e    ;esli ravno, to perexodim
 
add      dl,'0'    ;preobrazovanie
 
int        21h    ; vivod
 
jmp      L2     ;prodoljit
 
e:        mov     ah,0
int 16h
 
 
 
 
 
ret
 
 
zapros                 db 'Vvedite element',cr,lf,'$'
zapros1                 db 'summa',cr,lf,'$'
ravni               db 'Eto kvadrat',cr,lf,'$'
neravni                 db 'Eto pryamougolnic',cr,lf,'$'
 
string                   db 255, 0, 255 dup (?)
 
errmsg                 db 'Nedopustim simvol',cr,lf,'$'
 
null db 13,10, '$'
negflag dw ?
 
rez               db 'Rezultat slojeniya',cr,lf,'$'
mas db 3 dup (?)
i db 0
len dw $-mas
 
 
end begin
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Всего записей: 2 | Зарегистр. 24-04-2015 | Отправлено: 00:22 24-04-2015
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Ассемблер: сумма элементов


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru