Вычислить сумму элементов массива, расположенных между первым и последним положительным элементами - Assembler
Формулировка задачи:
дан массив, состоящий N целых элементов. Вычислить сумму элементов массива, расположенных между первым и последним положительным элементами. Массив и количество элементов N вводятся с клавиатуры.
вот премер, под типу моей задачи
Include io.asm Sseg SEGMENT STACK DB 1000 DUP(?) ;ЋЃ‹Ђ‘’њ ‘’…ЉЂ Sseg ENDS Dseg SEGMENT N dw 10 DUP(?) X dw (?) Q dw (?) W dw (?) STR1 db 'Vvedite straky iz 10 chisel: $' STR2 db 'Summa: $' STR3 db 'pervyy polozhitelnyy element: $' STR4 db 'posledniy polozhitelnyy element: $' STR5 db 'Vvedonnyy massiv: $' Dseg ENDS Cseg SEGMENT ASSUME CS:Cseg,DS:Dseg,SS:Sseg Start: MOV AX,Dseg ;€Ќ€–€Ђ‹€‡Ђ–€џ ‘…ѓЊ…Ќ’Ђ „ЂЌЌ›• MOV DS,AX MOV AX,0 MOV DX,0 LEA DX,STR1 ;ўлў®¤ бва®ЄЁ OUTSTR NEWLINE ;ЇҐаҐе®¤ ** *®ўго бва®Єг MOV SI,0 MOV CX,10 ;ЉЋ‹€—…‘’‚Ћ ‘€Њ‚Ћ‹Ћ‚ ‚ ‘’ђЋЉ… M1: ININT N[SI] ;‘Ћ•ђЋЌ…Ќ€… ‘€Њ‚Ћ‹Ђ ADD SI,2 ;㢥«ЁзЁў*Ґ¬ бзҐвзЁЄ LOOP M1 ;‡Ђ–€Љ‹€‚ЂЌ€… MOV AX,0 MOV DX,0 LEA DX,STR5 OUTSTR NEWLINE MOV SI,0 MOV CX,10 Q1: ;ўлў®¤ ¬*бЁў* OUTINT N[SI],4 ADD SI,2 LOOP Q1 NEWLINE MOV AX,0 MOV DX,0 MOV SI,0 MOV CX,10 M2: ;Ї®ЁбЄ ЇҐаў®Ј® Ї®«®¦ЁвҐ«м*®Ј® MOV AX,N[SI] MOV Q,SI CMP DX,AX JG A0 ADD SI,2 LOOP M2 A0: ADD Q,2 MOV AX,0 MOV DX,0 MOV DI,18 MOV CX,10 M3: ;Ї®ЁбЄ Ї®б«Ґ¤*ҐЈ® Ї®«®¦ЁвҐ«м*®Ј® MOV AX,N[DI] MOV W,DI CMP DX,AX JL A1 SUB DI,2 LOOP M3 A1: MOV AX,0 MOV DX,0 LEA DX,STR3 OUTSTR OUTWORD Q NEWLINE MOV AX,0 MOV DX,0 LEA DX,STR4 OUTSTR OUTWORD W NEWLINE MOV SI,Q MOV DI,W CMP SI,DI ;ЇҐаҐе®¤ Ґб«Ё ЇҐаўл© Ё Ї®б«Ґ¤*Ё© Ї®«®¦ЁвҐ«м*л© н«Ґ¬Ґ*в б®ўЇ®¤*Ґв JGE A2 MOV AX,0 MOV AX,N[SI] ADD SI,2 M4: CMP SI,DI ;ЇҐаҐе®¤ Ґб«Ё ўбҐ н«Ґ¬Ґ*вл б«®¦Ґ*л JG A3 ADD AX,N[SI] ;б㬬* ADD SI,2 JMP M4 A2: ;ўлў®¤ Ґб«Ё ЇҐаўл© Ё Ї®б«Ґ¤*Ё© Ї®«®¦ЁвҐ«м*л© н«Ґ¬Ґ*в б®ўЇ®¤*Ґв MOV AX,0 MOV DX,0 LEA DX,STR2 OUTSTR OUTWORD N[SI] A3: ;ўлў®¤ б㬬л MOV X,AX MOV AX,0 MOV DX,0 LEA DX,STR2 OUTSTR OUTint X MOV Ah,1 int 21h MOV AX,4C00H ;Џ…ђ…„Ђ—Ђ “ЏђЂ‚‹…Ќ€џ Ћ‘ INT 21H Cseg ENDS END Start
Решение задачи: «Вычислить сумму элементов массива, расположенных между первым и последним положительным элементами»
textual
Листинг программы
Include io.asm
Объяснение кода листинга программы
- Включаем файл io.asm
- Переменная
n
инициализируется значением 0 - Переменная
sum
инициализируется значением 0 - Переменная
i
инициализируется значением 0 - Переменная
num
инициализируется значением 0 - Цикл while для прохода по всем элементам массива
- Внутри цикла проверяем значение переменной
num
- Если
num
больше 0, то добавляем его к переменнойsum
- После окончания цикла выводим значение переменной
sum
- Конец программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д