Guest User

Untitled

a guest
May 31st, 2016
342
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. prnstr macro msg
  2.     mov ah, 09h
  3.     lea dx, msg
  4.     int 21h
  5.     endm
  6.  
  7. readnum macro val
  8.     mov ah, 01h
  9.     int 21h
  10.     mov ah, 00h
  11.     sub al, '0'
  12.     mov bl, 0ah
  13.     mul bl
  14.     mov bl, al
  15.     mov bh, 00h
  16.     mov ax, 0100h
  17.     int 21h
  18.     sub al, '0'
  19.     add bx, ax
  20.     mov val, bl
  21.     endm
  22.  
  23. data segment
  24.     track db ?
  25.     sector db ?
  26.     head db ?
  27.     drive db ?
  28.  
  29.     msg1 db 0dh, 0ah, "Enter the track number : $"
  30.     msg2 db 0dh, 0ah, "Enter the sector number : $"
  31.     msg3 db 0dh, 0ah, "Enter the head number (0/1) : $"
  32.     msg4 db "Enter drive (0-A, 1-B, 80-C) : $"
  33.     msg5 db 0dh, 0ah, "Sector contains : $"
  34.         msg6 db 0dh, 0ah, "Failure in reading sector...$"
  35.         msg7 db 0dh, 0ah, "Reading sector...$"
  36.  
  37.         buf db 512 dup(' ')
  38. data ends
  39.  
  40. code segment
  41.         assume cs:code, ds:data, es:data
  42. start :
  43.     mov ax, data
  44.         mov ds, ax
  45.         mov es, ax
  46.  
  47.         prnstr msg4
  48.     readnum drive
  49.         prnstr msg3
  50.         readnum head
  51.         prnstr msg1
  52.         readnum track
  53.     prnstr msg2
  54.         readnum sector
  55.  
  56.         prnstr msg7
  57.         mov al, 01h
  58.     mov ch, track
  59.         mov cl, sector
  60.         mov dh, head
  61.         mov dl, drive
  62.         lea bx, buf
  63.     mov ah, 02h
  64.         int 13h
  65.         jnc success
  66.         prnstr msg6
  67.         jmp stop
  68. success :
  69.     prnstr msg5
  70.         mov cx, 512
  71.         mov ah, 02h
  72.         mov si, offset buf
  73. next :
  74.     mov dl, [si]
  75.         int 21h
  76.         inc si
  77.         loop next
  78. stop :
  79.     mov ax, 4c00h
  80.     int 21h
  81. code ends
  82.     end start
Advertisement
Add Comment
Please, Sign In to add comment