设为首页 加入收藏

TOP

一个简单的汇编入门程序
2014-11-24 03:20:01 来源: 作者: 【 】 浏览:0
Tags:一个 简单 汇编 入门 程序

操作系统一个简单的汇编入门程序如下,代码中注释得已很详细


;程序被加载到的内存地址,即寄存器IP的值
org 07c00h
;以下3句是设置ds、es段寄存器的值
mov ax,cs
mov ds,ax
mov es,ax
;将字符串的首地址赋给ax
mov ax,BootMsg
;将字符串第19个字符改写
mov byte [BootMsg+18],0x07
;bp是传给中断的参数es:bp指向的是字符串
mov bp,ax
;字符串中字符的个数
mov cx,21
;表示的是写字符串,并移动光标到结尾处
mov ax,01301h
;字符显示属性红色,0页
mov bx,000ch
mov dl,0
int 10h
jmp $
BootMsg: db "Loading system ...."
db 13,10
;$表示程序的当前地址,$$表示程序所在节的地址,在这里只有一个节
times 510-($-$$) db 0
;软盘第一扇区结束标志
dw 0xaa55


程序在Virtual Box下运行的截图如下:



在Virtual PC下运行的截图如下:





特别注解:


1:org 07c00h,用Bochs调试运行后会发现,ip=0x7c00h,cs=0x0000,所以从这里可以得出的是四个段寄存器均是0




2:mov byte [BootMsg+18],0x07,这是为什么会发出滴答声的原因,查看ASCII码可以发现的是这里的0x07对应的实际上就是一个声响的ASCII码。


3:中断int 10h的0x13功能,其中ah用来表示功能号,其参数如下:


功能号:13H


功能:在Teletype模式下显示字符串
入口参数:AH=13H
BH=页码
BL=属性(若AL=00H或01H)
CX=显示字符串长度
(DH、DL)=坐标(行、列)
ES:BP=显示字符串的地址 AL= 显示输出方式
0—字符串中只含显示字符,其显示属性在BL中。显示后,光标位置不变
1—字符串中只含显示字符,其显示属性在BL中。显示后,光标位置改变
2—字符串中含显示字符和显示属性。显示后,光标位置不变
3—字符串中含显示字符和显示属性。显示后,光标位置改变


工具软件(nasm,bochs,程序源码)


具体下载目录在 /2013年资料/6月/9日/一个简单的汇编入门程序


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Android 预置默认的语音信箱号码 下一篇2012年华为校园招聘机试(南京)

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·C语言中如何将结构体 (2025-12-24 22:20:09)
·纯C语言结构体成员变 (2025-12-24 22:20:06)
·C语言中,指针函数和 (2025-12-24 22:20:03)
·哈希表 - 菜鸟教程 (2025-12-24 20:18:55)
·MySQL存储引擎InnoDB (2025-12-24 20:18:53)