;VV.ASM 
;ббнд/бшбнд вхякю

 SSEG SEGMENT STACK
   DB 128 DUP(?)
 SSEG ENDS
;
 DSEG SEGMENT
   CHISLO DW 0       ;бшдекъел оюлърэ онд вхякн х намскъел
 DSEG ENDS
;
ERROR MACRO 
    MOV AH,2
    MOV DL,7
    INT 21H
    MOV AH,2
    MOV DL,8
    INT 21H
  ENDM
;
 CSEG SEGMENT
   ASSUME CS:CSEG,DS:DSEG,SS:SSEG
  MAIN PROC          ; мювюкн опнжедспш MAIN(рнвйю бундю б опнцпюллс)
   MOV AX,DSEG
   MOV DS,AX
   CALL VVOD         ; бшгнб опнжедспш ббндю
   MOV DL,0AH        ; бшбндхлши яхлбнк(оепебнд ярпнйх) - б DL
   MOV AH,2          ; бшбнд
   INT 21H           ; он опепшбюмхч 21м
   CALL VIVOD        ; бшгнб опнжедспш бшбндю
   MOV AX,4C00H      ; ярюмдюпрмши бшунд хг опнцпюллш
   INT 21H           ; он опепшбюмхч 21м
  MAIN ENDP          ; йнмеж опнжедспш MAIN
;
  VVOD PROC
   MOV DX,0AH        ; гюмняхл б DX лмнфхрекэ - 10
   MOV BX,0          ; намскъел BX, б йнрнпнл асдер ббед╗мне вхякн
L: MOV AH,1          ; ббнд я йкюбхюрспш
   INT 21H           ; он опепшбюмхч 21H
   CMP AL,0DH        ; опнбепъел ббед╗ммши яхлбнк мю янбоюдемхе я бнгпюрнл йюперйх
   JE L2             ; еякх янбоюк, рн оепеундхл мю лерйс
   CMP AL,30H
   JB ERR1
   CMP AL,39H
   JA ERR1
   AND AL,0FH        ; сдюкемхе опхгмюйю ASCII
   MOV AH,0          ; намскъел юм
   ADD BX,AX         ; ясллхпсел( дкъ рнцн х намскъкх юм)
L1:MOV AH,1          
   INT 21H           
   CMP AL,0DH        
   JE L2
   CMP AL,30H
   JB ERR2
   CMP AL,39H
   JA ERR2           
   AND AL,0FH
   MOV CL,AL         ; гюмняхл ббед╗ммне вхякн б CL
   MOV AX,BX         ; гюмняхл вхякн, онксвеммне пюмее, б AX
   MUL DX            ; слмнфюел ецн мю 10(опх щрнл DX намскхрэяъ)
   MOV DX,0AH        ; гюмняхл б DX лмнфхрекэ
   MOV BX,AX         ; онксвеммши пегскэрюр бнгбпюыюел б BX 
   MOV CH,0          
   ADD BX,CX         ; ясллхпсел онксвеммне пюмее вхякн я ббед╗ммшл
   JMP L1            ; оепеунд й ббндс якед яхлбнкю
L2:MOV CHISLO,BX     ; гюмняхл ббед╗ммне нйнмвюрекэмне вхякн б оепелеммсч
   JMP KON
ERR1:ERROR
     JMP L
ERR2:ERROR
     JMP L1
KON:   RET               ; бнгбпюр й рнвйе бшгнбю
  VVOD ENDP  
;
  VIVOD PROC
   MOV CX,0          ; намскъел CX - йнкхвеярбн жхтп
   MOV BX,0AH        ; декхрекэ б бу - 10
   MOV DX,0          ; гюмняхл вхякн б дбю пецхярпю
   MOV AX,CHISLO     ; врнаш лнфмн ашкн бшбндхрэ вхякю пюглепнл б якнбн
L3:DIV BX            ; декхл вхякн мю 10
   INC CX            ; сбекхвхбюел мю 1 яв╗рвхй жхтп
   OR DX,30H         ; днаюбкъел й нярюрйс опхгмюй ASCII
   PUSH DX           ; х гюмняхл ецн б ярей
   MOV DX,0          ; намскъел DX, рюй йюй нм свюярбсер б декемхх
   CMP AX,9          ; япюбмхбюел вюярмне я 9
   JA L3             ; еякх анкэье 9, рн оепеунд мю лерйс
   OR AX,30H         ; днаюбкъел й вюярмнлс опхгмюй ASCII
   INC CX
   PUSH AX           ; гюмняхл оепбсч жхтпс б ярей
L5:POP DX            ; хгбкейюел жхтпс хг ярейю
   MOV AH,2          ; бшбнд 
   INT 21H           ; он опепшбюмхч 21м
   LOOP L5           ; оепеунд й бшбндс якед жхтпш
   RET               ; бнгбпюр й рнвйе бшгнбю
  VIVOD ENDP
 CSEG ENDS
END MAIN           ; йнмеж опнцпюллш я рнвйни бундю MAIN
   