21,459
社区成员
发帖
与我相关
我的任务
分享
assume cs:code
data segment
db 512 dup (0)
data ends
code segment
start: mov ax,cs
mov ds,ax
mov si,offset boot
mov ax,data
mov es,ax
mov di,0
mov cx,offset bootend - offset boot
cld
rep movsb
jmp write
write: mov ax,data
mov es,ax
mov bx,0
mov al,1
mov ch,0
mov cl,1
mov dl,0
mov dh,0
mov ah,3
int 13h
mov ax,4c00h
int 21h
boot: jmp short bootstart
db 10 dup (0)
bootstart:
mov ax,cs
mov ss,ax
mov sp,10
mov ax,0
mov es,ax
mov bx,7c00h
mov al,1
mov ch,0
mov cl,2
mov dl,0
mov dh,0
mov ah,2
int 13h
mov bx,0
push bx
mov bx,7c00h
push bx
retf
bootend: nop
code ends
end start
assume cs:code
data segment
db 512 dup (0)
data ends
code segment
start: mov ax,cs
mov ds,ax
mov si,offset toWrite
mov ax,data
mov es,ax
mov di,0
mov cx,offset writeEnd - offset toWrite
cld
rep movsb
jmp writeToDisk
toWrite: mov ax,0b800h
mov es,ax
mov di,160*12+40
mov al,65
mov ah,100b
mov es:[di],ax
mov es:[di+2],ax
mov es:[di+4],ax
writeEnd: nop
writeToDisk: mov ax,data
mov es,ax
mov bx,0
mov al,1
mov ch,0
mov cl,2
mov dl,0
mov dh,0
mov ah,3
int 13h
mov ax,4c00h
int 21h
code ends
end start