当前位置:  技术问答>linux和unix

times 510-($-$$) db “helllo, os world!”是什么意思?希望能解释一下times的用法

    来源: 互联网  发布时间:2017-03-26

    本文导语:  org 07c00h mov ax,cx mov ds,ax mov es,ax call cdy jmp $ cdy:  mov ax,bootmassage  mov bp,ax  mov cx,16  mov ax,01301h  mov bx,000ch  mov dl,0  int 10h ret bootmassage: db "hello,os world!" times 510-($-$$) db 0 dw 0xaa55 上面一段是《自己动手写操...

org 07c00h
mov ax,cx
mov ds,ax
mov es,ax
call cdy
jmp $
cdy:
 mov ax,bootmassage
 mov bp,ax
 mov cx,16
 mov ax,01301h
 mov bx,000ch
 mov dl,0
 int 10h
ret
bootmassage: db "hello,os world!"
times 510-($-$$) db 0
dw 0xaa55
上面一段是《自己动手写操作系统》的例程,我初学,希望各位大侠帮帮忙。

|
times 123 db 0 ; 这个表示填充123个字节的0
所以,times 510-($-$$) db 0 表示填充 510-($-$$) 这么多个字节的0
这里面的$表示当前指令的地址,$$表示程序的起始地址(也就是最开始的7c00),所以$-$$就等于本条指令之前的所有字节数。510-($-$$)的效果就是,填充了这些0之后,从程序开始到最后一个0,一共是510个字节。再加上最后的dw两个字节(0xaa55是结束标志),整段程序的大小就是512个字节,刚好占满一个扇区。

|
bootmessage: db "hello,os world!"
这是说,紧跟着上一行ret指令的后面保存一个字符串,并且把它的地址标记为bootmessage,前面就可以使用这个字符串了(mov ax,bootmessage)

times 510-($-$$) db 0 在刚才的字符串后面填充0

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间java.sql类time的类成员方法: time定义及介绍
  • 为什么我在头文件time.h里找不到time_t的定义呢?只有这个定义typedef __time_t time_t;
  • java命名空间javax.xml.datatype类datatypeconstants的类成员方法: time定义及介绍
  • Clock time, User cpu time, System cpu time三者是什么关系?
  • java命名空间java.sql类types的类成员方法: time定义及介绍
  • 如何取得一个进程的system time和user time?
  • java命名空间javax.management类query的类成员方法: times定义及介绍
  • Joda-Time 的 GWT 移植版本 goda-time
  • java命名空间java.sql类time的类成员方法: valueof定义及介绍
  • 请问文件系统的modify time和change time的区别是什么
  • java命名空间java.util类calendar的类成员方法: time定义及介绍
  • time.h与linux/time.h
  • java命名空间javax.sound.midi类shortmessage的类成员方法: timing_clock定义及介绍
  • srand (time (0))中time(0)返回的秒数为什么不会越界?
  • java命名空间java.util类simpletimezone的类成员方法: standard_time定义及介绍
  • 如何获得程序自身的"kernel time"和"user time"?
  • java命名空间javax.sound.midi类shortmessage的类成员方法: midi_time_code定义及介绍
  • 《Linux程序设计》第三版第124页(void)time(&cur_time);这里前面为什么要加个(void)呢?
  • java命名空间javax.print.attribute.standard类printerstatereason的类成员方法: timed_out定义及介绍
  • 关于time 命令的shell 编程问题
  • java命名空间java.util类simpletimezone的类成员方法: wall_time定义及介绍
  • linux下time函数是否线程安全


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,