myos loadtest

来源:互联网 发布:网络错误代码-7 编辑:程序博客网 时间:2024/06/09 19:43
org 07c00h 


mov ax,cs 
mov ds,ax
mov es,ax 


mov ah,0x02 ;ah=0x02,即为读磁盘扇区到内存
mov al,0x01 ;AL 置要读的扇区数目


 ;mov ch,0x00 ;CH 磁道号的低8位数
mov cx,0x0001;cl 开始扇区(位0—5),磁道号高二位(位6—7)


mov dl,0x80 ;DL 需要进行读操作的驱动器号
mov dh,0x00 ;dh=磁头号
mov bx,0x400  ; ES:BX 读出数据的缓冲区地址


int 0x13

 

jnc 0x400 ;即CF=0,则跳转
;jnc sucess


;jmp fail    ;cf=1 
jmp draw


draw:
 mov ah,0;
 mov al,06ah ;设置图形模式 0x6a 位800 600 16中颜色
 int 10h


call clear_screen
;画 一条直线
 mov bh,0x0  ;视频页
 mov dx,400   ;y坐标
 mov cx,10   ;x坐标
 mov ah,0x0c   ;功能号
 mov al,12      ;像素值 像素颜色
 
 lib:
 int 10h
 
 inc cx        ;下一个像素  
 cmp cx,800     ;是否到了结束位置
 jne lib 
  jmp $
 
  clear_screen:     ; 清屏函数  
 mov ah,0x06      ;功能号0x06
 mov al,0       ;上卷全部行,即清屏 
 mov cx, 0x00   ;左上角行
 mov dh,24     ;左上角列
 mov dl,40     ;右下角行
 mov bh,0x07  ;右下角列
 int 10h      ;空白区域属性  
 ret

 

fail:
mov ax,show
mov bp,ax
mov ah,0x013
mov al,0x00
mov dx,0x0202
mov cx,0x0015
 
mov bx,0x0001
int 10h
jmp $
sucess:
mov ax,info
mov bp,ax
mov ah,0x013
mov al,0x00
mov dx,0x0202
mov cx,0x0015
 
mov bx,0x0001
int 10h
jmp $

 

info:
db "my sucess verygood!"


show:
db "fail to loader sss!"
times 510-($-$$) db 0 ;填充剩下的空间,使生成的二进制代码恰好为512字节


dw 0xaa55
0 0