|
谢谢楼上的兄弟提供光盘下载.
以下是我反汇编其中的一个小程序的源代码跟注释.
de80.com
程序大小: 3C
13CA:0100 B80102 MOV AX,0201
13CA:0103 BB0002 MOV BX,0200
13CA:0106 B90100 MOV CX,0001
13CA:0109 BA8000 MOV DX,0080
13CA:010C CD13 INT 13 ;把硬盘第一扇区读到内存 ES:200处
13CA:010E B80103 MOV AX,0301
13CA:0111 BB0002 MOV BX,0200
13CA:0114 B90600 MOV CX,0006
13CA:0117 BA8000 MOV DX,0080
13CA:011A CD13 INT 13 ;把内存ES:200的内容写到硬盘6扇区(备份LBA 0扇区到LBA 5扇区)
13CA:011C BE0400 MOV SI,0004 ;SI用做循环次数 用的很奇秒
13CA:011F BBBE03 MOV BX,03BE ;BX做为分区表开始指针
13CA:0122 C6470400 MOV BYTE PTR [BX+04],00 ;把BX+04的位置更改为 0 也就是更改分区属性为0
13CA:0126 83C310 ADD BX,+10 ;BX总是指向分区的开始 指向下一分区表项开始
13CA:0129 4E DEC SI ;SI的值减1
13CA:012A 75F6 JNZ 0122 ;对结果进行判断,不为0进行循环,跳到0122
13CA:012C B80103 MOV AX,0301
13CA:012F BB0002 MOV BX,0200
13CA:0132 B90100 MOV CX,0001
13CA:0135 BA8000 MOV DX,0080
13CA:0138 CD13 INT 13 ; 把修改过的分区表写到硬盘第1扇区
13CA:013A CD20 INT 20 ; int 20h 程序终止
; 本中断只适用于ms-dos,建议不要使用int 20h终止程序,
; 应当利用dos功能调用4ch来适当地终止程序。
; 网上抄的 |
|