assume cs:code
code segment
;引导程序
steup: jmp sysboot
optionA db 0ah,0dh,'Please Chook One',0ah,0dh
db ' 1) Reset Pc !!!!',0ah,0dh
db ' 2) Start Sys !!!',0ah,0dh
db ' 3) Clock Show !!',0ah,0dh
db ' 4) Set Clock !!!',0ah,0dh
db 'Input Number: '
sysboot:
mov cx,offset sysboot -offset optiona
mov si,0
mov ah,0eH ;显示字符(光标前移)
mov bl,0 ;前景色
s:mov al,optiona[si] ;字符
int 10h
inc si
loop s
mov ah,10
int 21H
restart: ;重新启动计算机
mov word ptr [bx],0
mov word ptr [bx+2],0FFFFH
jmp far ptr [bx]
;安装程序
start:
mov ah,3 ;写扇区(返回ah=0成功,al=写入扇区数,ah=出错代码)
mov al,1 ;扇区数
mov ch,0 ;磁道号
mov cl,1 ;扇区号
mov dh,0 ;磁头号(面)
mov dl,80H ;驱动器号
mov ax,cs ;es:bs指向写入的数据
mov es,ax
mov bx,0
int 13H
mov ax,4c00h
int 21h
code ends
end start
为什么我向硬盘扇区写东西总是不成功啊!!好像写不进去?我代码有问题吗?
我换了台机器也不行,执行写扇区的时候,AH返回80,这什么意思,我在网上都没地方查!我也不知道是不是我代码有问题,还是哪里出了问题,我在VM虚拟机测试的!
高手指点啊,我真不想放弃这个设计! |