当前位置: 代码迷 >> 汇编语言 >> 关于jmp的有关问题
  详细解决方案

关于jmp的有关问题

热度:2332   发布时间:2013-02-26 00:00:00.0
关于jmp的问题
org 0100h
   
  DATA:
db "Hello World!"
  jmp START
  START:
mov ax, cs
mov es, ax
mov ax, DATA
add ax, 07c00h
mov bp, ax
mov cx, 12
mov bx, 000ch
mov dl, 0
mov al, 1
mov ah, 13h
int 10h
jmp $
times 510-($-$$) db 0
dw 0xAA55
想知道这段代码中jmp START的作用,为什么去掉jmp START就不能显示hello world!

------解决方案--------------------------------------------------------
你这代码也有问题吧,jmp START 好像应该在 DATA: 之前。你这应该是引导扇区的内容,执行就是从最开始处进行的。你最开始处定义成了数据,会将数据当做代码来运行,结果难以预料。所以,需要在最开始处用一个 jmp 指令跳过后面定义的数据部分,转到真正的需要运行的代码处。
另外,既然用了 org 语句,为什么不直接 org 7c00h 呢。
  相关解决方案