В заданной конечной последовательности целых чисел найти сумму элементов кратных 7 - Assembler

Узнай цену своей работы

Формулировка задачи:

В заданной конечной последовательности целых чисел найти сумму элементов кратных 7.Помогите пожалуйста(

Решение задачи: «В заданной конечной последовательности целых чисел найти сумму элементов кратных 7»

textual
Листинг программы
org  100h
jmp  start
 
result  db  'Result: $'
array   db  100,059,001,026,077,158
        db  074,219,015,003,070,123
        db  017,066,049,011,207,046
        db  028,056,007,055,081,035
length  =   $ - array     
summa   dw  0
 
start:
   mov   si,array        ;
   mov   cx,length       ;
   mov   bx,7            ; делитель
   xor   dx,dx           ; место под сумму
@@:                      ;
   xor   ax,ax           ;
   lodsb                 ;
   mov   dl,al           ;
   div   bl              ; проверяем на кратность
   or    ah,ah           ; есть остаток?
   jnz   next            ;
   add   [summa],dx      ;
next:                    ;
   loop  @b              ;
                         ;
   mov   ah,9            ; выводим результ на экран
   mov   dx,result       ;
   int   21h             ;
   mov   ax,[summa]      ;
   mov   bx,10           ; 10-тичная СС
   call  HEX2ASC         ;
 
exit:
   xor   ax,ax           ; выход!
   int   16h             ;
   int   20h             ;
 
;ннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннн
HEX2ASC:                 ; Функция переводит числа в символы
   PUSHA                 ; Вход:  АХ = число, BX = система счисления
   XOR   CX,CX           ;
isDiv:                   ;
   XOR   DX,DX           ;
   DIV   BX              ;
   PUSH  DX              ;
   INC   CX              ;
   OR    AX,AX           ;
   JNZ   isDiv           ;
isOut:                   ;
   POP   AX              ;
   CMP   AL,9            ;
   JLE   noHex           ;
   ADD   AL,7            ;
noHex:                   ;
   ADD   AL,30h          ;
   INT   29h             ;
   LOOP  isOut           ;
   POPA                  ;
RET                      ;

Оцени полезность:

7   голосов , оценка 3.714 из 5
Похожие ответы