08.10.2008, 10:12
общий
это ответ
Здравствуйте, Магдин Борис Николаевич!
Вот, посмотрите программу в приложении
Кое-какие комментарии написал, но не знаю достаточные ли... не знаю Вашего уровня
Если что не понятно будет - спрашивайте в минифоруме
--
ЗЫ: элементами массива определил байты
Приложение:
.model tiny
.code
org 100h
start:
mov ax, 3
int 10h
lea si, ar
mov cx, ar_size
cld
@@1:
lodsb
mov bl, al ; б®еа Ё¬ ¤«п ба ўҐЁп
mov di, si ; § Ї®¬Ё Ґ¬ ¤аҐб ¤«п ба ўҐЁп
cbw
CALL writeWORD_DEC
push cx
push si
mov cx, ar_size
lea si, ar ; б з « Їа®б¬ ваЁў Ґ¬
@@2:
lodsb
cmp al, bl
jne @@3 ; Ґ а ўл
; а ўл
cmp si, di
je @@3 ; б ¬ б б®Ў®© - б«Ґ¤гойЁ© Їа®ўҐа塞
jmp @@4 ; Ґ в®в ¦Ґ, § зЁв, Ґ Ј®¤Ёвбп
@@3:
LOOP @@2
; Їа®ўҐаЁ«Ё ўбҐ - ®¤Ё Є®ўле Ґв
mov al, bl ; ўбЇ®¬Ё Ґ¬, Є Є®© Ў ©в Їа®ўҐап«Ё
cbw
add summ, ax
@@4:
pop si
pop cx
mov al, ' '
int 29h
int 29h
LOOP @@1
lea dx, msg_summ
mov ah, 9
int 21h
mov ax, summ
CALL writeWORD_DEC
lea dx, PressKey
mov ah,9
int 21h
xor ax, ax
int 16h
int 20h
PressKey db 13,10,'Press any key ...$'
msg_summ db 13,10,'‘㬬 = $'
summ dw 0
; Ё§¬Ґп©вҐ ¬ ббЁў ar - ¤®Ў ў«п©вҐ, гЎЁа ©вҐ - ¤«Ё ҐЈ® ‚ ЃЂ‰’Ђ• ®ЇаҐ¤Ґ«Ёвбп ўв®¬ вЁзҐбЄЁ
; Ґб«Ё 㦮 Ўг¤Ґв б«®ў (dw) ЁбЇ®«м§®ў вм, ⮠㦮 Ўг¤Ґв ¤Ґ«Ёвм 2,
; зв®Ўл Ї®«гзЁвм зЁб«® н«Ґ¬Ґв®ў ¬ ббЁў
ar db 1,2,2,3 ; «Ё§Ёа㥬 ¬ ббЁў Ў ©в
ar_size equ $ - ar ; в Є " ўв®¬ вЁзҐбЄЁ" ®ЇаҐ¤Ґ«пҐ¬ ¤«Ёг ¬ ббЁў
writeWORD_DEC proc
push ax
push bx
push cx
push dx
mov bx, 10
xor cx, cx
@@_next:
xor dx, dx
div bx
inc cx
push dx
or ax, ax
jnz @@_next
@@_next_:
pop ax
add al, '0'
int 29h
LOOP @@_next_
pop dx
pop cx
pop bx
pop ax
ret
writeWORD_DEC endp
end start