Advertisement
xladomaz

Input number and output

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