HDLOCKER.ASM
上传用户:petreluo
上传日期:2007-01-06
资源大小:7k
文件大小:2k
源码类别:

磁盘编程

开发平台:

Others

  1. code segment
  2.      assume cs:code,ds:code
  3.      org 100h
  4. start:
  5.      jmp begin
  6. msg1 db 0Ah,0Dh,' Babysoft  (R) Hard Disk Locker version 1.0'
  7.      db 0Ah,0Dh,' Copyright (C) 1997.11 LiuYaDing,Babysoft Corp.',0Ah,0Dh
  8.      db 0Ah,0Dh,'     C ...... Lock Hard Disk'
  9.      db 0Ah,0Dh,'     D ...... Only Lock Driver D:'
  10.      db 0Ah,0Dh,'     Q ...... Quit',0Ah,0Dh
  11.      db 0Ah,0Dh,'     Enter your select :(D)?$'
  12. msg2 db 07h,0Ah,0Dh,' Locked OK!',0Ah,0Dh,'$'
  13. msg3 db ' Not fount Driver D:$'
  14. error db 0Ah,0Dh,' Enter error!$'
  15. cxd dw 0
  16. begin:
  17.      mov ax,201h
  18.      mov bx,offset buf
  19.      mov cx,1
  20.      mov cxd,cx
  21.      mov dx,80h
  22.      int 13h
  23.      jc begin
  24.      mov ah,9
  25.      lea dx,msg1
  26.      int 21h
  27. ag1: mov ah,1
  28.      int 21h
  29.      cmp al,'Q'
  30.      jz exitq
  31.      cmp al,'q'
  32.      jz exitq
  33.      cmp al,0Dh
  34.      jz jmd
  35.      cmp al,'D'
  36.      jz jmd
  37.      cmp al,'d'
  38.      jz jmd
  39.      cmp al,'C'
  40.      jz jmc
  41.      cmp al,'c'
  42.      jz jmc
  43.      lea dx,error
  44.      jmp exit
  45. jmd: cmp byte ptr [buf+1D0h],0
  46.      jnz re
  47.      lea dx,msg3
  48.      jmp exit
  49. re:  mov ax,201h
  50.      mov cx,word ptr [buf+1D0h]
  51.      mov cxd,cx
  52.      mov bx,offset buf
  53.      mov dx,80h
  54.      int 13h
  55.      jc re
  56. jmc: mov ah,0A8h
  57.      cld
  58.      mov si,offset buf
  59.      mov di,si
  60.      mov cx,1FEh
  61. ag2: lodsb
  62.      xor al,ah
  63.      rol ah,1
  64.      stosb
  65.      loop ag2
  66. agw: mov ax,301h
  67.      mov bx,offset buf
  68.      mov cx,cxd
  69.      mov dx,80h
  70.      int 13h
  71.      jc agw
  72.      mov dx,offset msg2
  73.      mov ah,9
  74.      int 21h
  75.      mov ax,0FFFFh
  76.      push ax
  77.      xor ax,ax
  78.      push ax
  79.      retf
  80. exit:mov ah,9
  81.      int 21h
  82. exitq:
  83.      int 20h
  84. buf db 0
  85. code ends
  86.      end start