汇编语言的问题求大神

qq_33312212 2016-04-11 10:36:52
org 07c00h
mov ax,cs
mov ds,ax
mov es,ax
call Dispstr
jmp $
Dispstr:
mov ax,BootMessage
mov bp,ax
mov cx,16
mov ax,01301h
mov bx,000ch
mov dl,0
int 10h
ret
BootMessage:
db "Hello, OS world!"
times 510-($-$$) db 0

dw 0xaa55

请问 这段代码 执行完Dispstr 后 直接跳到 jmp $ 进入死循环了 为什么还会执行times 510-($-$$) db 0填充呢?在学习写操作系统 求大神解释一下
...全文
158 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
zara 2016-04-12
  • 打赏
  • 举报
回复
times 510-($-$$) db 0 是在编译阶段执行的形成一堆的 00 填充,不是代码运行阶段。
代码运行阶段执行的是指令;而这个是个语句,是告诉汇编程序如何进行 00 填充的,cpu 可没 db 这样的指令的。

21,458

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧