汇编程序版本1
;我们的启动程序实现的功能是在屏幕中央
;打印一行字符串即可
org 07c00h ;指令明确告诉编译器我程序的段地址是7c00h
;而不是原来的 00000
; int汇编指令 int 10h
mov ax,cs
mov es,ax
mov bp,msgstr ;es:bp指向的内容就是要显示的字符串地址
mov cx,12 ;字符串长度
mov dh,12 ;显示行号
mov dl,36 ;显示的列号
mov bh,0 ;显示的页数
mov al,1 ;显示的串结构
mov bl,0ch ;显示的字符属性
mov ah,13h ;明确调用13h子程序
jmp int0
msgstr: db "hello my os!"
int0:
int 10h
jmp $ ; 不断跳转到当前位置,是个死循环
times 510-($-$$) db 0 ;重复N次,每次填充为0
dw 55aah
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
汇编程序版本2
org 07c00h ; 告诉编译器程序加载到7c00处
mov ax, cs
mov ds, ax
mov es, ax
call DispStr ; 调用显示字符串例程
jmp $ ; 无限循环
DispStr:
mov ax, BootMessage
mov bp, ax ; ES:BP = 串地址
mov cx, 16 ; CX = 串长度
mov ax, 01301h ; AH = 13, AL = 01h
mov bx, 000ch ; 页号为0(BH = 0) 黑底红字(BL = 0Ch,高亮)
mov dl, 0
int 10h ; 10h 号中断
ret
BootMessage: db "Hello, OS world!"
times 510-($-$$) db 0 ; 填充剩下的空间,使生成的二进制代码恰好为512字节
dw 0xaa55 ; 结束标志
===============================================================================
================================================================================
C语言复制文件程序(复制汇编代码到引导盘)
阅读(337) | 评论(0) | 转发(0) |