Advertisement
Guest User

Untitled

a guest
Mar 22nd, 2019
152
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. .model small                ; определить тип модели памят   и
  2. .386                        ; разрешить использование инструкций 386 процессора
  3. stack       100h            ; определить сегмент стека размером 256 байт
  4.  
  5. dataseg                     ; определить сегмент данных
  6. AB  db  0FEh, 0EFh, 0FFh, 0FFh, 0FFh, 0FFh, 0FFh, 0FFh
  7. MX  dw  0
  8. IT  dw  8
  9.  
  10. codeseg                     ; определить сегмент кода
  11. start:                  ; начало выполнения программы (см.последнюю строку)
  12.  
  13.     startupcode             ; установить в DS адрес начала сегмента данных (лучше не изменять)
  14.  
  15.     lea BX, AB      ; заносим массив ARR в BX
  16.     mov     CX, IT          ; заноосим размер массива в CX
  17.     mov DX, 0           ; заносим 0 в AX
  18. LI:
  19.     mov     CX, 8
  20.     mov AH, 80h
  21.     mov AL, [BX]
  22. LJ:  
  23.     test    AL, AH
  24.     jnz new_max
  25.     jz  null_DX
  26. body:
  27.         shr AH, 1
  28.     loop    LJ
  29.     mov CX, IT
  30.     dec IT
  31.     inc BX
  32.     loop    LI
  33.     jmp     quit
  34. new_max:
  35.     inc DX
  36.     cmp MX, DX
  37.     jl  max
  38.     jmp     body
  39. max:
  40.     mov MX, DX
  41.     jmp body
  42. null_DX:
  43.     mov DX, 0
  44.     jmp     body   
  45. quit:                       ; метка конеца работы
  46.     exitcode 0              ; передать управление операционной системе. код возврата 0
  47.                                                                                    
  48.     end start               ; конец программы. указанная метка соответствует началу исполняемого кода
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement