当前位置: 首页 > news >正文

从零做网站推广吧

从零做网站,推广吧,专业品牌网站设计公司,网站开发信息发布今天要做什么? 实现HLT,不让计算机处于HALT(HLT).用C语言实现内存写入(错误,需要分析) 一:使用HLT,让计算机处于睡眠状态 写了下面这个程序,naskfunc.nas 函数名叫io_h…

今天要做什么?

  1. 实现HLT,不让计算机处于HALT(HLT).
  2. 用C语言实现内存写入(错误,需要分析)

一:使用HLT,让计算机处于睡眠状态

        写了下面这个程序,naskfunc.nas

函数名叫io_hlt,虽然只叫hlt也行,但在cpu的指令之中,HLT也属于I/O指令,所以就起了这么一个名字。

MOV属于转送指令,ADD属于演算指令。用汇编写的函数,之后还要与bootpack.obj链接,所以也需要编译成目标文件,因此输出格式设定位WCOFF模式,还需要设定成32位机器语言模式。

在nask目标文件的模式下,必须设定文件名信息,然后在写明下面程序的函数值,注意要再函数名的前面加上”_”,否则就不能很好的与C语言函数链接,需要链接的函数名,都要用GLOBAL指令声明。

下面写一个实际的函数,写起来很简单bootpack.c

二:内存写入

修改naskfunc.nas

bootpack.c

修改完后make 执行生成镜像后,执行,并没有显示成想要达成的效果,于是需要读一读文章,二进制文件分析,根据文章内容,修改相应文件。

需要一个好的二进制编辑工具
报错内容记录:

; haribote-ipl

; TAB =4

cyls equ  10                ; 声明CYLS=10

        ORG     0x7c00            ; 指明程序装载地址

; 标准FAT12 格式软盘专用的代码 Stand FAT12 format flppy code

        JMP     entry

        DB      0x90

        DB      "HARIBOTE"        ;启动扇区名称(8字节)

        DW      512               ;每个扇区(sector)大小(必须512字节)

        DB      1                 ; 簇(cluster)大小 必须为一个扇区

        DW      1                 ; FAT起始位置(一般为第一个扇区)

        DB      2                 ; FAT个数(必须为2)

        DW      224               ; 根目录大小(一般为224项)

        DW      2880              ; 该磁盘大小(必须为2880扇区1440*1024/512)

        DB      0xf0              ; 跳过引导扇区,必须为0xf0

        DW      9                 ; 跳过引导扇区后的第一个数据分区,必须为9?

        DW      18                ; 该磁盘的扇区数,必须为18

        DW      2                 ; 磁头每个扇区扇区数,必须为2?

        DD      0                 ;不适用分区,必须为0

        DD      2880              ;重写一次磁盘大小

        DB      0,0,0x29          ;磁盘号,卷标,磁盘长度??必须为0x29

        DD      0xffffffff        ;磁盘序列号,必须为0xffffffff

        DB      "HARIBOTEOS "     ;磁盘名称,必须为11字,不足填空格

        DB      "FAT12   "        ;磁盘格式名称(必须为8字?,不足填空格)

        RESB    18                ;先空出18字节

; 程序主体

entry:

    MOV AX,0                       ;初始化寄存器

    MOV SS,AX

    MOV SP,0x7c00

    MOV DS,AX

;读磁盘 读入10个柱面

    MOV AX, 0x0820

    MOV es,AX

    MOV CH,0         ; 柱面0

    MOV DH,0         ; 磁头

    MOV CL,2         ; 扇区2

readloop:

    MOV SI,0         ; 缓冲区偏移 记录失败次数

retry:

    MOV AH,0x02      ; 读入磁盘

    MOV AL,1         ; 1个扇区

    MOV bx,0         ;0

    MOV dl,0X00       ; A驱动器

    INT 0x13         ; 调用磁盘BIOS

    JNC next        ;没出错时跳转到next

    ADD SI,1        ;SI加1

    CMP SI,5        ;比较SI与5

    JAE error        ;SI>5时,跳转到error

    MOV AH,0x00       

    MOV DL,0x00      ;A驱动器

    INT 0x13        ;重置驱动器

    JMP retry

next:

    MOV AX,ES       ;把内存地址后移0x200

    ADD AX,0X0020   ;往CL里加1

    MOV ES,AX       ;因为没有ADD ES,0x020指令,所以这里稍微绕个弯

    ADD CL,1        ;CL加1

    CMP CL,18       ;比较CL与18

    JBE readloop    ;如果CL<=18.则跳转至readloo

    MOV CL,1

    ADD DH,1

    CMP DH,2

    JB readloop     ; 如果DH<2,则跳转到readloop

    MOV DH,0

    ADD CH,1

    CMP CH,cyls

    JB readloop   ;如果CL <=18跳转到readloop

; 读取完毕,跳转到haribote.sys执行!

MOV [0x0ff0],CH ; IPLがどこまで読んだのかをメモ

JMP 0xc200

fin:

HLT ; 让CPU停止,等待指令

JMP fin ; 无限循环

error:

MOV SI,msg

putloop:

MOV AL,[SI]

ADD SI,1 ; 给SI加1

CMP AL,0

JE fin

MOV AH,0x0e ; 显示一个文字

MOV BX,15 ; 指定字符颜色

INT 0x10 ; 调用显卡BIOS

JMP putloop

msg:

DB 0x0a, 0x0a ; 换行两次

DB "load error"

DB 0x0a ; 换行

DB 0

RESB 0x7dfe-$ ; 填写0x00直到0x001fe

DB 0x55, 0xaa

需要仔细分析一下生成文件,才能更好的去写。

http://www.hkea.cn/news/38372/

相关文章:

  • 建设的网站首页微信怎么做推广
  • 建设网站导航百度信息流推广和搜索推广
  • 深圳室内设计公司招聘信息流广告优化
  • 旅游网站首页四种营销模式
  • 负责网站建设如何在百度发广告推广
  • 联通的网站是谁做的营销的主要目的有哪些
  • 衡阳微信网站地推的方法和技巧
  • 南阳做网站公司哪家好自动发外链工具
  • 潍坊网站制作最低价格网络营销案例有哪些
  • 做网站有谁做谷歌seo视频教程
  • 资深的网站推广完美日记网络营销策划书
  • 90设计网站免费素材网站seo培训
  • 整形美容网站源码上海seo优化bwyseo
  • 武威市住房和建设局网站百度app下载安装普通下载
  • 网站物理结构天津百度推广排名
  • 美容平台网站建设百度指数查询移动版
  • 工程公司手机网站建立网站怎么搞
  • 做网站软件wd惠州seo外包
  • 聊城做网站seo关键词分类
  • 网站做公司女生学网络营销这个专业好吗
  • 网络运营主要工作内容seo教程自学入门教材
  • 用其他商标在自己网站做宣传百度云网盘资源分享网站
  • 对商家而言网站建设的好处淘宝关键词查询工具哪个好
  • 做简单网站代码关键词推广价格
  • 做品牌折扣的网站百度推广的五大优势
  • 南宁比较有好的网站制作公司百度推广后台登录页面
  • 长沙企业网站排名优化windows优化大师和360哪个好
  • 珠海网站开发维护科技公司免费的网络推广渠道有哪些
  • wp建站系统微信营销管理软件
  • 本地打开WordPress慢百度seo优化分析