Advertisement
Guest User

Untitled

a guest
Nov 13th, 2018
161
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. assume cs: code, ds: data
  2.  
  3. data segment
  4. string1 db 10, 9 dup (0)
  5. string2 db 10,9 dup (0)
  6. r db 0, '$'
  7. res db 10, 9 dup (0)
  8. ln db 0dh,0ah, '$'
  9. data ends
  10.  
  11. code segment
  12.  
  13. print proc
  14.     push bp
  15.     mov bp, sp
  16.     mov di, [bp+8]
  17.     mov cx, 4
  18.     ;mov cl, ch
  19.     add di, 2
  20. lp2:
  21.     mov al, [di]
  22.     add al, 30h
  23.     add di, 1
  24.     mov r[0], al
  25.     mov dx, offset r
  26.     mov ah, 09h
  27.     int 21h
  28.  loop lp2
  29.     pop bp
  30.     ret
  31.  
  32. print endp
  33.  
  34. proc1 proc
  35.     push bp
  36.     mov bp, sp
  37.     mov si, [bp+4]
  38.     mov di, [bp+6]
  39.     mov al, [si+1]
  40.     mov ah, 0
  41.     mov bx, 2
  42.     mov dh, 10
  43.     mov cx, ax
  44.     mov ah, [di+1]
  45.     cmp ah, al
  46.     jle ed
  47.     mov dl, 0
  48.     mov ax, [si+1]
  49.     add ax, 1
  50.     add si, ax
  51.     mov ax, [di+1]
  52.     add ax, 1
  53.     add di, ax
  54. ed:
  55.     mov al, ah
  56.     mov ah, 0
  57.     mov cx, ax
  58.     mov dl, 0
  59.     mov ax, [si+1]
  60.     add ax, 1
  61.     mov ah, 0
  62.     add si, ax
  63.     mov ax, [di+1]
  64.     add ax, 1
  65.     mov ah, 0
  66.     add di, ax
  67. lp:
  68.     mov al, [si]
  69.     mov ah, [di]
  70.     sub al, 30h
  71.     sub ah, 30h
  72.     add al, dl
  73.     add al, ah
  74.     mov ah, 0
  75.     div dh
  76.     mov dl, al
  77.     push di
  78.     mov di, [bp+8]
  79.     add di, bx
  80.     add bx, 1
  81.     mov [di], ah
  82.     mov al, ah
  83.     mov ah, 0
  84.     push ax
  85.     ;call print
  86.     pop ax
  87.     pop di
  88.     sub di, 1
  89.     sub si, 1
  90. loop lp
  91.  
  92.     push di
  93.     push si
  94.     mov si, [bp+4]
  95.     mov di, [bp+6]
  96.     mov al, [si+1]
  97.     mov ah, [di+1]
  98.     cmp ah, al
  99.     jle ek
  100.     sub ah, al
  101.     mov al, ah
  102.     mov ah, 0
  103.     mov cx, ax
  104.     pop di
  105.     pop si
  106.     mov di, [bp+8]
  107.     add di, dx
  108.     sub di, 1
  109.     mov bx, [di]
  110.     add di, 1
  111.  
  112. ek:
  113.     sub al, ah
  114.     mov ah, 0
  115.     mov cx, ax
  116.     pop si
  117.     pop di
  118.     mov di, [bp+8]
  119.     add di, bx
  120.     sub di, 1
  121.     mov bx, [di]
  122.     add di, 1
  123.  
  124. lp1:
  125.     mov al, [si]
  126.     sub al, 30h
  127.     add al, dl
  128.     div dh
  129.     mov dl, al
  130.     mov [di], ah
  131.     sub si, 1
  132.     add di, 1
  133. loop lp1
  134.     pop bp
  135.     ret
  136.  
  137. proc1 endp
  138.  
  139. start:
  140.     mov ax, data
  141.     mov ds, ax
  142.     mov dx, offset string1
  143.     mov si, dx
  144.     mov ax, 0
  145.     mov ah, 0Ah
  146.     int 21h
  147.  
  148.     mov dx, offset ln
  149.     mov ah, 09h
  150.     int 21h
  151.            
  152.     mov dx, offset string2
  153.     mov si, dx
  154.     mov ah, 0Ah
  155.     int 21h
  156.  
  157.     mov dx, offset ln
  158.     mov ah, 09h
  159.     int 21h
  160.  
  161.     mov ah,0
  162.     push offset res
  163.     push offset string2
  164.     push offset string1
  165.     call proc1
  166.     call print
  167.  
  168.     ;mov dx, offset res
  169.     ;mov ah, 09h
  170.     ;int 21h
  171.  
  172.     mov ah, 4ch
  173.     int 21h
  174.     code ends
  175.     end start
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement