当前位置:首页 » 软件开发
开发技术指南» 文章正文
    引言: 上次的文章结束的时候把一大段我的Boot Loader贴出来了,
 

 

    摘要:环境:操作系统windows2000。domino smtp的配置一切都正常,有正确配置的服务器文档、配置文档、全球网络域文档及所有正确的个人文档。dns的设置也没有问题。服务器配置了两个网卡,各自有一个子网ip地址。 症状:发送邮件到internet,服务器返回错误信息:failed to connect to smtp host <interner mail server> be......
 ·抽象机模式    »显示摘要«
    摘要: 抽象机模式 (已发表在《程序员》2003年第1期上)  撰文/julio garcía-martín miguel sutil-martín universidad politécnica de madrid[1] 翻译/马维达 摘要 由于现代高级编程语言和现有硬件之间的差异日渐增大,常常有必要引入中间语言、并在原始硬件之上构建抽象机。本论文描述了抽象机(abst......


关于16位的OS尝试(2)

上次的文章结束的时候把一大段我的boot loader贴出来了,可能会让人迷惑.这里我又写了个小小的微缩版的16位实模式下的boot loader,大家看看吧.

这里我再次说明一下,这个文章只是记录我自己做16位os的经验,绝不是什么标准的教程.但是我也不会像其它的文章讲个boot loader就结束了.后面我还会做到kernel以及文件系统等很多东西 【程序编程相关:中小企业服务器配置方案(文件服务器之NF

【推荐阅读:中小企业服务器配置方案(文件服务器之FT

【扩展信息:中小企业服务器配置方案(IP伪装)

bits 16

org 0x7c00

entry:

  mov ax, 0

  mov ds, ax

  mov si, welcomemsg

  call putstr

hang:

  jmp hang

welcomemsg db welcome to my operating system,0

putstr:

    lodsb  

    or al, al 

    jz putstrd 

    mov ah, 0x0e

    mov bx, 0x0007

    int 0x10

    jmp putstr

putstrd:

    retn

size equ $ - entry

%if size+2 > 512

  %error "code is too large for boot sector"

%endif

 times (512 - size - 2) db 0

 db 0x55, 0xaa 

其中显示为深红色的才是真正的汇编代码,而显示为蓝色的是nasm的宏或一些控制语句.

首先是bits 16,这个说明是要把我们这个程序编译成16位的代码,org 0x7c00则是告诉编译器我们的这段代码将从0x7c00这个地址开始执行(由于汇编编译器对于静太变量的引用都是使用绝对地址,所以一定要设置好你程序运行开始的地址.比如dos下.com文件就要设置org 0x100也是一个道理.否则你的数据地址会出现错误)

entry:

  mov ax, 0

  mov ds, ax


...   下一页
    摘要:帮朋友jacques lebrun贴这篇帖子,顺便提醒某些过于容易激动的读者:当你开口批评之前,你有没有想过,自己究竟有没有批评的资格?当然,孔雀开屏式的批评没人能阻止。不过有句老话说得好,你拿自己当根葱,还真有人拿你蘸酱? “书评的目的是,让评论者对一本自己看过或者没看过的书说点儿什么。评论只在一个意义上有指导作用,那就是它向书评的读者——包括原书的作者——提供了一些关于评论者的智力的信......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE