- UID
- 1
- 精华
- 积分
- 76361
- 威望
- 点
- 宅币
- 个
- 贡献
- 次
- 宅之契约
- 份
- 最后登录
- 1970-1-1
- 在线时间
- 小时
|
楼主 |
发表于 2014-1-26 20:41:07
|
显示全部楼层
然后是DOSVER5.ASM和DOSVER7A.ASM的源码(只差一句,所以只给一个代码即可)
org 0x100
bits 16
Start:
jmp Install
DOSVerInt:
cmp ah,0x30 ;判斷功能是不是“取版本”
jnz .OldDOSInt ;如果不是,跳转到旧的DOS中断
mov ax,0x0005 ;版本5.0
;mov ax,0x0A07 ;注释掉上面那句,取消注释这一句后,则是版本7.10
iret
.OldDOSInt: ;回到旧的DOS中断0x21
db 0xEA
.OldIntOff dw 0x0000
.OldIntSeg dw 0xFFFF
Install:
xor ax,ax
mov es,ax
mov ax,[es:0x21*4] ;取得旧的DOS中断入口
mov [DOSVerInt.OldIntOff],ax
mov ax,[es:0x21*4+2]
mov [DOSVerInt.OldIntSeg],ax
cli
mov word[es:0x21*4],DOSVerInt;改DOS中断入口
mov [es:0x21*4+2],cs
sti
mov dx,Install ;內存駐留
int 0x27
|
|