Advertisement
Guest User

Untitled

a guest
Jun 21st, 2018
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. MODEL   TINY
  2. STACK 100h  
  3. CODESEG    
  4.  
  5.  
  6. start:
  7.  
  8.    mov  cx,20            ; Количество полных строк, вмещаемых в экран + сообщение о выходе
  9.    xor  dx,dx           ; начальная позиция курсора
  10.    mov  bl, 00000001b          ; на чёрном фоне, синие символы
  11.    mov al, '1'          ; начальное значение для вывода
  12.  
  13.  
  14. print_loop:
  15.    mov  ah,2            ; позиционируем курсор
  16.    int  10h
  17.  
  18.    push cx              ; Кладем на стек значение счетчика
  19.    mov  cx,80           ; число выводимых символов
  20.    mov  ah,9            ; выводим символ
  21.    int  10h
  22.    inc dh               ; смещение на новую строку
  23.    pop cx               ; убираем со стека значение счетчика
  24.    
  25.    dec cx
  26.    inc al               ; следующий для вывода символ
  27.    add bx, 10001b
  28.    cmp bx, 10000000b    ; проверяем больше ли 128
  29.    jb check_overload_symbol  ; если меньше, то идем к метке check_overload_symbol
  30.    sub bx, 10000000b    ; уменьшаем на 128 чтобы убрать мигалку
  31.    cmp bx, 0
  32.    jne check_overload_symbol ; проверяем, что не равно 0
  33.    inc bx
  34.    
  35.  
  36.  
  37. check_overload_symbol:   ; если дошли до '9' то возвращаемся к '1'
  38.    cmp al, '9'+1
  39.    jne not_overload_symbol
  40.    mov al, '1'
  41.  
  42. not_overload_symbol:  
  43.    cmp cx, 0
  44.    jne print_loop
  45.    
  46. exit:
  47.     mov ah,04Ch
  48.     mov al,1h
  49.     int 21h
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement