Посчитать количество байт, число единиц в которых не превышает 6 - Assembler

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

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

Дан массив из 10 байт. Посчитать количество байт, число единиц в которых не превышает 6.ПОЖАЛУЙСТА ПОМОГИТЕ

Решение задачи: «Посчитать количество байт, число единиц в которых не превышает 6»

textual
Листинг программы
  1. model tiny,pascal
  2. .code
  3. org 100h
  4. szMas   equ 10
  5. start:  mov cx,szMas
  6.     xor di,di
  7. @@01:   call    inpNumber,di
  8.     mov dbMas[di],al
  9.     inc di
  10.     loop    @@01
  11.  
  12.     xor di,di
  13.     xor bx,bx
  14.     mov cx,szMas
  15. @@02:   mov al,dbMas[di]
  16.     xor dx,dx
  17.     push    cx
  18.     mov cx,8
  19. @@03:   shr al,1
  20.     adc dx,0
  21.     loop    @@03
  22.     cmp dx,6
  23.     ja  @@04
  24.     inc bx
  25. @@04:   inc di
  26.     pop cx
  27.     loop    @@02
  28.     call    outNumber,bx
  29.     ret
  30. dbMas   db  szMas dup(?)
  31. outNumber   proc    a:word
  32. uses    bx,cx,dx,si,di
  33.     mov ah,9
  34.     lea dx,dbRes
  35.     int 21h
  36.     mov ax,a
  37.     mov si,10
  38.     xor cx,cx
  39. @@05:   xor dx,dx
  40.     div si
  41.     push    dx
  42.     inc cx
  43.     or  ax,ax
  44.     jnz @@05
  45. @@06:   pop ax
  46.     add al,'0'
  47.     int 29h
  48.     loop    @@06
  49.     ret
  50. outNumber   endp
  51. inpNumber   proc    a:word
  52. uses    bx,cx,dx,si,di
  53.     mov si,10
  54.     xor dx,dx
  55.     mov ax,a
  56.     div si
  57.     add al,'0'
  58.     mov dbInp10,al
  59.     add dl,'0'
  60.     mov dbInp01,dl
  61. in00:   mov ah,9
  62.     lea dx,dbMess
  63.     int 21h
  64.     xor bx,bx
  65. in01:   xor ax,ax
  66.     int 16h
  67.     cmp al,13
  68.     je  in02
  69.     cmp al,'0'
  70.     jb  in01
  71.     cmp al,'9'
  72.     ja  in01
  73.     int 29h
  74.     and ax,0fh
  75.     xchg    ax,bx
  76.     xor dx,dx
  77.     mul si
  78.     add bx,ax
  79.     or  ah,ah
  80.     jz  in01
  81.     mov ah,9
  82.     lea dx,dbError
  83.     int 21h
  84.     jmp in00
  85. in02:   mov ax,bx
  86.     ret
  87. inpNumber   endp
  88. dbRes   db  10,13,'Result:$'
  89. dbError db  10,13,'Error overflow!'
  90. dbMess  db  10,13,'Enter A['
  91. dbInp10 db  ?
  92. dbInp01 db  ?
  93.     db  ']:$'
  94.     end start

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

7   голосов , оценка 3.714 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы