Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Assembly 启动扇区程序的意外输出_Assembly_Nasm_Boot_16 Bit - Fatal编程技术网

Assembly 启动扇区程序的意外输出

Assembly 启动扇区程序的意外输出,assembly,nasm,boot,16-bit,Assembly,Nasm,Boot,16 Bit,我通过16位引导加载程序编程自学汇编(NASM),遇到了一个问题。 我编写了一个程序,使用函数print将“Hello,World!”显示到屏幕上,但我只得到“U”作为输出 以下是大会: print: pusha mov ah, 0x0e int 0x10 popa ret mov al, 'H' call print mov al, 'e' call print mov al, 'l' call print mov al, 'l' call print

我通过16位引导加载程序编程自学汇编(NASM),遇到了一个问题。 我编写了一个程序,使用函数
print
将“Hello,World!”显示到屏幕上,但我只得到“U”作为输出

以下是大会:

print:
    pusha
    mov ah, 0x0e
    int 0x10
    popa
    ret

mov al, 'H'
call print
mov al, 'e'
call print
mov al, 'l'
call print
mov al, 'l'
call print
mov al, 'o'
call print
mov al, ','
call print
mov al, 'W'
call print
mov al, 'o'
call print
mov al, 'r'
call print
mov al, 'l'
call print
mov al, 'd'
call print
mov al, '!'
call print

jmp $

times 510-($-$$) db 0
dw 0xaa55
我相信这是非常明显或愚蠢的事情,因为我才刚刚开始。
提前感谢。

您似乎首先执行了
print
功能。当它到达
ret
时,没有可返回的返回地址,因此会崩溃。跳过它,或者把子程序放在最后。哇,我真是太傻了。谢谢