Advertisement
xladomaz

2digits output

Nov 9th, 2019
1,081
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. data    segment
  2.         a dw ?
  3.         b dw 9
  4.         nmb db ?
  5.         pnt dw 0h
  6.         answer db 0h
  7.        
  8.         aa dw ?
  9.         bb dw ?
  10. data    ends
  11.  
  12. code    segment
  13.         assume cs:code, ds:data
  14. main:   mov dx, data
  15.         mov ds, dx
  16.  
  17.         mov dx, 0B800h
  18.         mov es, dx
  19.         xor di, di
  20.         jmp start
  21.  
  22. outp_n:
  23.         mov di, 80*2
  24.         mov ax, 0730h
  25.         add al, nmb
  26.         add di, pnt
  27.         mov es:[di], ax
  28. ret
  29.  
  30. start:  xor dx, dx
  31.         mov ax, 0720h
  32.         mov cx, 80*25
  33.         rep stosw
  34.  
  35.         xor di, di    
  36.         mov cx, 02h
  37. inloop: in  al, 60h  
  38.         cmp al, bl
  39.         je  inloop
  40.         mov bl, al
  41.         cmp al, 01h
  42.         jne NotEsc
  43.         jmp quit
  44. NotEsc: cmp al, 0Bh
  45.         jne Not0
  46.         mov a, 0
  47.         mov es:[di], 0730h
  48.         jmp NxtNum
  49. Not0:   cmp al, 02h
  50.         jne Not1
  51.         mov a, 1
  52.         mov es:[di], 0731h
  53.         jmp NxtNum
  54. Not1:   cmp al, 03h
  55.         jne Not2
  56.         mov a, 2
  57.         mov es:[di], 0732h
  58.         jmp NxtNum
  59. Not2:   cmp al, 04h
  60.         jne Not3
  61.         mov a, 3
  62.         mov es:[di], 0733h
  63.         jmp NxtNum
  64. Not3:   cmp al, 05h
  65.         jne Not4
  66.         mov a, 4
  67.         mov es:[di], 0734h
  68.         jmp NxtNum
  69. Not4:   cmp al, 06h
  70.         jne Not5
  71.         mov a, 5
  72.         mov es:[di], 0735h
  73.         jmp NxtNum
  74. Not5:   cmp al, 07h
  75.         jne Not6
  76.         mov a, 6
  77.         mov es:[di], 0736h
  78.         jmp NxtNum
  79. Not6:   cmp al, 08h
  80.         jne Not7
  81.         mov a, 7
  82.         mov es:[di], 0737h
  83.         jmp NxtNum
  84. Not7:   cmp al, 09h
  85.         jne Not8
  86.         mov a, 8
  87.         mov es:[di], 0738h
  88.         jmp NxtNum
  89. Not8:   cmp al, 0Ah
  90.         jne Not9
  91.         mov a, 9
  92.         mov es:[di], 0739h
  93.         jmp NxtNum
  94. Not9:   jmp inloop
  95. NxtNum:
  96.         mov aa, ax
  97.         mov bb, bx
  98.         mov bl, 0Ah
  99.         mov al, answer
  100.         mul bl
  101.         add ax, a
  102.         mov answer, al
  103.         mov ax, aa
  104.         mov bx, bb
  105.        
  106.         inc di
  107.         inc di        
  108.         dec cx
  109.        
  110.        jnz Not9
  111.        
  112.        
  113.        
  114.         mov ax, 0h ;Вывод числа в десятичном виде
  115.         mov al, answer
  116.         add ax, b
  117.         mov bl, 0Ah
  118.         div bl
  119.  
  120.         mov nmb, al
  121.         mov bl, ah
  122.         call outp_n
  123.  
  124.         add pnt, 2
  125.  
  126.         mov nmb, bl
  127.         call outp_n
  128.        
  129. pause:  in al, 60h
  130.         cmp al, 01h
  131.         jne pause
  132. quit:   mov ax, 4C00h
  133.         int  21h
  134. code    ends
  135.         end main
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement